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
Vigência | 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 de retorno
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.
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, usar a função RELATED em vez de LOOKUPVALUE é mais eficiente e fornece melhor desempenho.
Vários pares de
search_columnName
esearch_value
podem ser especificados.Os parâmetros
search_value
ealternateResult
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 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 de vendas
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
No entanto, nesse caso, como há uma relação entre o de Ordem de Venda
CHANNEL = RELATED('Sales Order'[Channel])