SEARCH-Funktion
Gibt die Nummer des Zeichens zurück, bei der ein bestimmtes Zeichen oder eine Textzeichenfolge zuerst gefunden wird (von links nach rechts). Bei der Suche wird nicht nach Groß-/Kleinschreibung und Akzenten unterschieden.
Syntax
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
Parameter
Begriff |
Definition |
---|---|
find_text |
Der Text, den Sie suchen möchten. Sie können in "find_text" auch Platzhalterzeichen verwenden – das Fragezeichen (?) und das Sternchen (*). Ein Fragezeichen findet eine Entsprechung für irgendein einzelnes Zeichen; ein Sternchen findet eine Entsprechung für eine beliebige Sequenz von Zeichen. Wenn Sie ein tatsächliches Fragezeichen oder ein Sternchen suchen möchten, geben Sie vor dem Zeichen eine Tilde (~) ein. |
within_text |
Der Text, in dem Sie nach "find_text" suchen möchten, oder eine Spalte, die Text enthält. |
start_num |
(optional) Die Zeichenposition in "within_text", an der Sie mit der Suche beginnen möchten. Falls weggelassen, wird 1 verwendet. |
NotFoundValue |
(optional) Der Wert, der zurückgegeben werden soll, wenn die Operation keine passende Teilzeichenfolge findet, in der Regel 0, -1 oder BLANK(). |
Rückgabewert
Die Nummer der Startposition der ersten Textzeichenfolge vom ersten Zeichen der zweiten Textzeichenfolge.
Hinweise
Bei der Suchfunktion wird nicht nach Groß-/Kleinschreibung unterschieden. Wenn "N" gesucht wird, wird das erste Vorkommen von "N" oder "n" gefunden.
Bei der Suchfunktion wird nach Akzenten unterschieden. Wenn "á" gesucht wird, wird das erste Vorkommen von "á", aber keine Vorkommen von "a", "à" oder der groß geschriebenen Buchstaben "A", "Á" gefunden.
Durch Verwenden dieser Funktion können Sie eine Textzeichenfolge innerhalb einer zweiten Textzeichenfolge suchen und die Startposition der ersten Textzeichenfolge zurückgeben.
Sie können die Position eines Zeichens oder einer Textzeichenfolge in einer anderen Textzeichenfolge mit der SUCHEN-Funktion bestimmen und dann die TEIL-Funktion zum Zurückgeben des Texts oder die ERSETZEN-Funktion zum Ändern des Texts verwenden.
Wenn find_text nicht in within_text gefunden wird, gibt die Formel einen Fehler zurück. Dieses Verhalten ist mit Excel identisch, da in Excel #WERT zurückgegeben wird, wenn die Teilzeichenfolge nicht gefunden wird. NULL-Werte in within_text werden in diesem Kontext als leere Zeichenfolge interpretiert.
Diese DAX-Funktion kann unterschiedliche Ergebnisse zurückgeben, wenn sie in einem Modell verwendet wird, das bereitgestellt und dann im DirectQuery-Modus abgefragt wird. Weitere Informationen zu semantischen Unterschieden im DirectQuery-Modus finden Sie unter https://go.microsoft.com/fwlink/?LinkId=219171.
Beispiel: Suche innerhalb einer Zeichenfolge
Beschreibung
Die folgende Formel sucht die Position des Buchstabens "n" im Wort "printer".
Code
=SEARCH("n","printer")
Kommentare
Die Formel gibt 4 zurück, da "n" das vierte Zeichen im Wort "printer" ist.
Beispiel: Suche innerhalb einer Spalte
Beschreibung
Sie können einen Spaltenverweis als Argument für SEARCH verwenden. Die folgende Formel sucht die Position des Bindestrichs (-) in der Spalte [PostalCode].
Code
=SEARCH("-",[PostalCode])
Kommentare
Als Ergebnis wird eine Spalte mit Zahlen zurückgegeben, die die Indexposition des Bindestrichs angeben.
Beispiel: Fehlerbehandlung mit SEARCH
Beschreibung
Die Formel im vorangehenden Beispiel verursacht einen Fehler, wenn die Suchzeichenfolge nicht in jeder Zeile der Quellspalte gefunden wird. Daher wird im nächsten Beispiel veranschaulicht, wie IFERROR mit der SEARCH-Funktion verwendet wird, um sicherzustellen, dass für jede Zeile ein gültiges Ergebnis zurückgegeben wird.
Die folgende Formel sucht die Position des Bindestrichs (-) innerhalb der Spalte und gibt -1 zurück, wenn die Zeichenfolge nicht gefunden wird.
Code
= IFERROR(SEARCH("-",[PostalCode]),-1)
Kommentare
Beachten Sie, dass der Datentyp des Werts, den Sie als Fehlerausgabe verwenden, dem Datentyp der Nichtfehlerausgabe entsprechen muss. Da SEARCH einen ganzzahligen Wert zurückgibt, stellen Sie in diesem Fall einen numerischen Wert bereit, der bei einem Fehler ausgegeben werden soll.
Es kann jedoch auch ein leerer Wert (leere Zeichenfolge) zurückgegeben werden, indem Sie BLANK() als zweites Argument für IFERROR verwenden.