Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Index & Vergleich - mehrere Treffer in eine Zelle

Index & Vergleich - mehrere Treffer in eine Zelle
05.04.2019 12:56:49
Kisska
Hallo zusammen,
mit Hilfe von der Funktionen Index & Vergleich suche ich in meiner Tabelle nach einem Suchkriterium.
Wenn es mehrere Treffer gibt, dann wird der erst vorkommende Wert ausgegebenen.
Ich hätte gerne alle Treffer ausgegeben und zwar in einer Zelle und durch ein Zeilenumbruch getrennt. Ist es möglich?
Meine Beispielsdatei:
https://www.herber.de/bbs/user/128940.xlsx
Hier ähnliche Beiträge. Ich schaffe es leider nicht, deren Lösung auf mein Beispiel anzuwenden.
https://www.herber.de/forum/archiv/1348to1352/1350940_Sverweis_mit_mehreren_Ergebnissen.html
http://www.excelformeln.de/formeln.html?welcher=28
https://www.clever-excel-forum.de/thread-2274.html
Vielleicht gibt es auch eine einfachere Lösungen?
VG, Kisska
Anzeige

59
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Index & Vergleich - mehrere Treffer in eine Zelle
05.04.2019 13:17:14
Günther
Moin Kisska,
"einfacher" ist ein sehr relativer Begriff ... ICH finde Power Query einfacher als so manch eine Formel, aber auch d musste ich mich "reinfummeln". ;-)
Muster-Lösung auf Nachfrage -> in meiner Cloud, da ich meine Ordner-Struktur nicht wegen eines Forums umstelle ...
Gruß
Günther
Anzeige
Nachfrage :)
05.04.2019 14:17:27
Kisska
Hallo Günther,
danke für deine Antwort!
Ich kenne mich bei dem Thema Power Query überhaupt nicht aus, aber ich wäre trotzdem an deiner Lösung interessiert :-)
VG, Kisska
AW: Nachfrage :)
06.04.2019 00:42:06
Günther
OK Kisska,
ich hatte bei meiner Antwort eine Power Query-Lösung erstellt, die (aus meiner derzeitigen Sicht) ausreichte. Die Ergebnis-Kategorie war in mehreren Zeilen. Wenige Mausklicks, keine Formel und für User mit etwas Erfahrung in Sachen PQ gut nachvollziehbar.
Hier der Link (meine Cloud): -> https://my.hidrive.com/lnk/u1AmDqb0
... und dann hat sich die Helfer-Schar auf den Zeilenumbruch eingeschossen. Und da ich das Gefühl hatte und auch noch habe, dass das ein wichtiges Kriterium ist, habe ich ein wenig (mehr) herumexperimentiert. Zugegeben, auch wenn jeder Schritt im rechten Seitenfenster des Editors dokumentiert ist, leicht ist das gewiss nicht nachzubauen/zu verstehen. ;-(
Der Link zu dieser Version: -> https://my.hidrive.com/share/jja8mbx2c6
Hinweis: Die "kleine" Version werde ich wahrscheinlich in meinem Blog im "offenen" Bereich einbinden und dokumentieren, die "extended" dann nur auf Nachfrage.
Gruß
Günther
Anzeige
klasse! danke!
10.04.2019 23:04:13
Kisska
Hallo Günther,
sorry, dass ich jetzt erst antworte, hab deinen Beitrag übersehen.
Hab beide deiner Varianten getestet und es funktioniert einwandfrei.
Eine großartige Arbeit, vielen Dank dafür!
VG, Kisska
AW: Index & Vergleich - mehrere Treffer in eine Zelle
05.04.2019 13:27:03
Rudi
Hallo,
Ich hätte gerne alle Treffer ausgegeben und zwar in einer Zelle und durch ein Zeilenumbruch getrennt. Ist es möglich?
Nicht per Formel. Nur mit VBA.
Gruß
Rudi
Anzeige
AW: Index & Vergleich - mehrere Treffer in eine Zelle
05.04.2019 13:30:57
Rudi
Hallo,
in ein Modul:
Function MultiVergleich(vntKriterium, rngKRITERIEN As Range, rngERGEBNIS As Range, strTRENN As  _
String) As String
Dim objERG As Object, lngSuch As Long
Dim vntKriterien, vntErgebnis
vntKriterien = rngKRITERIEN
vntErgebnis = rngERGEBNIS
Set objERG = CreateObject("scripting.dictionary")
For lngSuch = LBound(vntKriterien) To UBound(vntKriterien)
If vntKriterien(lngSuch, 1) = vntKriterium Then
objERG(lngSuch) = vntErgebnis(lngSuch, 1)
End If
Next lngSuch
If objERG.Count Then
MultiVergleich = Join(objERG.items, strTRENN)
End If
End Function

B11:
=MultiVergleich(A11;B3:B6;A3:A6;ZEICHEN(10))

und mit Zeilenumbruch formatieren.
Gruß
Rudi
Anzeige
super! ... Frage VBA erweitern
05.04.2019 14:07:17
Kisska
Hallo Rudi,
vielen Dank für die VBA-Lösung! Funktioniert einwandfrei :-)
Lässt sich deine VBA-Lösung erweitert für den Fall, dass es mehrere Suchkriterien in einer Zelle stehen? Hier die Beispielsdatei:
https://www.herber.de/bbs/user/128943.xlsm
VG, Kisska
Anzeige
Nimm meine FmlLösung mit UDFs, ...
05.04.2019 16:13:01
Luc:-?
…Kiska,
dann muss nichts erweitert wdn, denn die kann beides:
D11[:D12]: {=VJoin(WENN(Tabelle1[Produkt]=VSplit(A11;ZEICHEN(10);1);Tabelle1[Kategorie];"");ZEICHEN(10);-1)}
BspDatei-DownLoadLink für beide UDFs: https://www.herber.de/bbs/user/99024.xlsm
Ggf kannst du das bei deiner Xl-Version auch mit den neuesten XlFktt TEXTVERKETTEN und der auf Basis von Text-in-Spalten (Namen kenne ich nicht und benötige ich ja auch nicht) erreichen.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
klappt nicht
05.04.2019 19:09:58
Kisska
Hallo Luc,
doch klar ist mir deine Lösung wert ... eins nach dem anderen ;-)
Deine Lösung habe ich auf meine Beispielsdatei angewandt, aber keinen Erfolg gehabt.
Siehe selbst:
https://www.herber.de/bbs/user/128960.xlsm _
a>
Problem 1: Es wird kein Zeilenumbruch gemacht
Problem 2: Die gewünschte Erweiterung zu Rudis Lösung funktioniert nicht. Mehrere Suchkriterien führen nicht zum richtigen Ergebnis.
VG, Kisska
Anzeige
Doch, in deiner an Rudi gerichteten ...
05.04.2019 19:45:21
Luc:-?
…BspMappe 128943.xlsm klappt es, Kisska,
wenn man darin die UDFs einfügt (ich benutze stattdessen ein .xla-AddIn) und die Fml als singulare MatrixFml verwendet (Abschluss kennst du?):
 AB
1
⇒Ergebnis steht in Spalte ASuchkriterium kann in der Spalte B mehrfach vorkommenKategorieProduktA1B2C3D2    Wunschlösung: SuchkriteriumErgebnis2B
D
2
3
B
C
D
B11[:B12]: {=VJoin(WENN(Tabelle1[Produkt]=VSplit(A11;ZEICHEN(10);1);Tabelle1[Kategorie];"");ZEICHEN(10);-1)}
2
3
4
5
6
7
8
9
10
11
12
13
Was hast du stattdessen gemacht? Nur das ZeilenUmbruch-Format oder den MatrixFml-Abschluss vergessen? Oder hast du gemeint, letzteren bei deiner Xl-Version nicht zu benötigen? Für evtl Experimente mit den von mir genannten neuen Xl-Fktt hafte ich nicht, denn die benötige ich nicht.
Hast du aber im Original kompliziertere Daten, kann ich nicht wissen, was bei dir schief läuft oder was du versucht hast. Es sollte aber an genau diesem Bsp und auch an einem erweiterten gleicher Art fktionieren.
Luc :-?
Anzeige
Außerdem sollten die ErgebnisZellen auch noch ...
05.04.2019 19:50:38
Luc:-?
…vertikal nach oben orientiert formatiert wdn.
Luc :-?
perfekt! => kurze Rückfrage
05.04.2019 20:11:18
Kisska
Jetzt klappt es einwandfrei! Besten Dank, Luc!
Du hast bei deiner Erklärung so viele Vokabeln (UDFs, Fml, Xl-Version) verwendet, von denen ich keine Ahnung habe ...
Du schreibst "Für evtl Experimente mit den von mir genannten neuen Xl-Fktt hafte ich nicht, denn die benötige ich nicht." Muss ich mir dabei Sorgen machen, wenn ich deine Lösung auf die Original-Datei anwende?
Anzeige
Nee, das bedeutet nur, falls du die UDFs ...
05.04.2019 22:09:10
Luc:-?
…durch die erwähnten neuen Xl-Funktionen (abgekürzt Fkt [Sg], Fktt [Pl]) ersetzen wolltest, kann ich für deren Ergebnis nicht garantieren, weil ich nicht über diese verfüge (nicht in Xl14/2010).
(Abkk: Fml/n=Formel/n, UDF=userdefined function=benutzerdefinierte Fkt)
Was dein an WF herangetragenes Problem betrifft, ist das keins, denn eine Fml-Länge bestimmt nur dann die SpaltenBreite, wenn Xl auf Fmln-statt-Werte-anzeigen eingestellt wird und außerdem noch das SpaltenFormat auf AutoBreite gestellt wird. Du kannst die ErgebnisSpalten also (nachträglich) so breit machen wie maximal erforderlich.
Luc :-?
Anzeige
alles klar... und
05.04.2019 22:12:13
Kisska
danke für die Erklärung!
VG, Kisska
als Rattenschwanz geht's auch per Formel
05.04.2019 14:28:10
WF
Hi,
ich hab' mich auf 3 Treffer beschränkt (beliebig erweiterbar):
{=WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN(B$1:B$99="x";ZEILE(X$1:X$99));1));"")&ZEICHEN(10) &WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN(B$1:B$99="x";ZEILE(X$1:X$99));2));"")&ZEICHEN(10) &WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN(B$1:B$99="x";ZEILE(X$1:X$99));3));"") }
Die Ergebniszelle mit Zeilenumbruch formatieren.
Salut WF
Anzeige
klappt nicht
05.04.2019 15:04:13
Kisska
Hallo WF,
danke für deinen Lösungsvorschlag!
Es klappt leider nicht. Ich habe diese Formel in B11 eingegeben:
{=WENNFEHLER(INDEX(Tabelle1[Kategorie];KKLEINSTE(WENN(Tabelle1[Produkt]=A11;ZEILE(V$1:V$99));1));"") &ZEICHEN(10) &WENNFEHLER(INDEX(Tabelle1[Kategorie];KKLEINSTE(WENN(Tabelle1[Produkt]=A11; ZEILE(V$1:V$99));2));"")&ZEICHEN(10) &WENNFEHLER(INDEX(Tabelle1[Kategorie]; KKLEINSTE(WENN(Tabelle1[Produkt]=A11;ZEILE(V$1:V$99));3));"") }

Das Ergebnis bleibt leer. Was mache ich falsch? Spielt es eine Rolle was in der Klammer von der Funktion Zeile steht?
VG, Kisska
Anzeige
AW: klappt nicht
05.04.2019 15:13:33
Daniel
Hallo Kisska,
Matrixformeln gibst du normal ein (also nur mit =WENNFEHLER(…)) und drückst dann nicht Enter, sondern Strg+Shift+Enter.
Grüße
Daniel
schon klar
05.04.2019 15:15:46
Kisska
Hallo Daniel,
das ist schon klar! Das Ergebnis bei mir ist trotzdem leer.
VG, Kisska
das sind die blöden ("intelligenten") Tabellen
05.04.2019 15:18:32
WF
Hi,
die benutze ich nicht. Das repariert jemand, der sich damit auskennt.
WF
Anzeige
AW: nein, "intellig." Tab. sind meist nützlich owT
05.04.2019 15:35:01
neopa
Gruß Werner
.. , - ...
erwartet wird ne Reparatur - kein statement
05.04.2019 15:39:16
WF
.
AW: aber nicht, wenn es ne bessere Lösung gibt owT
05.04.2019 15:40:24
neopa
Gruß Werner
.. , - ...
Anzeige
aha: Hilfszellen sind also besser
05.04.2019 15:48:50
WF
.
AW: als Standardformellösung ja owT
05.04.2019 17:38:46
neopa
Gruß Werner
.. , - ...
grins
05.04.2019 17:40:31
WF
.
Anzeige
AW: dito owT
05.04.2019 17:41:19
neopa
Gruß Werner
.. , - ...
!
05.04.2019 18:00:47
WF
.
ne, die Formel stimmt nicht
05.04.2019 15:37:15
Kisska
Hallo WF,
daran liegt es glaube ich nicht.
Auch wenn ich deine Formel nehme und statt x A11 schreibe, bekomme ich eine 0 als Ergebnis raus.
Hier meine Formel:
=WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN(B$1:B$99=A11;ZEILE(X$1:X$99));1));"")&ZEICHEN(10)  &WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN(B$1:B$99=A11;ZEILE(X$1:X$99));2));"")&ZEICHEN(10)  &WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN(B$1:B$99=A11;ZEILE(X$1:X$99));3));"") 

