Excel: String in Zelle suchen (Teilergebnis)

Hallo,

ich muss in einer Excel-Tabelle in einigen Zellen nach Teilstrings suchen.

Das Problem: der zu suchende Begriff kann für sich alleine stehen oder Bestandteil anderer Teilstrings sein.

Beispiel: A1=Feuerwehrauto, Müllauto, Auto
A2=Müllauto
A3=Müllauto, Auto
A4=Auto, Feuerwehrauto

Die Suche soll nur dann ein Ergebnis liefern, wenn der Begriff „Auto“ in der Zelle vorkommt, und zwar alleine stehend und nicht als Verbund mit „Feuerwehr“ oder „Müll“.
Im Beispiel würde die Suche also für A2 kein Ergebnis liefern, für A1 entweder „Wahr“ oder die Position des „Auto“ am Ende, und in A3 ebenso „Wahr“ oder die Position des „Auto“ am Ende. Für A4 ebenfalls „Wahr“ und die Position des „Auto“ am Anfang der Zelle.

Wie kann man sowas machen?

Danke Euch für jeden Hinweis. Ich würde übrigens Lösungen ohne VBA bevorzugen, weil das fragliche Dokument ohne Makros auskommt.

hi,

ohne weiter zu suchen würde ich prüfen ob der String == „Auto“ ist, wenn nicht, ob er „, Auto“ oder "Auto, " enthält.
Wenn ich nix übersehen habe, gehen mehr Möglichkeiten nicht.

=WENN(ODER(A1="Auto";NICHT(ISTFEHLER(SUCHEN("Auto, ";A1)));NICHT(ISTFEHLER(SUCHEN(", Auto";A1))));1;0)

grüße
lipi

Hallo lipi
Ich glaube, es geht am einfachesten mit FINDEN()

=ISTZAHL(FINDEN("Auto";A1))

Der Unterschied zwischen SUCHEN() und FINDEN():
FINDEN() berücksichtigt Gross- und Kleinschreibung
SUCHEN() berücksichtigt Gross- und Kleinschreibung nicht.

Grüsse Niclaus

Suchen nach " Auto" mit Leerzeichen davor?

hi,

muss mich korrigieren, alle Fälle sind nicht erfasst. auch da kann es noch zu Fehlern kommen.

Bei der Suche nach „, Auto“ muss noch geprüft werden, ob es auch das Stringende ist.

grüße
lipi

hi,

dann findet er aber auch Autobahn, Autobus, Autolackiererei und derartiges.

dann sollte man in der tat FINDEN() nutzen.

grüße
lipi

Hallo,

ich habe einfach ein Leerzeichen vor und ein Komma hinter den String gesetzt, dadurch wird „Auto“ in jeder Konstelation als " Auto," gefunden:

=FINDEN(" Auto,";" "&A1&",")

So wäre es auch egal ob man FINDEN() oder SUCHEN() verwendet, da die Suche durch Leerzeichen und Komma, zumindest in diesem Beispiel, eindeutig genug ist.
Wenn es nur darum geht, ob der Wert gefunden oder nicht gefunden wurde, könnte die Formel so aussehen:

=WENN(ISTFEHLER(SUCHEN(" Auto,";" "&A1&","));"Auto nicht gefunden";"Auto gefunden")

Gruß
Tobias

Hallo Tobias,

hatte leider etwas vergessen: die Begriffe werden alle klein geschrieben. Man kann also nicht nach dem Auto suchen. Finden oder Suchen ist auf die Art egal.

In Deiner Lösung gibt es noch ein Problem, wenn „auto“ alleine steht (ohne weiteren Begriff in der Zelle), weil Du nach einem Leerzeichen vor " auto" suchst. Wenn „auto“ aber am Anfang steht, gibt es das Leerzeichen nicht und fehlerhafterweise wird kein Ergebnis zurückgeliefert.

Gruss,
Crypto.

Hallo Niclaus,

Danke für Deinen Hinweis, aber es wird wohl nicht funktionieren (kann ich erst Sonntag genauer probieren). Grund: alle „autos“ sind klein geschrieben, und „auto“ kann auch, ohne Leerzeichen, am Anfang oder alleine in der Zelle stehen.

