SEARCH
применяется:вычисляемый столбец
вычисляемой таблицы
измерение
визуального вычисления
Возвращает число символов, в которых сначала найдена определенная символьная или текстовая строка, считывающая слева направо. Поиск не учитывает регистр и учитывает акцент.
Синтаксис
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".
Функция поиска учитывает акцент. Поиск "á" найдет первое вхождение "á", но никаких вхождения "a", "à" или прописных версий "A", "Á".
Функцию SEARCH можно использовать для определения расположения символа или текстовой строки в другой текстовой строке, а затем использовать функцию MID для возврата текста или использовать функцию REPLACE для изменения текста.
Если
find_text
не удается найти вwithin_text
, формула возвращает ошибку. Это поведение похоже на Excel, которое возвращает #VALUE, если подстрока не найдена. Значения NULL вwithin_text
будут интерпретированы как пустая строка в этом контексте.Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
Следующий DAX запрос находит позицию первой буквы цикла в строке, содержащей имя торгового посредника. Если он не найден, возвращается пустое значение.
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 | Business Type | Position of cycle |
---|---|---|
Volume Bike Sellers | Склад | |
Mass Market Bikes | Добавленный торговый посредник по значению | |
Twin Cycles | Добавленный торговый посредник по значению | 6 |
Rich Department Store | Склад | |
Rental Gallery | Специализированный магазин велосипедов | |
Budget Toy Store | Склад | |
Global Sports Outlet | Склад | |
Online Bike Catalog | Склад | |
Шлемы и циклы | Добавленный торговый посредник по значению | 13 |
Jumbo Bikes | Специализированный магазин велосипедов |