Die Formel schließe ich als Matrix ab.
VG, Kisska
Anzeige
Deine Formel ist absolut OK
05.04.2019 15:46:27
WF
Die hab ich unverändert kopiert und ergibt bei mir das richtige Ergebnis.
Da ist in Deiner Tabelle irgendeine Fehlerquelle ?
WF
jetzt geht es
05.04.2019 16:24:13
Kisska
Hallo WF,
es lag wohl an dem Zirkelbezug. Ich habe nun zwei Tabellenblätter erstellt und nun funktioniert die Formel.
Anbei meine neue Beispielsdatei:
https://www.herber.de/bbs/user/128952.xlsx

Die Lösung ist vielleicht nicht ganz automatisch, aber sie funktioniert zumindest in der Form einwandfrei. Dankeschön dafür!
Kurze Frage: im Ergebnis erscheint am Ende ein Zeilenumbruch zu viel, obwohl am Ende der Formel kein ZEICHEN(10) steht. Woran liegt es und kann man das letzte Zeilenumbruch entfernen?
VG, Kisska
Anzeige
Link wieder fehlerhaft...
05.04.2019 16:34:59
robert
..wieso schaffst Du es nicht die Datei korrekt einzustellen?
AW: Link wieder fehlerhaft...
05.04.2019 16:40:21
Kisska
Hallo robert,
das liegt sicherlich nicht an mir!
Anbei die Datei nochmal:
https://www.herber.de/bbs/user/128954.xlsx _
a>
VG, Kisska
Anzeige
setze wennfehler VOR zeichen(10)
05.04.2019 17:00:45
WF
also:
{=WENNFEHLER(INDEX(Suchtabelle!A:A;KKLEINSTE(WENN(Suchtabelle!B:B=A3;ZEILE(A:A));1));"") &WENNFEHLER(ZEICHEN(10)&INDEX(Suchtabelle!A:A;KKLEINSTE(WENN(Suchtabelle!B:B=A3;ZEILE(A:A));2));"") &WENNFEHLER(ZEICHEN(10)&INDEX(Suchtabelle!A:A;KKLEINSTE(WENN(Suchtabelle!B:B=A3;ZEILE(A:A));3));"") }
WF
Anzeige
super!
05.04.2019 18:38:38
Kisska
Juhu, es funktioniert! Herzlichen Dank, WF!
VG, Kisska
allgemeine Rückfrage
05.04.2019 20:28:39
Kisska
Hallo WF,
wenn ich bei dem Suchkriterium nichts stehen habe, dann ist das Ergebnis gleich Leer. Genau wie ich es haben will.
Mein Problem ist, dass meine Zeilenbreite durch den Zeilenumbruch so breit ist wie die Formel in der Zelle. Ich wünsche mir aber, dass die Zeilenbreite vom Ergebnis abhängt und nicht von der Formel.
Kennst du vielleicht einen Trick wie man das Problem löst?
VG, Kisska
Anzeige
das geht wohl nur per VBA ?
05.04.2019 20:38:49
WF
... nicht meine Baustelle.
WF
ok & danke
05.04.2019 22:13:58
Kisska
VG, Kisska
Ohje, du meinst ZeilenHÖHE nicht -Breite ...
06.04.2019 04:19:06
Luc:-?
…(der Spalte!), Kisska,
die richtet sich aber auch nicht nach der Fml, sondern wird sogar zurückgesetzt, wenn du den Vglswert in A löschst. Voraussetzung dafür ist allerdings, dass du die ZeilenHöhe nicht zwischenzeitlich mal fixiert hast (Befehle im Format-Menü). Dann bleibt sie so und muss auch wieder per Menü automatisch angepasst wdn. Aber das ist doch ein Klacks und VBA bringt hier ggf nur dann Vorteile, wenn das automatisiert per EreignisProzedur gehandhabt wird, idR mit Worksheet_Change.
Morhn, Luc :-?
Anzeige
AW: noch eine einfache Formelalternative ...
05.04.2019 14:46:08
neopa
Hallo Kiska,
... und zwar mit einer Matrixfunktion(alität)sformel, die keines spez. Formelabschluss wie eine klassische Matrixformel benötigt und mit (benachbarten) Hilfszellen (Excel hat ja genug und die entsprechenden Spalten kannst Du einfach ausblenden).
In B11:
=WENNFEHLER(INDEX($A:$A;AGGREGAT(15;6;ZEILE(A$3:A$9)/($B$3:$B$9=$A11);SPALTE(A1)))&WENN(C11="";"";ZEICHEN(10)&C11);"")
und diese Formel weit genug nach rechts ziehend kopiert, ermittelt schlussendlich in C11 das von Dir gewünschte, dies auch bei vielen Wiederholungen des Suchkriteriums im Suchbereich ohne Formelanpassungen vornehmen zu müssen.
Gruß Werner
.. , - ...
Anzeige
interessant
05.04.2019 14:55:02
Kisska
Hallo Werner,
ein interessanter Ansatz! Vielen Dank dafür! Leider sind meine Spalten nach der Spalte B befüllt, daher kann ich diese Lösung nicht anwenden :/ Aber danke trotzdem, die Lösung speichere ich gerne bei mir ab :-)
VG, Kisska
AW: dazu dann noch ...
05.04.2019 14:59:31
neopa
Hallo Kiska,
... Du kannst meine Formel auch z.B. in der ersten freien Spalte einsetzen und von dort nach rechst kopieren. Und dessen Ergebnis aus dieser ersten Spaltenzelle holst Du Dir einfach mit einem einfachen Zellbezug in B11.
Gruß Werner
.. , - ...
Anzeige
wie meinst du das?
05.04.2019 15:13:52
Kisska
Hallo Werner,
wenn ich dich richtig verstehe, schlägst du vor, dass ich Hilfsspalten einbaue.
D.h. die Formel gebe ich nicht in B11, sondern bspw. in AA11 ein. Ziehe die Formel nach rechts und das Ergebnis von AA11 und AB11 schreibe ich in B11. Richtig?
Wenn ja, müsste ich eine Verkettung von AA11 und AB11 manuell machen, denn es können beliebig viele Ergebnisse werden. Eine automatische Verkettung ist wohl nur in Office 365 möglich, ich hab leider nur 2016.
Also nicht das Gelbe vom Ei.
VG, Kisska
Anzeige
AW: im Prinzip genau so ...
05.04.2019 15:26:22
neopa
Hallo Kiska,
... wenn bei Dir z.B. ab AA1 keine Spalte mehr einen sonstig notwendigen Daten wert hat, dann schreibe
in AA11:
=WENNFEHLER(INDEX($A:$A;AGGREGAT(15;6;ZEILE(A$3:A$9)/($B$3:$B$9=$A11);SPALTE(A1)))&WENN(AB11="";"";ZEICHEN(10)&AB11);"")
Diese Formel kopierst Du nun ziehend nach rechts, soweit Du einschätzt, es max notwendig ist.
In B11 schreibst Du dann einfach nur noch:
=AA11
Gruß Werner
.. , - ...
Anzeige
nicht wirklich
05.04.2019 15:33:04
Kisska
Hallo Werner,
das ist nicht die Lösung, die ich suche. Ich möchte ja mehrere Ergebnisse in einer Zelle haben.
Egal, ich nehme die VBA-Lösung von Rudi.
Danke trotzdem :-)
VG, Kisska
AW: das ist doch gewährleistet ...
05.04.2019 15:39:21
neopa
Hallo Kisska,
... wenn Du die Formel richtig eingesetzt und weit genug nach rechts kopiert hast, hat die erste Formel dann alle Daten "eingesammelt" und in dieser Zelle, wie von Dir angestrebt auch dargestellt. Letzteres setzt natürlich voraus, Du hast zumindest diese Zielzelle mit "Zellumbruch" formatiert und die Zeilenhöhe entsprechend angepasst.
Gruß Werner
.. , - ...
Anzeige
?
05.04.2019 16:05:04
Kisska
Entweder stehe ich auf dem Schlauch oder ich weiß nicht...
Hier die Beispielsdatei mit deinem Lösungsvorschlag:
https://www.herber.de/bbs/user/128951.xlsx