Gruss,
Crypto.

Hallo lipi,

Deine Lösung werde ich Sonntag mal ausprobieren.

Alle Begriffe werden übrigens klein geschrieben (hatte ich vergessen zu schreiben).

Gruss,
Crypto.

Hallo Crypto,

ich suche nach Leerzeichen-Suchbegriff-Komma aber darauf bin ich gleich im ersten Satz eingegangen:

Leider hast du noch nicht verstanden, was die Formel macht. DIe Syntax der Funktion ist FINDEN(Suchtext;Text) bzw. SUCHEN(Suchtext;Text)

  • Als Suchtext habe ich " Auto," angegeben.
    Das ist der Suchbegriff Auto mit einem Leerzeichen davor, und einem Komma danach.

  • Als (zu durchsuchenden) Text habe ich nicht einfach A1 eingetragen, sondern: " „&A1&“,"
    Mit dem & sagt man Excel, dass es mehrere Werte zu einem String verketten soll. Das könnte man auch mit der Funktion VERKETTEN() machen, das würde dann VERKETTEN(" „;A1;“,") entsprechen. Dadurch wird von der Funktion nicht der Originalstring durchsucht, sondern ein zusammengesetzter String mit dem Aufbau Leerzeichen-String-Komma. Wenn A1 den String „Auto“ enthält, würde die Funktion mit dem neuen String " Auto," arbeiten. Dadurch ist Leerzeichen und Komma immer vorhanden.

Probier doch einfach mal aus, was rauskommt, wenn du das in eine Zelle einträgst:

=" "&A1&","

Du könntest zum ausprobieren auch eine neue Tabelle erstellen und folgendes eintragen:
A1= rot
A2= Auto
A3= =VERKETTEN("ein ";A1;"es ";A2)
A4= ="ein " & A1 & "es " & A2
(die Leerzeichen vor und nach den & kann man auch weglassen, die sind nur für die lesbarkeit/verständlichkeit, haben aber keine Funktion)
Die Zellen A3 und A4 sollten nun beide ein rotes Auto anzeigen.

Das spielt keine Rolle. Mit FINDEN() muss die Groß- und Kleinschreibung genau übereinstimmen, mit SUCHEN() kannst du „auto“ suchen und findest „auto“, „Auto“, „AUTO“, „aUTO“, usw. Wenn beide Begriffe garantiert gleich geschrieben sind, kannst du FINDEN() benutzen, da aber die Suche, zumindest im Beispiel, durch Leerzeichen und Komma eindeutig ist, würde ich SUCHEN() empfehlen, etwas Fehlertoleranz schadet nicht.

Gruß
Tobias

1 Like

dann gehts so nicht. „irgendwas, autoirgendwas, irgendwas“ wäre auch positiv.

Neue idee, ähnlicher Ansatz: Prüfe ob A1=„auto“, ob „, auto,“ enthalten ist oder ob die ersten 5 Zeichen „auto,“ bzw die letzen 4 Zeichen „auto“ sind.

grüße
lipi

Hallo Tobias
Ein interessanter Schritt weiter zur Problemlösung! Wo es bei mir noch hapert: Wenn A1 folgenden Inhalt hat:
Auto und Fahrrad

Viele Grüsse Niclaus

Hallo,

das wurde von mir nicht eingeplant, da bisher nicht erwähnt, könnte aber Sinn machen und ist problemlos möglich. Mit der Funktion WECHSELN() kann man beliebigen Text in einem String durch einen neuen ersetzen.

Ursprüngliche Formel:

=SUCHEN(" Auto,";" "&A1&",")

Erweiterte Formel:

=SUCHEN(" Auto,";" "&WECHSELN(A1;" und ";", ")&",")

Das Leerzeichen am Ende des alten und des neuen Textes habe ich für die Eindeutigkeit hinzugefügt, da ja ein Begriff mit „und“ anfangen könnte, wie die fränkische Undergrundbahn ; )

Gruß
Tobias