VALOR DE PESQUISA

Aplica-se a:Colunacalculada Tabelacalculada MedidaCálculo visual

Retorna o valor da linha que atende a todos os critérios especificados por uma ou mais condições de pesquisa.

Sintaxe

LOOKUPVALUE (
    <result_columnName>,
    <search_columnName>,
    <search_value>
    [, <search2_columnName>, <search2_value>]…
    [, <alternateResult>]
)

Parâmetros

Termo Definição
result_columnName O nome de uma coluna existente que contém o valor que você deseja retornar. Não pode ser uma expressão.
search_columnName O nome de uma coluna existente. Pode estar na mesma tabela que result_columnName ou em uma tabela relacionada. Não pode ser uma expressão. Vários pares de search_columnName e search_value podem ser especificados.
search_value O valor a procurar em search_columnName. Vários pares de search_columnName e search_value podem ser especificados.
alternateResult (Opcional) O valor retornado quando o contexto para result_columnName foi filtrado para zero ou mais de um valor distinto. Se não for especificada, a função retornará BLANK quando result_columnName for filtrada para valores zero ou um erro quando houver mais de um valor distinto no contexto para result_columnName.

Valor devolvido

O valor de result_columnName na linha onde todos os pares de search_columnName e search_value têm uma correspondência exata.

Se não houver uma correspondência que satisfaça todos os valores de pesquisa, BLANK ou alternateResult (se especificado) será retornado. Em outras palavras, a função não retorna um valor de pesquisa se apenas alguns dos critérios corresponderem.

Se várias linhas corresponderem aos valores de pesquisa e os valores no result_columnName para essas linhas forem idênticos, esse valor será retornado. No entanto, se result_columnName retornar valores diferentes, um erro ou alternateResult (se especificado) será retornado.

Observações

  • Se houver uma relação entre a tabela que contém a coluna de resultados e as tabelas que contêm as colunas de pesquisa, na maioria dos casos, usar a função RELATED em vez de LOOKUPVALUE é mais eficiente e fornece melhor desempenho.

  • Vários pares de search_columnName e search_value podem ser especificados.

  • Os parâmetros search_value e alternateResult são avaliados antes que a função itere pelas linhas da tabela de pesquisa.

  • Evite usar as funções ISERROR ou IFERROR para capturar um erro retornado por LOOKUPVALUE. Se algumas entradas para a função resultam em um erro quando um único valor de saída não pode ser determinado, fornecer um parâmetro alternateResult é a maneira mais confiável e de melhor desempenho para lidar com o erro.

  • O parâmetro alternateResult retorna um erro se especificado em uma coluna calculada do Power Pivot.

  • Esta função não é suportada para utilização no modo DirectQuery quando utilizada em colunas calculadas ou regras de segurança ao nível da linha (RLS).

Exemplo 1

Neste exemplo, LOOKUPVALUE é usado para pesquisar a Taxa Média para a moeda usada para pagar o pedido no dia em que o pedido foi feito:

Exchange Rate = 
LOOKUPVALUE (
    'Currency Rate'[Average Rate],
    'Currency Rate'[CurrencyKey], [CurrencyKey],
    'Currency Rate'[DateKey], [OrderDateKey]
)

Tanto a Data do Pedido quanto a Moeda são necessárias para encontrar a Taxa Média para a data e a moeda corretas. OrderDateKey e CurrencyKey são as chaves usadas para procurar a Taxa Média na tabela Taxa de Moeda.

Você pode usar a Taxa de Câmbio para calcular o Valor das Vendas em moeda local com:

Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]

Exemplo 2

Neste exemplo, a coluna calculada a seguir definida na tabela Sales usa a função LOOKUPVALUE para retornar valores de canal da tabela Ordem de venda.

CHANNEL = 
LOOKUPVALUE (
    'Sales Order'[Channel],
    'Sales Order'[SalesOrderLineKey],
    [SalesOrderLineKey]
)

No entanto, neste caso, como há uma relação entre as tabelas Ordem de Venda e Vendas , é mais eficiente usar a função RELACIONADO .

CHANNEL = RELATED('Sales Order'[Channel])

Função RELACIONADA (DAX)
Funções de informação