Поделиться через


SEARCH

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

Возвращает число символов, по которым or найдена определенная строка текста first символов, чтение left для right. Search учитывается регистр and с учетом акцента.

Синтаксис

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

Параметры

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

Можно использовать подстановочные знаки — вопросительный знак (?) and звездочка (*) в find_text. Вопросительный знак соответствует любому одному символу; звездочка соответствует любой последовательности символов. If вы хотите find фактический вопросительный знак or звездочку, введите тильду (~) перед символом.
within_text Текст, в котором требуется search для find_text, or столбца, содержащего текст.
start_num (необязательно) Позиция символа в within_text, с которой требуется начать поиск. If опущено, 1.
NotFoundValue (необязательно, но настоятельно рекомендуется) value, которые должны быть возвращены при notfind соответствующей подстроки, обычно 0, -1, orBLANK(). If not указан, возвращается error.

Возврат value

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

Замечания

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

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

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

  • If не удается найти find_text в within_text, формула возвращает error. Это поведение похоже на Excel, которое возвращает #VALUEif подстрока найдена not. Значения NULL в within_text будут интерпретированы как пустая строка в этом контексте.

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

Пример

Следующий запрос DAX находит позицию first буквы цикла в строке, contains имени торгового посредника. If not найден, возвращается Blank.

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

Примеры в этой статье можно использовать с моделью sample Adventure Works DW 2020 Power BI Desktop. Сведения о получении модели см. в модели.

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 добавленный торговый посредник Value
Twin Cycles добавленный торговый посредник Value 6
Rich Department Store Склад
Rental Gallery Специализированный магазин велосипедов
Budget Toy Store Склад
Global Sports Outlet Склад
Online Bike Catalog Склад
Шлемы and циклы добавленный торговый посредник Value 13
Jumbo Bikes Специализированный магазин велосипедов

FIND REPLACE функции текста