LOOKUPVALUE
Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual
Retorna o value da linha que atende all critérios especificados por uma or mais condições search.
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 contains o value 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 or em uma tabela related. Não pode ser uma expressão. Vários pares de search_columnName and search_value podem ser especificados. |
search_value |
O value para search em search_columnName. Vários pares de search_columnName and search_value podem ser especificados. |
alternateResult |
(Opcional) O value retornado quando o contexto para result_columnName foi filtrado para zero or mais de um valuedistinto. If not especificado, a função retorna BLANK quando result_columnName é filtrada para zero valuesor um error quando há mais de um value distinto no contexto para result_columnName. |
Regresso value
O value de result_columnName
na fila onde all pares de search_columnName
andsearch_value
têm um exact match.
If não houver uma correspondência que satisfaça all o searchvalues, BLANKoralternateResult
(if especificado) será retornado. Em outras palavras, a função não retorna uma pesquisa valueif apenas alguns dos critérios correspondem.
If várias linhas corresponderem ao searchvaluesand os values no result_columnName
para essas linhas forem idênticos, essa value será retornada. No entanto, ifresult_columnName
retorna valuesdiferentes, um errororalternateResult
(if especificado) é retornado.
Comentários
If houver uma relação entre a tabela que contains a coluna de resultados and tabelas que contêm as colunas search, na maioria dos casos, usar a função RELATED em vez de LOOKUPVALUE é mais eficiente and proporciona melhor desempenho.
Vários pares de
search_columnName
andsearch_value
podem ser especificados.Os parâmetros
search_value
andalternateResult
são avaliados antes que a função itere através das linhas da tabela search.Evite usar ISERRORorIFERROR funções para capturar um error retornado por LOOKUPVALUE. If algumas entradas para a função resultam em um error quando uma única saída value não pode ser determinada, fornecer um parâmetro
alternateResult
é a maneira mais confiável and de melhor desempenho para lidar com o error.O parâmetro
alternateResult
retorna um errorif especificado em uma coluna calculada Power Pivot.Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).
Exemplo 1
Neste exemplo, LOOKUPVALUE é usado para searchAverageRate para o currency usado para pagar o pedido no day em que o pedido foi feito:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Tanto a Ordem DateandCurrency são obrigados a find o AverageRate para a dateandcurrencycorreta. OrderDateKey and CurrencyKey são as chaves usadas para procurar o AverageRate na tabela CurrencyRate.
Você pode usar o Rate do Exchange para calculate o Valor de Vendas em currency locais 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 values do 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 Vendaand de Vendas, é mais eficiente usar a função RELATED.
CHANNEL = RELATED('Sales Order'[Channel])