SEARCH

применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления

Возвращает число символов, в которых сначала найдена определенная символьная или текстовая строка, считывающая слева направо. Поиск не учитывает регистр, нечувствителен кanatype-insensitive, width-insensitive и учитывает акцент.

Синтаксис

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

Параметры

Термин Определение
find_text Текст, который требуется найти.

Можно использовать подстановочные знаки — вопросительный знак (?) и звездочку (*) в find_text. Вопросительный знак соответствует любому одному символу; звездочка соответствует любой последовательности символов. Если вы хотите найти фактический вопросительный знак или звездочку, введите тильду (~) перед символом.
within_text Текст, в котором требуется искать find_text, или столбец, содержащий текст.
start_num (необязательно) Позиция символа в within_text, с которой требуется начать поиск. Если опущено, 1.
NotFoundValue (необязательно, но настоятельно рекомендуется) Значение, возвращаемое, когда операция не находит соответствующую подстроку, обычно 0, -1 или BLANK(). Если он не указан, функция возвращает ошибку.

Возвращаемое значение

Число начальной позиции первой текстовой строки из первого символа второй текстовой строки.

Замечания

  • Функция поиска не учитывает регистр. Поиск "N" находит первое вхождение "N" или "n".

  • Функция поиска является нечувствительной, нечувствительной к ширине. Поиск "か" находит первое вхождение 「か」 (hiragana), 「カ」 (katakana), или 「カ」 (половина ширины катакана).

  • Функция поиска учитывает акцент. Поиск "á" находит первое вхождение "á", но никаких вхождения "a", "à" или прописных версий "A", "Á".

  • Функцию SEARCH можно использовать для определения расположения символа или текстовой строки в другой текстовой строке, а затем использовать функцию MID для возврата текста или использовать функцию REPLACE для изменения текста.

  • find_text Если не удается найти within_textего, формула возвращает ошибку. Это поведение похоже на Excel, которое возвращает значение #VALUE, если подстрока не найдена. within_text Значения NULL интерпретируются как пустая строка в этом контексте.

  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Пример

Следующий DAX запрос находит позицию первой буквы цикла в строке, содержащей имя торгового посредника. Если не найдено, SEARCH возвращает пустое значение.

SEARCH не учитывает регистр. В этом примере при использовании "cycle" или "Cycle" в аргументе find_text запрос возвращает результаты для любого случая. Используйте FIND для учета регистра.

Примеры в этой статье можно использовать с примером модели Adventure Works DW 2020 Power BI Desktop. Сведения о получении модели см. в разделе 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" }
)

Возвращает

Reseller Бизнес-тип Положение цикла
Продавцы велосипедов томов Склад
Массовый рынок велосипедов Добавленный торговый посредник по значению
Циклы двойников Добавленный торговый посредник по значению 6
Богатый магазин универмага Склад
Коллекция прокатов Специализированный магазин велосипедов
Бюджетный магазин toy Store Склад
Глобальный спортивный выход Склад
Каталог велосипедов в Интернете Склад
Шлемы и циклы Добавленный торговый посредник по значению 13
Jumbo Bikes Специализированный магазин велосипедов