SEARCH

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Retorna o número do caractere no qual um caractere específico ou uma cadeia de texto é encontrada pela primeira vez, lendo da esquerda para a direita. A pesquisa não diferencia maiúsculas de minúsculas e diferencia acentos.

Sintaxe

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

Parâmetros

Termo Definição
find_text O texto que você deseja encontrar.

Você pode usar caracteres curinga – o ponto de interrogação (?) e o asterisco (*) – em find_text. Um ponto de interrogação corresponde a qualquer caractere único; um asterisco corresponde a qualquer sequência de caracteres. Se você quiser localizar um ponto de interrogação ou um asterisco real, digite um til (~) antes do caractere.
within_text O texto no qual você deseja pesquisar find_textou uma coluna contendo texto.
start_num (opcional) A posição do caractere em within_text em que você deseja iniciar a pesquisa. Se omitido, 1.
NotFoundValue (opcional, mas recomendado) O valor que deverá ser retornado quando a operação não encontrar uma substring correspondente, normalmente 0, -1 ou BLANK(). Se não for especificado, um erro será retornado.

Valor retornado

O número da posição inicial da primeira cadeia de texto do primeiro caractere da segunda cadeia de texto.

Comentários

  • A função de pesquisa não diferencia maiúsculas de minúsculas. A pesquisa por "N" encontrará a primeira ocorrência de "N" ou "n".

  • A função de pesquisa diferencia acentos. Pesquisar por "á" encontrará a primeira ocorrência de "á", mas nenhuma ocorrência de "a", "à" ou das versões em maiúsculas, "A" e "Á".

  • Você pode usar a função de pesquisa para determinar a localização de um caractere ou de uma cadeia de texto dentro de outra cadeia de texto e, em seguida, usar a função MID para retornar o texto ou usar a função REPLACE para alterar o texto.

  • Se find_text não puder ser encontrado em within_text, a fórmula retornará um erro. Esse comportamento é como o do Excel, que retorna #VALUE se a substring não for encontrada. Os valores nulos em within_text serão interpretados como uma cadeia de caracteres vazia neste contexto.

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo

A consulta DAX a seguir encontra a posição da primeira letra de "ciclo" na cadeia de caracteres que contém o nome do revendedor. Se não for encontrado, Blank será retornado.

SEARCH não diferencia maiúsculas e minúsculas. Neste exemplo, se "cycle" ou "Cycle" for usado no argumento <find_text>, os resultados serão retornados em qualquer caso. Use FIND para diferenciar maiúsculas de minúsculas.

Os exemplos deste artigo podem ser usados com o modelo de exemplo do Power BI Desktop do Adventure Works DW 2020. Para obter o modelo, confira Modelo de exemplo 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"}
)

Retorna:

Reseller Business Type Posição do ciclo
Volume Bike Sellers Warehouse
Mass Market Bikes Revendedor de Valor Agregado
Twin Cycles Revendedor de Valor Agregado 6
Rich Department Store Warehouse
Rental Gallery Specialty Bike Shop
Budget Toy Store Warehouse
Global Sports Outlet Warehouse
Online Bike Catalog Warehouse
Helmets and Cycles Revendedor de Valor Agregado 13
Jumbo Bikes Specialty Bike Shop

FIND
REPLACE
Funções de texto