=SUCHEN("apple";A2) liefert die Position, an der apple in A2 beginnt, gezählt ab 1, und ignoriert Groß- und Kleinschreibung. =FINDEN("apple";A2) macht dasselbe, passt aber nur bei genau gleicher Schreibweise. Steht der Text nicht da, liefern beide #WERT! (englisch #VALUE!). In englischem Excel heißen die Funktionen SEARCH und FIND, und die Tabelle zeigt die englische Schreibweise und die englischen Fehlernamen. Du kannst die Formeln in der Tabelle auch deutsch eingeben, mit Semikolons: =SUCHEN("apple";A2).
| A | B | C | |
|---|---|---|---|
| 1 | Text | FIND("apple") | SEARCH("apple") |
| 2 | Apple pie | #VALUE! | 1 |
| 3 | Green apple | 7 | 7 |
| 4 | Banana bread | #VALUE! | #VALUE! |
#VALUE! Ein Argument hat den falschen Typ, etwa Text, wo eine Zahl stehen muss.Im deutschen Excel: =FINDEN("apple";A2)Apple pie beginnt mit einem großen A, also passt FINDEN nicht und liefert #WERT!, während SUCHEN 1 liefert. In Green apple liefern beide 7: Das Leerzeichen zählt als Zeichen. In Banana bread kommt apple gar nicht vor.
Syntax
=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
find_text(Suchtext): was gesucht wird. Ein Zeichen oder ein Wort.within_text(Text): die Zelle, in der gesucht wird.start_num(Erstes_Zeichen): die Position, ab der gesucht wird, 1, wenn du es weglässt. Das Ergebnis zählt trotzdem ab dem ersten Zeichen der Zelle.
Wenn Zelle Text enthält
Die Position selbst willst du selten. Meist lautet die Frage: "Enthält diese Zelle das Wort?" Eine Position ist eine Zahl und ein Fehlschlag ein Fehler, also macht ISTZAHL (englisch ISNUMBER) aus dem Ergebnis WAHR oder FALSCH:
| A | B | C | |
|---|---|---|---|
| 1 | Note | Contains "late" | Status |
| 2 | Arrived late | TRUE | Check |
| 3 | On time | FALSE | OK |
| 4 | LATE by 2 days | TRUE | Check |
| 5 | Delivered | FALSE | OK |
=ISTZAHL(SUCHEN("late";A2))SUCHEN findet LATE in A4, weil es die Schreibweise ignoriert. Beachte, dass es auch latest oder chocolate finden würde: SUCHEN sucht nach Zeichen, nicht nach ganzen Wörtern. Die Suche nach " late" mit einem Leerzeichen davor grenzt das etwas ein. Um zu zählen, wie viele Zellen ein Wort enthalten, ist =ZÄHLENWENN(A2:A5;"*late*") kürzer; siehe Zellen mit Text zählen.
| A | B | |
|---|---|---|
| 1 | Subject | Urgent? |
| 2 | URGENT: server down | |
| 3 | Monthly report | |
| 4 | Refund request, urgent |
Du bist dran: Gib in B2 WAHR zurück, wenn der Betreff in A2 das Wort urgent in beliebiger Schreibweise enthält, sonst FALSCH. Die Formel wird bis B4 nach unten ausgefüllt.
Das zweite Vorkommen finden
Mit start_num beginnst du die Suche nach dem ersten Treffer. Setz ein FINDEN in ein anderes: Das innere findet den ersten Bindestrich, und das äußere beginnt ein Zeichen später.
| A | B | C | |
|---|---|---|---|
| 1 | Code | First dash | Second dash |
| 2 | NYC-2041-B | 4 | 9 |
| 3 | BOSTON-15-AA | 7 | 10 |
=FINDEN("-";A2;FINDEN("-";A2)+1)Mit den beiden Positionen kann TEIL nehmen, was zwischen den Bindestrichen steht: =TEIL(A2;B2+1;C2-B2-1) liefert 2041.
| A | B | |
|---|---|---|
| 1 | Position | |
| 2 | ana@coddy.tech |
Du bist dran: Gib in B2 die Position des @ in der E-Mail-Adresse zurück.
FINDEN und SUCHEN liefern #WERT!
#WERT! bedeutet hier nur "nicht gefunden". Ersetze es durch etwas Nützliches:
| A | B | |
|---|---|---|
| 1 | Position of @ | |
| 2 | ana@coddy.tech | 4 |
| 3 | not an email | 0 |
=WENNFEHLER(FINDEN("@";A2);0)Vergleiche das rohe Ergebnis nicht mit einer Zahl, wie in =FINDEN("@";A2)>0: Ein Fehlschlag ist ein Fehler, und der Vergleich liefert #WERT! statt FALSCH. Prüf es mit ISTZAHL, wie im Abschnitt oben.
Platzhalter: nur SUCHEN
SUCHEN nimmt die Platzhalter ? (ein beliebiges Zeichen) und * (beliebig viele Zeichen) an. FINDEN behandelt sie als die Zeichen selbst. In Excel, in englischer Schreibweise:
=SEARCH("b?d","a bad day") returns 3
=SEARCH("2*B","NYC-2041-B") returns 5
=SEARCH("~?","Why?") returns 4, the tilde means a real question mark
=FIND("?","Why?") returns 4, FIND has no wildcards
In deutschem Excel: =SUCHEN("b?d";"a bad day") und =FINDEN("?";"Why?"). Mehr zu *, ? und ~ in Excel-Funktionen steht auf der Seite zu Platzhaltern.
FINDEN, SUCHEN und Strg+F im Vergleich
| FINDEN | SUCHEN | Strg+F | |
|---|---|---|---|
| Schreibweise | Muss passen | Wird ignoriert | Wird ignoriert, außer Groß-/Kleinschreibung beachten ist angehakt |
| Platzhalter | Nein | ?, *, ~ | ?, *, ~ |
| Nicht gefunden | #WERT! | #WERT! | Eine Meldung |
| Ergebnis | Eine Position, neu berechnet | Eine Position, neu berechnet | Markiert die Zelle |
Um einen Wert einmal zu finden, ist Start > Suchen und Auswählen > Suchen (Strg+F, auf dem Mac Cmd+F) schneller als eine Formel. Um in jeder Zeile zu markieren oder auszulesen und es aktuell zu halten, nimmst du FINDEN oder SUCHEN. Nimm FINDEN, wenn die Schreibweise eine Bedeutung hat (Produktcodes wie ab und AB), und SUCHEN für alles, was Menschen tippen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen FINDEN und SUCHEN in Excel?
FINDEN unterscheidet Groß- und Kleinschreibung und nimmt keine Platzhalter an. SUCHEN ignoriert die Schreibweise und nimmt ? und * an. =FINDEN("a";"Apple") ergibt #WERT!, während =SUCHEN("a";"Apple") 1 ergibt.
Wie lese ich in Excel den Text zwischen zwei Bindestrichen aus?
Such beide Bindestriche und nimm mit TEIL, was dazwischen liegt: =TEIL(A2;FINDEN("-";A2)+1;FINDEN("-";A2;FINDEN("-";A2)+1)-FINDEN("-";A2)-1) liefert 2041 aus NYC-2041-B. In Microsoft 365 ist =TEXTVOR(TEXTNACH(A2;"-");"-") kürzer.
Warum liefert FINDEN #WERT!?
Der Text steht nicht in der Zelle, oder er steht dort mit anderer Groß- und Kleinschreibung (FINDEN unterscheidet sie). Pack die Formel ein, damit sie etwas anderes liefert: =WENNFEHLER(FINDEN("-";A2);0).
Wie finde ich das zweite Vorkommen eines Zeichens?
Beginne die Suche ein Zeichen nach dem ersten Treffer: =FINDEN("-";A2;FINDEN("-";A2)+1). Das dritte Argument ist die Position, ab der gesucht wird.