LOOKUPVALUE
Se aplica a:columna Calculada
tabla calculada
Medida
cálculo visual
Devuelve el valor de la fila que cumple todos los criterios especificados por una o varias condiciones de búsqueda.
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 contiene el valor 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 o en una tabla relacionada. No puede ser una expresión. Se pueden especificar varios pares de search_columnName y search_value. |
search_value |
Valor que se va a buscar en search_columnName. Se pueden especificar varios pares de search_columnName y search_value. |
alternateResult |
(Opcional) Valor devuelto cuando el contexto de result_columnName se ha filtrado hasta cero o más de un valor distinto. Si no se especifica, la función devuelve BLANK cuando result_columnName se filtra a cero valores o un error cuando hay más de un valor distinto en el contexto de result_columnName. |
Valor devuelto
Valor de result_columnName
en la fila donde todos los pares de search_columnName
y search_value
tienen una coincidencia exacta.
Si no hay ninguna coincidencia que satisfaga todos los valores de búsqueda, se devuelve BLANK o alternateResult
(si se especifica). En otras palabras, la función no devuelve un valor de búsqueda si solo coinciden algunos de los criterios.
Si varias filas coinciden con los valores de búsqueda y los valores de la result_columnName
para estas filas son idénticos, se devuelve ese valor. Sin embargo, si result_columnName
devuelve valores diferentes, se devuelve un error o alternateResult
(si se especifica).
Observaciones
Si hay una relación entre la tabla que contiene la columna de resultados y las tablas que contienen las columnas de búsqueda, en la mayoría de los casos, el uso de la función RELATED en lugar de LOOKUPVALUE es más eficaz y proporciona un mejor rendimiento.
Se pueden especificar varios pares de
search_columnName
ysearch_value
.Los parámetros
search_value
yalternateResult
se evalúan antes de que la función recorra en iteración las filas de la tabla de búsqueda.Evite usar funciones ISERROR o IFERROR para capturar un error devuelto por LOOKUPVALUE. Si algunas entradas de la función producen un error cuando no se puede determinar un único valor de salida, proporcionar un parámetro
alternateResult
es la manera más confiable y de mayor rendimiento para controlar el error.El parámetro
alternateResult
devuelve un error si se especifica en una columna calculada de Power Pivot.Esta función no se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas o reglas de seguridad de nivel de fila (RLS).
Ejemplo 1
En este ejemplo, se usa LOOKUPVALUE para buscar la tasa media de la moneda utilizada para pagar el pedido el día en que se realizó el pedido:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Tanto la fecha de pedido como la moneda son necesarias para encontrar la tasa media para la fecha y moneda correctas. OrderDateKey y CurrencyKey son las claves que se usan para buscar la tasa media en la tabla Tipo de moneda.
Puede usar el tipo de cambio para calcular el importe de ventas en moneda local con:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
Ejemplo 2
En este ejemplo, la siguiente columna calculada definida en la tabla Sales de
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Sin embargo, en este caso, dado que hay una relación entre el
CHANNEL = RELATED('Sales Order'[Channel])