Die Hilfsspalten habe ich in den Spalten E bis I gemacht.
In B11 steht logischerweise nicht die Lösung, die ich suche, nämlich B und D in einer Zelle.
In B11 müsste eine Verknüpfung stehen aus E11 und F11.
VG, Kisska
Anzeige
AW: Link bringt bei mir eine Fehlermeldung owT
05.04.2019 16:12:24
neopa
Gruß Werner
.. , - ...
Siehe oben und alles ist OK! owT
05.04.2019 16:19:34
Luc:-?
:-?
Anzeige
AW: der Dateilink ist jetzt ok, aber ...
05.04.2019 17:37:02
neopa
Hallo Kiska,
... auf Deinen Beitrag von 16:32 kann man/ich nicht mehr antworten, deswegen nun hier:
Du hast meine Formel in Deiner Datei nicht richtig angepasst. In E11 muss es richtig lauten:
=WENNFEHLER(INDEX($A:$A;AGGREGAT(15;6;ZEILE(A$3:A$9)/($B$3:$B$9=$A11);SPALTE(A1))) &WENN(F11="";"";ZEICHEN(10)&F11);"")
und diese nach rechts kopieren.
Bzw. sieh auch mein Beitrag mit einer Formellösung mit Bezug auf Deine "intelligente" Tabelle.
Gruß Werner
.. , - ...
Anzeige
jetzt klappt es
05.04.2019 18:04:28
Kisska
Danke für die Geduld, Werner!
Sorry, dass ich mich doof angestellt habe, jetzt klappt es :-) Danke!
VG, Kisska
Meine Lösung hat schon vor fast 2 h geklappt, ...
05.04.2019 18:54:39
Luc:-?
…aber das ist dir ja keine AW wert… :-[
Luc :-?
Hi Luc, Kisska sagt nein ! ;-) owT-Gruß
05.04.2019 19:35:35
robert
Anzeige
Habe ich schon gesehen, robert! ...
05.04.2019 19:55:28
Luc:-?
…Hattest Du meine Lösung auch mal ausprobiert?
Gruß, Luc :-?
AW: ergänzend ...
05.04.2019 16:12:19
neopa
Hallo Kiska,
... nachfolgend noch die Formellösung mit Bezug auf Deine "intelligente" Tabelle. Die ist übrigens von Dir nicht optimal formatiert. Normalerweise bezieht man die Überschriften in die formatierte Tabelle mit ein. Auch benenne ich in meinen Anwendungen die von Excel automatisch vergebenen Namen im Namensmager nachträglich in "sprechende" um. So ist es nämlich etwas verwirrend, wenn der "intelligente" Tabellennamen gleich dem Tabellenblattnamen ist.
Nachfolgend hab ich aber bewusst alles so belassen, wie in Deiner Datei vorgefunden.
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABZAAABAC
2KategorieProdukt    
3A1    
4B2    
5C3    
6D2    
7      
8      
9      
10SuchkriteriumErgebnis    
112B
D
 B
