La función LOOKUPVALUE devuelve el valor contenido en la columna result_columnName que cumpla todos os criterios especificados por las parejas de argumentos search_columnName y search_value.
LOOKUPVALUE(
result_columnName,
search_columnName,
search_value
[, search_columnName, search_value]...
[, alternateResult]
)
- result_columnName: Columna existente que contiene el valor que se desea devolver. No puede ser una expresión.
- search_columnName: Columna existente en la misma tabla que contiene el campo result_columnName o en una tabla relacionada, sobre la que se va a realizar la búsqueda. No puede ser una expresión.
- search_value: Expresión escalar a buscar en search_columnName.
- alternateResult: Argumento opcional. Valor devuelto cuando el contexto ha reducido el número de valores distintos en result_columnName a cero o a más de uno.
La función LOOKUPVALUE devuelve un escalar.
Si se incluye más de una pareja de condiciones de búsqueda (search_columnName, search_value) deberán cumplirse todas ellas para que la función devuelva el valor contenido en result_columnName (no basta con que se cumpla alguna de dichas condiciones).
Si no existe ningún valor que cumpla las condiciones o si existe más de un valor distinto, se devuelve el valor alternativo si se ha especificado, o Blank en caso contrario.
Partimos de una tabla de productos "DimProduct" que incluye una clave de producto, "ProductKey" y un nombre de producto, "ProductName", y de una tabla de ventas, "FactResellerSales", conteniendo una clave de producto, "ProductKey".
Si quisiéramos crear una nueva tabla que incluyese la clave de los productos vendidos junto al nombre del producto, podríamos hacerlo mediante la función LOOKUPVALUE de la siguiente forma:
Sold items =
SELECTCOLUMNS(
FactResellerSales,
"Id", FactResellerSales[ProductKey],
"Product name", LOOKUPVALUE(
DimProduct[ProductName],
DimProduct[ProductKey],
FactResellerSales[ProductKey]
)
)
Con la función SELECTCOLUMNS creamos una nueva tabla a partir de la tabla de ventas, inicialmente vacía, a la que añadimos una primera columna conteniendo el identificador de los productos vendidos y, como segunda columna, el valor resultante de buscar en el campo DimProduct[ProductKey] (identificador de producto en la tabla de productos) el valor FactResellerSales[ProductKey] (identificador de producto en la tabla de ventas), devolviéndose el valor contenido en el campo DimProduct[ProductName] (nombre del producto en la tabla de productos).
Este ejemplo concreto también podría haberse resuelto usando la función RELATED.