LOOKUPVALUE
Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual
Devuelve el value de la fila que cumple all criterios especificados por una or condiciones de search más.
Sintaxis
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Parámetros
Término | Definición |
---|---|
result_columnName |
Nombre de una columna existente que contains el value que desea devolver. No puede ser una expresión. |
search_columnName |
Nombre de una columna existente. Puede estar en la misma tabla que result_columnName or en una tabla de related. No puede ser una expresión. Se pueden especificar varios pares de search_columnName and search_value. |
search_value |
value search para en search_columnName. Se pueden especificar varios pares de search_columnName and search_value. |
alternateResult |
(Opcional) El value devuelto cuando el contexto de result_columnName se ha filtrado hasta cero or más de un valuedistinto . If not especificado, la función devuelve BLANK cuando result_columnName se filtra a cero valuesor un error cuando hay más de un value distinto en el contexto de result_columnName. |
Devolver value
El value de result_columnName
en la fila donde all pares de search_columnName
andsearch_value
tienen una coincidencia de exact.
If no hay ninguna coincidencia que satisfaga all se devuelve el searchvalues, BLANKoralternateResult
(if especificado). En otras palabras, la función no devuelve una búsqueda valueif solo algunas de las coincidencias de criterios.
If varias filas coinciden con el searchvaluesand el values del result_columnName
para estas filas son idénticos y, a continuación, se devuelve value. Sin embargo, ifresult_columnName
devuelve diferentes values, se devuelve un errororalternateResult
(if especificado).
Observaciones
If hay una relación entre la tabla que contains la columna de resultados and tablas que contienen las columnas de search, en la mayoría de los casos, el uso de la función RELATED en lugar de LOOKUPVALUE es más eficaz and proporciona un mejor rendimiento.
Se pueden especificar varios pares de
search_columnName
andsearch_value
.Los parámetros
search_value
andalternateResult
se evalúan antes de que la función recorra en iteración las filas de la tabla search.Evite usar funciones de ISERRORorIFERROR para capturar un error devuelto por LOOKUPVALUE. If algunas entradas de la función dan como resultado un error cuando no se puede determinar un único value de salida, lo que proporciona un parámetro
alternateResult
es la manera más confiable and de mayor rendimiento para controlar el error.El parámetro
alternateResult
devuelve un errorif especificado en una columna calculada Power dinámica.Esta función se not se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas or reglas de seguridad de nivel de fila (RLS).
Ejemplo 1
En este ejemplo, se usa LOOKUPVALUE para searchAverageRate para el currency usado para pagar el pedido en el day se realizó el pedido:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Ambos DateandCurrency order son necesarios para find el AverageRate para el dateandcurrencycorrecto. OrderDateKey and CurrencyKey son las claves que se usan para buscar el AverageRate en la tabla CurrencyRate.
Puede usar exchange Rate para calculate el importe de ventas en currency local con:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
Ejemplo 2
En este ejemplo, la siguiente columna calculada definida en la tabla
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Sin embargo, en este caso, dado que hay una relación entre las tablas Sales OrderandSales, es más eficaz usar la función RELATED.
CHANNEL = RELATED('Sales Order'[Channel])