Partilhar via


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_columnNameandsearch_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_columnNameandsearch_value podem ser especificados.

  • Os parâmetros search_valueandalternateResult 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])

RELATED função (DAX)Funções de informação