Udostępnij za pośrednictwem


Funkcja SEARCH

Zwraca numer pozycji, na której został po raz pierwszy znaleziony określony znak lub ciąg tekstowy, czytając od lewej do prawej. Funkcja wyszukiwania nie rozróżnia wielkości liter, ale uwzględnia akcenty.

Składnia

SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])

Parametry

Termin

Definicja

find_text

Tekst do znalezienia.

W argumencie find_text można używać znaków symboli wieloznacznych — znaku zapytania (?) i gwiazdki (*). Znak zapytania zastępuje jeden znak, a znak gwiazdki zastępuje dowolną sekwencję znaków. Aby znaleźć rzeczywisty znak zapytania lub gwiazdkę, należy poprzedzić szukany znak znakiem tyldy (~).

within_text

Tekst, w którym ma zostać wyszukany tekst find_text, lub kolumna zawierająca tekst.

start_num

(Argument opcjonalny) Pozycja znaku w tekście określonym przez argument within_text, od której ma się rozpocząć wyszukiwanie. W przypadku pominięcia tego argumentu używana jest wartość 1.

NotFoundValue

(Argument opcjonalny) Wartość, która ma być zwracana, gdy podczas wykonywania operacji nie zostanie znaleziony pasujący podciąg. Zazwyczaj jest to wartość 0, -1 lub BLANK().

Wartość zwracana

Numer pozycji początkowej pierwszego ciągu tekstowego, licząc od pierwszego znaku drugiego ciągu.

Uwagi

  1. Funkcja wyszukiwania nie rozróżnia wielkości liter. Przy wyszukiwaniu litery „N” znajdowane jest pierwsze wystąpienie litery „N” lub „n”.

  2. Funkcja wyszukiwania uwzględnia akcenty. Przy wyszukiwaniu litery „á” znajdowane jest pierwsze wystąpienie litery „á”, ale nie wystąpienia liter „a”, „à”, ani ich wersji „A”, „Á”.

  3. Używając tej funkcji, można zlokalizować jeden ciąg tekstowy wewnątrz drugiego ciągu tekstowego i zwrócić pozycję, na której rozpoczyna się pierwszy ciąg.

  4. Funkcji SEARCH można również użyć w celu ustalenia lokalizacji znaku lub ciągu tekstowego w innym ciągu tekstowym, a następnie można użyć funkcji MID, aby zwrócić tekst, albo funkcji REPLACE, aby zmienić tekst.

  5. Jeśli tekstu określonego przez argument find_text nie można odnaleźć w tekście określonym przez argument within_text, formuła zwraca błąd. To zachowanie przypomina zachowanie programu Excel, który zwraca wartość #ARG, jeśli nie można odnaleźć podciągu. Wartości null w argumencie within_text będą w tym kontekście interpretowane jako ciąg pusty.

Ta funkcja języka DAX może zwracać inne wyniki w przypadku użycia jej w modelu, który został wdrożony i do którego skierowano następnie zapytanie w trybie zapytania bezpośredniego. Aby uzyskać więcej informacji o różnicach semantycznych w trybie zapytania bezpośredniego, zobacz https://go.microsoft.com/fwlink/?LinkId=219171.

Przykład: wyszukiwanie w obrębie ciągu

Opis

Poniższa formuła znajduje pozycję litery „n” w wyrazie „printer”.

Kod

=SEARCH("n","printer")

Komentarze

Formuła zwraca wartość 4, ponieważ „n” jest czwartym znakiem w wyrazie „printer”.

Przykład: wyszukiwanie w obrębie kolumny

Opis

Jako argumentu funkcji SEARCH można również użyć odwołania do kolumny. Poniższa formuła znajduje pozycję znaku „-” (łącznik) w kolumnie [PostalCode].

Kod

=SEARCH("-",[PostalCode])

Komentarze

Zwracany wynik to kolumna liczb wskazujących pozycję indeksu dla łącznika.

Opis

Działanie formuły z poprzedniego przykładu nie powiedzie się, jeśli szukany ciąg nie zostanie znaleziony w każdym wierszu kolumny źródłowej. Dlatego w następnym przykładzie pokazano sposób użycia funkcji IFERROR z funkcją SEARCH umożliwiający zagwarantowanie zwrócenia prawidłowego wyniku dla każdego wiersza.

Poniższa formuła znajduje pozycję znaku „-” w kolumnie i zwraca wartość -1, jeśli nie można odnaleźć tego ciągu.

Kod

= IFERROR(SEARCH("-",[PostalCode]),-1)

Komentarze

Należy zauważyć, że typ danych wartości używanej jako wynik w przypadku błędu musi być zgodny z typem danych wartości używanej jako prawidłowy wynik. W tym przypadku jako wartość błędu jest używana wartość liczbowa, ponieważ funkcja SEARCH zwraca wartość całkowitą.

Można jednak także zwracać wartość pustą (ciąg pusty), używając funkcji BLANK() jako drugiego argumentu funkcji IFERROR.

Zobacz także

Odwołanie

Funkcja MID

Funkcja REPLACE

Inne zasoby

Funkcje tekstowe (język DAX)