LOOKUPVALUE

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Retorna o valor da linha que atende a todos os critérios especificados por um ou mais critérios 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. Ele pode estar na mesma tabela que result_columnName ou em uma tabela relacionada. Não pode ser uma expressão. É possível especificar vários pares de search_columnName e search_value.
search_value O valor a ser pesquisado em search_columnName. É possível especificar vários pares de search_columnName e search_value.
alternateResult (Opcional) O valor retornado quando o contexto de result_columnName foi filtrado para zero ou mais de um valor distinto. Se não for especificada, a função retornará EM BRANCO quando result_columnName for filtrado para valores zero ou um erro quando houver mais de um valor distinto no contexto para result_columnName.

Retornar valor

O valor de result_columnName na linha em que 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 da pesquisa, será retornado EM BRANCO ou alternateResult (se especificado). 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 da pesquisa e os valores em result_columnName para essas linhas forem idênticos, esse valor será retornado. Entretanto, se result_columnName retornar valores diferentes, será retornado um erro ou alternateResult (se especificado).

Comentários

  • 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, o uso da 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 da função iterar nas linhas da tabela de pesquisa.

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

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

  • 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 1

Neste exemplo, LOOKUPVALUE é usado para pesquisar a taxa média da 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 Moeda quanto a Data do Pedido 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 da Moeda.

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

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

Exemplo 2

Neste exemplo, a coluna calculada a seguir, definida na tabela Vendas, usa a função LOOKUPVALUE para retornar os valores de canal da tabela Pedido de Venda.

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

No entanto, nesse caso, como há uma relação entre as tabelas Sales Order e Sales, será mais eficiente usar a função RELATED.

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

Função RELATED (DAX)
Funções informativas