D
D 

ZelleFormel
B11=AA11
AA11=WENNFEHLER(INDEX(Tabelle1;AGGREGAT(15;6;(ZEILE(Tabelle1)-2)/(INDEX(Tabelle1;;2)=$A11);SPALTE(A1));1)&WENN(AB11="";"";ZEICHEN(10)&AB11);"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Formel AA11 ist ziehend nach rechts kopiert.
Gruß Werner
.. , - ...
Anzeige
AW: Index & Vergleich - mehrere Treffer in eine Zelle
06.04.2019 21:18:53
Besserwisser
Hallo Kisska,
=TEXTVERKETTEN(ZEICHEN(10);;WENN(Tabelle1[Produkt]=A11;Tabelle1[Kategorie];""))
und natürlich Textumbruch aktivieren.
Gruß
Christian N.
AW: das wäre aber noch zu klären, ...
07.04.2019 14:32:26
neopa
Hallo Christian,
... ob die 2013er-Excel-Version von Kisska wirklich die Funktion TEXTVERKETTEN() hat. Ich weiß jedenfalls, dass eine Excel-Version 2016 diese Funktion noch nicht besitzt.
Gruß Werner
.. , - ...
Anzeige
Eigentlich nicht, Werner, ...
07.04.2019 16:17:41
Luc:-?
…denn der Besserwisser ist ohnehin nicht auf dem Laufenden und es würde eine weitere neue Xl-Fkt benötigt, deren Vorhandensein bei Kisska noch fraglicher wäre.
Vgl hier im Thread: https://www.herber.de/forum/messages/1685559.html
Gruß, Luc :-?
Anzeige
leider nicht bei meiner Version.
08.04.2019 22:20:56
Kisska
Hallo Christian,
danke für deinen Beitrag!
Es wäre zu schön gewesen, wenn die Formel bei meiner Office-Version funktionieren würde.
Ich habe eine lokale Version von MS Office 2016, kein Abo für MS Office 365, darum geht es leider nicht :/
VG, Kisska

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Index & Vergleich: Mehrere Treffer in einer Zelle ausgeben


Schritt-für-Schritt-Anleitung

Um mehrere Ergebnisse in einer Zelle auszugeben, kannst du die Kombination aus der INDEX- und VERGLEICH-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. VBA-Funktion einfügen: Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul hinzu. Kopiere den folgenden VBA-Code hinein:

    Function MultiVergleich(vntKriterium, rngKRITERIEN As Range, rngERGEBNIS As Range, strTRENN As String) As String
       Dim objERG As Object, lngSuch As Long
       Dim vntKriterien, vntErgebnis
       vntKriterien = rngKRITERIEN
       vntErgebnis = rngERGEBNIS
       Set objERG = CreateObject("scripting.dictionary")
       For lngSuch = LBound(vntKriterien) To UBound(vntKriterien)
           If vntKriterien(lngSuch, 1) = vntKriterium Then
               objERG(lngSuch) = vntErgebnis(lngSuch, 1)
           End If
       Next lngSuch
       If objERG.Count Then
           MultiVergleich = Join(objERG.items, strTRENN)
       End If
    End Function
  2. Formel anwenden: In deiner Excel-Datei kannst du die Funktion so verwenden:

    =MultiVergleich(A11;B3:B6;A3:A6;ZEICHEN(10))

    Stelle sicher, dass die Zelle mit Zeilenumbruch formatiert ist (Format -> Zellen -> Ausrichtung).


Häufige Fehler und Lösungen

  • Formel liefert kein Ergebnis: Überprüfe, ob die Suchkriterien korrekt sind. Möglicherweise gibt es keine Übereinstimmungen.
  • Kein Zeilenumbruch: Achte darauf, dass die Zelle mit der Formel den Textumbruch aktiviert hat. Das kannst du unter Format -> Zellen -> Ausrichtung einstellen.
  • VBA muss aktiviert sein: Stelle sicher, dass deine Excel-Installation die Ausführung von Makros erlaubt. Prüfe die Einstellungen unter Datei -> Optionen -> Trust Center.

Alternative Methoden

  1. Power Query: Eine einfachere Methode könnte die Verwendung von Power Query sein, um Daten zu transformieren und mehrere Ergebnisse zusammenzuführen.
  2. Textverkettung: In neueren Excel-Versionen kannst du die Funktion TEXTVERKETTEN verwenden (ab Excel 2019 oder Office 365). Damit kannst du einfach mehrere Ergebnisse in einer Zelle ausgeben:

    =TEXTVERKETTEN(ZEICHEN(10);;WENN(Tabelle1[Produkt]=A11;Tabelle1[Kategorie];""))

    Beachte, dass diese Funktion in Excel 2016 nicht verfügbar ist.


Praktische Beispiele

Ein Beispiel für die Verwendung der MultiVergleich-Funktion:

Angenommen, du hast eine Tabelle mit den Spalten Kategorie und Produkt und möchtest alle Kategorien für das Produkt "A" in einer Zelle ausgeben. Hier ist, wie du es machen kannst:

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in den Zellen B3:B6 (Produkte) und A3:A6 (Kategorien) stehen.
  2. Formel anwenden: Verwende die Formel wie oben beschrieben, um die Kategorien für das Produkt "A" in Zelle B11 auszugeben.

Tipps für Profis

  • Verwendung von Arrays: Wenn du mit großen Datenmengen arbeitest, kann die Verwendung von Array-Formeln die Leistung optimieren.
  • Datenvalidierung: Stelle sicher, dass die Daten in den Zellen, die du durchsuchst, valide sind. Falsche Daten können zu unerwarteten Ergebnissen führen.
  • Automatisierung: Überlege, deine VBA-Funktion zu erweitern, um mehrere Suchkriterien zu unterstützen. Dies kann nützlich sein, wenn du Daten in einer Zelle zusammenfassen möchtest.

FAQ: Häufige Fragen

1. Kann ich mehrere Suchkriterien gleichzeitig verwenden? Ja, du kannst die VBA-Funktion anpassen, um mehrere Suchkriterien zu unterstützen. Du kannst auch Hilfsspalten verwenden, um die Ergebnisse zu aggregieren.

2. Ist die VBA-Lösung in Excel 2016 möglich? Ja, die VBA-Lösung funktioniert in Excel 2016. Stelle sicher, dass du den Code korrekt eingefügt hast.

3. Wie aktiviere ich den Textumbruch in Excel? Um den Textumbruch zu aktivieren, wähle die Zelle aus, gehe zu Format -> Zellen und aktiviere das Kontrollkästchen für Zeilenumbruch.

4. Kann ich die Lösung ohne VBA umsetzen? Ja, es gibt Formeln, die ohne VBA funktionieren, aber sie sind möglicherweise komplexer und weniger flexibel. Die VBA-Lösung ist oft die einfachste Methode, um mehrere Ergebnisse in einer Zelle auszugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige