LOOKUPVALUE

aplica-se a:coluna calculadatabela calculadamedidacá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

Prazo 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. Você pode especificar vários pares de search_columnName e search_value.
search_value O valor a ser pesquisado em search_columnName. Você pode especificar vários pares de search_columnName e search_value.
alternateResult (Opcional) O valor retornado quando o contexto para result_columnName é filtrado para zero ou mais de um valor distinto. Se não for especificado, a função retornará BLANK quando result_columnName for filtrada para valores zero ou um erro quando o contexto para result_columnName tiver mais de um valor distinto.

Valor de retorno

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 nenhuma correspondência atender a todos os valores de pesquisa, a função retornará BLANK ou alternateResult (se especificado). Em outras palavras, a função não retornará um valor de pesquisa se apenas alguns dos critérios corresponderem.

Se várias linhas corresponderem aos valores de pesquisa e os valores nessas result_columnName linhas forem idênticos, esse valor será retornado. No entanto, se result_columnName retornar valores diferentes, a função retornará um erro ou alternateResult (se especificado).

Observações

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

  • Você pode especificar vários pares de search_columnName e search_value.

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

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

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

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

Exemplos neste artigo podem ser usados com o modelo adventure works dw 2020 power bi desktop de exemplo. Para obter o modelo, consulte DAX modelo de exemplo.

Exemplo 1

Neste exemplo, LOOKUPVALUE pesquisa 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]
)

Você precisa da Data do Pedido e da Moeda para localizar a Taxa Média para a data e a moeda corretas. OrderDateKey e CurrencyKey são as chaves usadas para pesquisar a Taxa Média na tabela Taxa de Moeda.

Você pode usar a Taxa de Câmbio para calcular o Valor de 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 para retornar valores de canal da tabela do Sales Order.

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

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

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