Inhaltsverzeichnis
Das Tutorial erklärt die Syntax der Excel-Funktionen FIND und SEARCH und bietet Formelbeispiele für fortgeschrittene, nicht-triviale Anwendungen.
Im letzten Artikel haben wir uns mit den Grundlagen des Dialogfelds Suchen und Ersetzen in Excel beschäftigt. In vielen Situationen möchten Sie jedoch, dass Excel auf der Grundlage Ihrer Kriterien automatisch Daten in anderen Zellen findet und extrahiert. Schauen wir uns also genauer an, was die Suchfunktionen von Excel zu bieten haben.
Excel FIND-Funktion
Die FIND-Funktion in Excel wird verwendet, um die Position eines bestimmten Zeichens oder einer Teilzeichenkette in einer Textzeichenfolge zu ermitteln.
Die Syntax der Excel-Suchfunktion lautet wie folgt:
FIND(find_text, within_text, [start_num])Die ersten 2 Argumente sind erforderlich, das letzte ist optional.
- Suchen_Text - das Zeichen oder die Teilzeichenkette, die Sie suchen möchten.
- Innerhalb_Text - die Textzeichenfolge, in der gesucht werden soll. Normalerweise wird sie als Zellreferenz angegeben, aber Sie können die Zeichenfolge auch direkt in die Formel eingeben.
- Start_num - ein optionales Argument, das angibt, ab welchem Zeichen die Suche beginnen soll. Wird es weggelassen, beginnt die Suche ab dem 1. Zeichen der Zeichenkette within_text.
Wenn die FIND-Funktion das/die find_text-Zeichen nicht findet, wird ein Fehler #VALUE! zurückgegeben.
Zum Beispiel die Formel =FIND("d", "find")
ergibt 4, da "d" der 4. Buchstabe im Wort "" ist. finden. "Die Formel =FIND("a", "find")
gibt einen Fehler zurück, weil es kein "a" in " finden. ".
Excel FIND-Funktion - was Sie beachten sollten!
Um eine FIND-Formel in Excel korrekt zu verwenden, sollten Sie die folgenden einfachen Fakten beachten:
- Die FIND-Funktion ist Groß- und Kleinschreibung beachten Wenn Sie nach einer Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung suchen, verwenden Sie die Funktion SEARCH.
- Die FIND-Funktion in Excel erlaubt nicht die Verwendung von Platzhalterzeichen .
- Wenn das Argument find_text mehrere Zeichen enthält, gibt die Funktion FIND die Position des erstes Zeichen Die Formel FIND("ap", "happy") gibt zum Beispiel 2 zurück, weil "a" der 2.
- Wenn within_text enthält mehrere Vorkommnisse von find_text wird das erste Vorkommen zurückgegeben. FIND("l", "hello") gibt zum Beispiel 3 zurück, das ist die Position des ersten "l"-Zeichens im Wort "hello".
- Wenn find_text ein leere Zeichenkette "", gibt die Excel-FIND-Formel das erste Zeichen der Suchzeichenfolge zurück.
- Die Excel-Funktion FIND gibt die #VALUE! error wenn einer der folgenden Fälle eintritt:
- Find_text existiert nicht in within_text.
- Start_num enthält mehr Zeichen als within_text.
- Start_num ist 0 (Null) oder eine negative Zahl.
Excel SEARCH-Funktion
Die Funktion SEARCH in Excel ist der Funktion FIND sehr ähnlich, da sie ebenfalls die Position einer Teilzeichenkette in einer Textzeichenfolge zurückgibt. Die Syntax und die Argumente entsprechen denen von FIND:
SEARCH(find_text, within_text, [start_num])Im Gegensatz zu FIND ist die Funktion SEARCH Groß- und Kleinschreibung wird nicht berücksichtigt und erlaubt die Verwendung von Platzhaltern, wie im folgenden Beispiel gezeigt wird.
Und hier sind ein paar grundlegende Formeln für die Excel-Suche:
=SEARCH("Markt", "Supermarkt")
gibt 6 zurück, da die Teilzeichenkette "market" mit dem 6. Zeichen des Wortes "supermarket" beginnt.
=SEARCH("e", "Excel")
gibt 1 zurück, weil "e" das erste Zeichen in dem Wort "Excel" ist, wobei die Groß- und Kleinschreibung ignoriert wird.
Wie FIND gibt auch die SEARCH-Funktion von Excel den Fehler #VALUE! zurück, wenn:
- Der Wert des Arguments find_text wird nicht gefunden.
- Das Argument start_num ist größer als die Länge von within_text.
- Start_num ist gleich oder kleiner als Null.
Im weiteren Verlauf dieses Tutorials finden Sie einige weitere aussagekräftige Formelbeispiele, die zeigen, wie Sie die Funktion SUCHEN in Excel-Arbeitsblättern verwenden können.
Excel FIND vs. Excel SEARCH
Wie bereits erwähnt, sind sich die Funktionen FINDEN und SUCHEN in Excel in Bezug auf Syntax und Verwendungszweck sehr ähnlich, weisen jedoch einige Unterschiede auf.
1) FINDEN unter Berücksichtigung der Groß-/Kleinschreibung vs. SUCHEN ohne Berücksichtigung der Groß-/Kleinschreibung
Der wichtigste Unterschied zwischen den Excel-Funktionen SEARCH und FIND besteht darin, dass bei SEARCH die Groß- und Kleinschreibung nicht beachtet wird, während bei FIND die Groß- und Kleinschreibung beachtet wird.
SEARCH("e", "Excel") gibt beispielsweise 1 zurück, weil es die Groß- und Kleinschreibung von "E" ignoriert, während FIND("e", "Excel") 4 zurückgibt, weil es die Groß- und Kleinschreibung beachtet.
2. die Suche mit Platzhalterzeichen
Im Gegensatz zu FIND akzeptiert die Excel-Funktion SEARCH Platzhalterzeichen im Argument find_text:
- Ein Fragezeichen (?) entspricht einem Zeichen, und
- Ein Sternchen (*) entspricht einer beliebigen Folge von Zeichen.
Um zu sehen, wie es mit realen Daten funktioniert, betrachten Sie das folgende Beispiel:
Wie Sie in der obigen Abbildung sehen, gibt die Formel SEARCH("function*2013", A2) die Position des ersten Zeichens ("f") in der Teilzeichenkette zurück, wenn die Textzeichenfolge, auf die sich das Argument within_text bezieht, sowohl "function" als auch "2013" enthält, unabhängig davon, wie viele andere Zeichen dazwischen liegen.
Tipp: Um ein echtes Fragezeichen (?) oder einen Stern (*) zu finden, geben Sie eine Tilde (~) vor dem entsprechenden Zeichen ein.
Excel FIND und SEARCH Formel Beispiele
In der Praxis werden die Excel-Funktionen FINDEN und SUCHEN nur selten allein verwendet, sondern in der Regel in Kombination mit anderen Funktionen wie MID, LINKS oder RECHTS, und die folgenden Formelbeispiele zeigen einige praktische Anwendungen.
Beispiel 1: Suche nach einer Zeichenkette, die vor oder nach einem bestimmten Zeichen steht
Dieses Beispiel zeigt, wie Sie alle Zeichen in einer Textzeichenfolge links oder rechts von einem bestimmten Zeichen finden und extrahieren können. Zum besseren Verständnis betrachten Sie das folgende Beispiel.
Angenommen, Sie haben eine Spalte mit Namen (Spalte A) und möchten den Vornamen und den Nachnamen in separate Spalten ziehen.
Um den Vornamen zu ermitteln, können Sie FIND (oder SEARCH) in Verbindung mit der Funktion LEFT verwenden:
=LINKS(A2, FIND(" ", A2)-1)
oder
=LINKS(A2, SUCHE(" ", A2)-1)
Wie Sie wahrscheinlich wissen, gibt die Excel-Funktion LEFT die angegebene Anzahl der Zeichen ganz links in einer Zeichenkette zurück. Und Sie verwenden die Funktion FIND, um die Position eines Leerzeichens (" ") zu bestimmen, damit die Funktion LEFT weiß, wie viele Zeichen sie extrahieren soll. Dabei subtrahieren Sie 1 von der Position des Leerzeichens, da Sie nicht wollen, dass der zurückgegebene Wert das Leerzeichen enthält.
Um den Nachnamen zu extrahieren, verwenden Sie eine Kombination aus den Funktionen RIGHT, FIND / SEARCH und LEN. Die Funktion LEN wird benötigt, um die Gesamtzahl der Zeichen in der Zeichenfolge zu ermitteln, von der Sie die Position des Leerzeichens abziehen:
=RECHTS(A2,LEN(A2)-FIND(" ",A2))
oder
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
Der folgende Screenshot veranschaulicht das Ergebnis:
Für komplexere Szenarien, wie z. B. das Extrahieren eines zweiten Vornamens oder das Aufteilen von Namen mit Suffixen, lesen Sie bitte Wie man Zellen in Excel mithilfe von Formeln aufteilt.
Beispiel 2: Suche nach dem N-ten Vorkommen eines bestimmten Zeichens in einer Zeichenkette
Angenommen, Sie haben einige Textstrings in Spalte A, z. B. eine Liste von SKUs, und Sie möchten die Position des 2. Die folgende Formel funktioniert sehr gut:
=FIND("-", A2, FIND("-",A2)+1)
Die ersten beiden Argumente sind einfach zu interpretieren: Suchen Sie einen Bindestrich ("-") in Zelle A2. Im dritten Argument (start_num) betten Sie eine weitere FIND-Funktion ein, die Excel anweist, die Suche mit dem Zeichen zu beginnen, das direkt nach dem ersten Vorkommen des Bindestrichs kommt (FIND("-",A2)+1).
Um die Position der 3. Auftreten Sie betten die obige Formel in das start_num-Argument einer anderen FIND-Funktion ein und addieren 2 zu dem zurückgegebenen Wert:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
Eine andere und wahrscheinlich einfachere Möglichkeit, das N-te Vorkommen eines bestimmten Zeichens zu finden, ist die Verwendung der Excel-Funktion FIND in Kombination mit CHAR und SUBSTITUTE:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Dabei steht "-" für das betreffende Zeichen und "3" für das N-te Vorkommen, das Sie finden möchten.
In der obigen Formel ersetzt die Funktion SUBSTITUTE das dritte Vorkommen des Bindestrichs ("-") durch CHAR(1), das im ASCII-System das nicht druckbare Zeichen für den Beginn der Überschrift ist. Anstelle von CHAR(1) können Sie jedes andere nicht druckbare Zeichen von 1 bis 31 verwenden. Die Funktion FIND gibt dann die Position dieses Zeichens in der Textzeichenfolge zurück. Die allgemeine Formel lautet also wie folgt:
FIND(CHAR(1),SUBSTITUTE( Zelle , Zeichen CHAR(1), N. Vorkommen ))Auf den ersten Blick mag es so aussehen, als ob die obigen Formeln wenig praktischen Wert hätten, aber das nächste Beispiel wird zeigen, wie nützlich sie bei der Lösung von realen Aufgaben sind.
Hinweis: Bitte beachten Sie, dass Excel bei der FIND-Funktion zwischen Groß- und Kleinschreibung unterscheidet. In unserem Beispiel macht das keinen Unterschied, aber wenn Sie mit Buchstaben arbeiten und eine Groß- und Kleinschreibung wird nicht berücksichtigt zu finden, verwenden Sie die Funktion SEARCH anstelle von FIND.
Beispiel 3: Extrahieren von N Zeichen nach einem bestimmten Zeichen
Um eine Teilzeichenkette einer bestimmten Länge innerhalb einer beliebigen Textkette zu finden, verwenden Sie Excel FIND oder Excel SEARCH in Kombination mit der MID-Funktion. Das folgende Beispiel zeigt, wie Sie solche Formeln in der Praxis verwenden können.
Angenommen, Sie möchten in unserer Liste der SKUs die ersten 3 Zeichen nach dem ersten Bindestrich finden und in eine andere Spalte ziehen.
Wenn die Gruppe von Zeichen vor dem ersten Bindestrich immer die gleiche Anzahl von Elementen enthält (z. B. 2 Zeichen), wäre dies eine triviale Aufgabe. Sie könnten die MID-Funktion verwenden, um 3 Zeichen aus einer Zeichenkette zurückzugeben, beginnend an Position 4 (wobei die ersten 2 Zeichen und ein Bindestrich übersprungen werden):
=MID(A2, 4, 3)
Übersetzt ins Englische lautet die Formel: "Suche in Zelle A2, beginne mit der Extraktion ab Zeichen 4 und gib 3 Zeichen zurück".
In realen Arbeitsblättern kann die Teilzeichenkette, die Sie extrahieren müssen, jedoch an einer beliebigen Stelle innerhalb der Textzeichenkette beginnen. In unserem Beispiel wissen Sie möglicherweise nicht, wie viele Zeichen vor dem ersten Bindestrich stehen. Um diese Herausforderung zu bewältigen, verwenden Sie die Funktion FIND, um den Anfangspunkt der Teilzeichenkette zu bestimmen, die Sie abrufen möchten.
Die FIND-Formel für die Rückgabe der Position des ersten Strichs lautet wie folgt:
=FIND("-",A2)
Da Sie mit dem auf den Bindestrich folgenden Zeichen beginnen wollen, addieren Sie 1 zum zurückgegebenen Wert und betten die obige Funktion in das zweite Argument (start_num) der MID-Funktion ein:
=MID(A2, FIND("-",A2)+1, 3)
In diesem Szenario funktioniert die SEARCH-Funktion von Excel genauso gut:
=MID(A2, SEARCH("-",A2)+1, 3)
Das ist toll, aber was ist, wenn die Gruppe von Zeichen nach dem ersten Strich eine andere Anzahl von Zeichen enthält? Hmm... das könnte ein Problem sein:
Wie Sie im obigen Screenshot sehen, funktioniert die Formel perfekt für die Zeilen 1 und 2. In den Zeilen 4 und 5 enthält die zweite Gruppe 4 Zeichen, aber nur die ersten 3 Zeichen werden zurückgegeben. In den Zeilen 6 und 7 gibt es nur 2 Zeichen in der zweiten Gruppe, und daher gibt unsere Excel-Suchformel einen Bindestrich nach ihnen zurück.
Wenn Sie zurückkehren wollten alle Zeichen zwischen dem 1. und 2. Vorkommen eines bestimmten Zeichens (in diesem Beispiel ein Bindestrich), wie würden Sie vorgehen? Hier ist die Antwort:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
Um diese MID-Formel besser zu verstehen, sollten wir ihre Argumente einzeln untersuchen:
- 1. Argument (Text): Es ist die Textzeichenfolge, die die zu extrahierenden Zeichen enthält, in diesem Beispiel Zelle A2.
- 2. Argument (start_position): Gibt die Position des ersten Zeichens an, das Sie extrahieren möchten. Sie verwenden die Funktion FIND, um den ersten Bindestrich in der Zeichenkette zu finden, und addieren 1 zu diesem Wert, weil Sie mit dem Zeichen beginnen möchten, das auf den Bindestrich folgt: FIND("-",A2)+1.
- 3. Argument (num_chars): Gibt die Anzahl der Zeichen an, die zurückgegeben werden sollen. In unserer Formel ist dies der kniffligste Teil. Sie verwenden zwei FIND- (oder SEARCH-) Funktionen, von denen eine die Position des ersten Bindestrichs bestimmt: FIND("-",A2). Und die andere gibt die Position des zweiten Bindestrichs zurück: FIND("-", A2, FIND("-",A2)+1). Dann subtrahieren Sie die erste von der zweiten und ziehen dann 1 ab, weil Sie nicht wollen, dassum einen der beiden Bindestriche einzuschließen. Als Ergebnis erhalten Sie die Anzahl der Zeichen zwischen dem ersten und dem zweiten Bindestrich, was genau das ist, wonach wir suchen. Sie geben diesen Wert also in das Argument num_chars der MID-Funktion ein.
In ähnlicher Weise können Sie nach dem 2. Bindestrich 3 Zeichen zurückgeben:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Oder extrahieren Sie alle Zeichen zwischen dem 2. und 3. Bindestrich:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Beispiel 4: Text zwischen Klammern suchen
Angenommen, Sie haben eine lange Textfolge in Spalte A und möchten nur den in Klammern eingeschlossenen Text finden und extrahieren.
Dazu benötigen Sie die MID-Funktion, um die gewünschte Anzahl von Zeichen aus einer Zeichenkette zu ermitteln, und entweder die Excel-Funktion FIND oder SEARCH, um zu bestimmen, wo Sie beginnen und wie viele Zeichen Sie extrahieren möchten.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
Die Logik dieser Formel ähnelt derjenigen, die wir im vorigen Beispiel besprochen haben. Und auch hier ist der komplexeste Teil das letzte Argument, das der Formel mitteilt, wie viele Zeichen sie zurückgeben soll. Dieser ziemlich lange Ausdruck im Argument num_chars bewirkt Folgendes:
- Zunächst ermitteln Sie die Position der schließenden Klammer:
SEARCH(")",A2)
- Danach bestimmen Sie die Position der öffnenden Klammer:
SUCHEN("(",A2)
- Dann berechnen Sie die Differenz zwischen den Positionen der schließenden und der öffnenden Klammer und ziehen von dieser Zahl 1 ab, da Sie keine der beiden Klammern im Ergebnis haben wollen:
SUCHE(")",A2)-SUCHE("(",A2))-1
Natürlich hindert Sie nichts daran, die Excel-Funktion FINDEN anstelle von SUCHEN zu verwenden, da die Unterscheidung zwischen Groß- und Kleinschreibung in diesem Beispiel keinen Unterschied macht.
Wir hoffen, dass wir Ihnen in diesem Tutorial die Verwendung der Funktionen SUCHEN und FINDEN in Excel näher bringen konnten. Im nächsten Tutorial werden wir die Funktion ERSETZEN genauer unter die Lupe nehmen, bleiben Sie also dran. Vielen Dank für die Lektüre!
Download Arbeitsheft für die Praxis
Beispiele für FIND- und SEARCH-Formeln