WYSZUKIWANIE

Zwraca liczbę znaków, w których najpierw można odnaleźć określony znak lub ciąg tekstowy, odczytując od lewej do prawej. Wyszukiwanie jest rozróżniane bez uwzględniania wielkości liter i akcentu.

Składnia

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

Parametry

Termin Definicja
Szukany_tekst Tekst, który chcesz znaleźć.

Można użyć symboli wieloznacznych — znaku zapytania (?) i gwiazdki (*) w find_text. Znak zapytania pasuje do dowolnego pojedynczego znaku; gwiazdka pasuje do dowolnej sekwencji znaków. Jeśli chcesz znaleźć rzeczywisty znak zapytania lub gwiazdkę, wpisz tyldę (~) przed znakiem.
Obejmujący_tekst Tekst, w którym chcesz wyszukać find_text lub kolumnę zawierającą tekst.
Liczba_początkowa (opcjonalnie) Położenie znaku w within_text , w którym chcesz rozpocząć wyszukiwanie. Jeśli pominięto, 1.
NotFoundValue (opcjonalnie, ale zdecydowanie zalecane) Wartość, która powinna być zwracana, gdy operacja nie znajduje pasującego podciągu, zazwyczaj 0, -1 lub BLANK(). Jeśli nie zostanie określony, zostanie zwrócony błąd.

Wartość zwracana

Liczba pozycji początkowej pierwszego ciągu tekstowego z pierwszego znaku drugiego ciągu tekstowego.

Uwagi

  • Funkcja wyszukiwania jest niewrażliwa na wielkość liter. Wyszukiwanie ciągu "N" spowoduje znalezienie pierwszego wystąpienia "N" lub "n".

  • Funkcja wyszukiwania jest wrażliwa na akcent. Wyszukiwanie "á" znajdzie pierwsze wystąpienie "á", ale nie wystąpień "a", "à" lub skapitalizowanych wersji "A", "Á".

  • Za pomocą funkcji SEARCH można określić lokalizację znaku lub ciągu tekstowego w innym ciągu tekstowym, a następnie użyć funkcji MID, aby zwrócić tekst, lub użyć funkcji REPLACE, aby zmienić tekst.

  • Jeśli nie można odnaleźć find_text w within_text, formuła zwraca błąd. To zachowanie jest podobne do programu Excel, który zwraca #VALUE, jeśli podciąg nie zostanie znaleziony. Wartości null w within_text będą interpretowane jako pusty ciąg w tym kontekście.

  • Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.

Przykład

Następujące zapytanie języka DAX znajduje pozycję pierwszej litery "cycle" w ciągu zawierającym nazwę odsprzedawcy. Jeśli nie zostanie znaleziona, zostanie zwrócona wartość Blank.

Funkcja SEARCH nie uwzględnia wielkości liter. W tym przykładzie, jeśli w argumencie <find_text> jest używany ciąg "cycle" lub "Cycle", wyniki są zwracane dla obu przypadków. Użyj funkcji FIND w przypadku rozróżniania wielkości liter.

Przykłady w tym artykule mogą być używane z przykładowym modelem Adventure Works DW 2020 Power BI Desktop. Aby uzyskać model, zobacz przykładowy model języka DAX.

EVALUATE
CALCULATETABLE (
    ADDCOLUMNS (
        TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
        "Position of cycle", SEARCH ( "cycle", 'Reseller'[Reseller], 1, BLANK () )
    ),
    'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added Reseller", "Warehouse"}
)

Zwraca

Reseller (Odsprzedawca) Business Type (Typ biznesowy) Położenie cyklu
Sprzedawcy rowerów zbiorczych Magazyn
Rowery masowego rynku Value Added Reseller
Cykle bliźniaczych reprezentacji Value Added Reseller 6
Bogaty dom towarowy Magazyn
Galeria wynajmu Specialty Bike Shop
Budget Toy Store Magazyn
Globalny punkt sprzedaży sportowej Magazyn
Katalog rowerów online Magazyn
Kaski i cykle Value Added Reseller 13
Jumbo Bikes Specialty Bike Shop

ZNALEŹĆ
ZASTĄPIĆ
Funkcje tekstowe