Udostępnij za pośrednictwem


SEARCH

Dotyczy:kolumna obliczeniowatabela obliczeniowaMiarawizualizacji

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
find_text 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.
within_text Tekst, w którym chcesz wyszukać find_textlub kolumnę zawierającą tekst.
start_num (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 zwracaVALUE # 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

Poniższe zapytanie DAX znajduje pozycję pierwszej litery "cycle" w ciągu zawierającym nazwę odsprzedawcy. Jeśli nie zostanie znaleziona, zostanie zwrócona wartość Blank.

SEARCH jest bez uwzględniania 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 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 DAX przykładowy model.

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 Odsprzedawca z wartością dodaną
Cykle bliźniaczych reprezentacji Odsprzedawca z wartością dodaną 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 Odsprzedawca z wartością dodaną 13
Jumbo Bikes Specialty Bike Shop

funkcje FINDREPLACEText