Frage von ivylatent, 120

Wie kann ich in Excel eine Zeile mit Textinhalt mit mehreren Spalten vergleichen?

Hallo...

In A1 werden Dinge aufgezählt (z.B.: A1= Tokyo, 12.3.15-15.5.15, Plaza Hotel, John Doe, Geschäftsreise) und in B1:B50 und C1:C50 werden verschiedene Namen aufgelistet.

Nun soll in D1 ein "X" erscheinen, wenn in A1 einer der Namen aus B1:B50 / C1:C50 vorkommt.

Ich habe schon einiges versucht, aber irgendwie funktioniert es nie...

Danke für die Hilfe."

Expertenantwort
von DeeDee07, Community-Experte für Excel, 96

Wahrscheinlich ist es sinnvoll, zunächst die Fülle an Informationen aus Spalte A in verschiedene Spalten zu trennen (Grundsatz: nur eine Information pro Zelle). Das kannst du über Daten, Text in Spalten tun.

Danach kannst du mit Sverweis, Index/Vergleich oder Zählenwenn das Vorkommen überprüfen.

Expertenantwort
von Ninombre, Community-Experte für Excel, 57

Mir fällt nur eine Lösung mit Hilfskonstrukt ein und die Suche mit *kann auch für falsche Treffer sorgen, denn die Suche nach *John Doe* findet auch erfolgreich einen John Doener

In zwei Spalten (bspw. E und F) folgende Formel, die liefern bei Treffern die Zeile des Treffers:

=WENN(B1<>"";ZEILE(INDEX(A$1:A$100;VERGLEICH("*"&B1&"*";A$1:A$100;0)));"")
=WENN(C1<>"";ZEILE(INDEX(A$1:A$100;VERGLEICH("*"&C1&"*";A$1:A$100;0)));"")

Damit werden dann die Xe in die entsprechende Zeile gesetzt: Die Formel kann in in Spalte D

=WENN(ODER(ZÄHLENWENN(E:E;ZEILE(F1))>0;ZÄHLENWENN(F:F;ZEILE(D1))>0);"X";"")
Expertenantwort
von Iamiam, Community-Experte für Excel, 70

in C1:

=wenn(nicht(istfehler(suchen(B1;A1;1)));"X";"-")

und runterziehen.

Halt, da ist die Info aus C1 noch nicht drin, also nochmal:

in D1:

Wenn(oder(nicht(istfehler(suchen(B1;A1;1)));nicht(istfehler(suchen(B1;A1;1))));"X";"-")

das unterscheidet allerdings nicht, welcher der beiden Namensmöglichkeiten (oder ob beide) zutreffen.

Kommentar von Iamiam ,

im zweiten Suchen natürlich nicht B1, sondern C1

oder willst Du "einer der Namen... als ganzen Spaltenbezug verstanden wissen?

Kommentar von ivylatent ,

Ja,sorry, ich meinte als Spaltenbezug. Das hat bei mir nie funktioniert...
Aber schonmal ein Dankeschön für die obrige Lösung, falls das mit dem Spaltenbezug nicht hinhaut, werde ich diese Variante mit einigen ausgeblendeten Hilfsspalten anwenden.
Da es eine sehr komplexe Tabelle ist, gibt es davon aber eigentlich schon genug :D

Kommentar von Iamiam ,

Puh, das kann ich mir nur als Makrolösung vorstellen (doppelte Schleife). Aber macht das denn überhaupt Sinn? einen der 2*50 Namen ohne genaue Zuordnung zu A:A?

Phantasiert: alle Zellen Spalte A verketten (in zB E1:=A1&C1, darunter in E2 = E1&B2&C2, letzteres runterziehen bis zum Ende, das Ergebnis zu Wert umsetzen. Und dann mit obiger Formel, aber anstatt A1 die verkettete $$Zelle verwenden, das könnte gehen..

Oder Wenn(Zählenwenn($A$1:$A$50;"*"&B1&"*")>0;"X";"-"), das in 2 Spalten und runterziehen, dann sieht man, welcher Name auftaucht und welcher nicht.

Besser sogar mit Zählenwenn alleine, da sieht man dann, wie oft er auftaucht.

(Formatiere dafür die Zelle benutzerdefiniert so:

#.##0 ;[Rot]-#.##0;[Farbe7]° )

dann gibt die 0 einen leicht unterscheidbaren violetten °-Kringel, sozusagen eine stilisierte Null, Findungen dagegen in eingestellter Farbe die Anzahl. Als Schrift zB Arial Rounded MT bold gibt sehr starken Kontrast zwischen ° und Zahl!

Kommentar von ivylatent ,

Danke, das wird mir sehr helfen - ich werde nachher mal versuchen, was am besten funktioniert.

Kommentar von Ghanasoccer ,

du meinst wohl eine stirilisierte 0 ;)

Kommentar von Iamiam ,

@Ghanasoccer:

nein, sterilisiert ist sie nicht, bei dividiert durch zeugt sie einen Fehler!

@ Ivylatent:

Das ist ja nur das Format der Darstellung. Inhaltlich ist es das der Zelle zugrundeliegende Ergebnis und wird so auch weiterverrechnet.

Bei Matrixformeln fimkt die Verkettung von Texten nicht!

Kommentar von Ghanasoccer ,

Sry ich hab den Witz wohl nicht richtig durch diesen Neologismus hervorgehoben.

Kommentar von Iamiam ,

habs für einen Witz mit Tippfehler gehalten.

hab ja auch fimt anstatt funkt geschrieben

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten