LOOKUPVALUE

Devuelve el valor para la fila que cumple todos los criterios que especifica al menos una de las 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 se quiere 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 relacionada. No puede ser una expresión. Se pueden especificar varios pares de search_columnName y search_value.
search_value Valor que se 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 a cero o a 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 para result_columnName.

Valor devuelto

El valor de result_columnName en la fila donde todos los pares de result_columnName y search_value tienen una coincidencia exacta.

Si no hay ninguna coincidencia que cumpla todos los valores de búsqueda, se devuelve BLANK o alternateResult, si se proporciona. En otras palabras, la función no devolverá 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 result_columnName para estas filas son idénticos, se devuelve ese valor. En cambio, si result_columnName devuelve valores distintos, se devuelve un error o alternateResult, si se proporciona.

Comentarios

  • Si existe una relación entre la tabla que contiene la columna de resultados y las tablas que contienen las columnas de búsqueda, el uso de la función RELATED en lugar de LOOKUPVALUE resulta más eficiente y proporciona un rendimiento mejor.

  • Se pueden especificar varios pares de search_columnName y search_value.

  • Los parámetros search_value y alternateResult se evalúan antes de que la función itere en las filas de la tabla de búsqueda.

  • Evite usar las 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 valor de salida único, proporcionar un parámetro alternateResult es la manera más confiable y que mejor funciona para administrar el error.

  • El parámetro alternateResult devolverá 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 utiliza en columnas calculadas o en reglas de seguridad de nivel de fila (RLS).

Ejemplo 1

En este ejemplo, LOOKUPVALUE se emplea 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 de la fecha y la 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 Sales ("ventas") en moneda local con:

Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]

Ejemplo 2

En este ejemplo, la siguiente columna calculada que se define en la tabla Sales utiliza la función LOOKUPVALUE para devolver los valores de canal de la tabla Sales Order.

CHANNEL = 
LOOKUPVALUE (
    'Sales Order'[Channel],
    'Sales Order'[SalesOrderLineKey],
    [SalesOrderLineKey]
)

Sin embargo, en este caso, dado que hay una relación entre las tablas Sales Order y Sales, resulta más eficaz usar la función RELATED.

CHANNEL = RELATED('Sales Order'[Channel])

Función RELATED (DAX)
Funciones de información