La función LOOKUP devuelve el valor de una expresión que se calcula para una fila de la tabla referenciada mediante su distancia a la fila actualmente siendo considerada.
LOOKUP(
<expresión>
[, <distancia]
)
- expresión: expresión a calcular para la fila objetivo
- distancia: (opcional) distancia de la fila objetivo a la fila actual
La función LOOKUP devuelve un escalar.
La fila anterior a una dada está a una distancia de -1, y la siguiente a una distancia de +1. Podemos recurrir a la expresión FIRST() + n si queremos acceder a la fila n-ésima a contar desde el principio de la tabla, o a LAST() - n si queremos acceder a la fila n-ésima a contar desde el final de la tabla.
Esta función devuelve un valor nulo si no es posible determinar la fila objetivo.
Dada una tabla mostrando, por ejemplo, un listado de países y las ventas asociadas:
...podemos acceder a las ventas de la fila anterior con el siguiente campo calculado:
Previous sales =
LOOKUP(SUM([Amount]), -1)
Si añadimos este campo calculado al estante de filas, obtenemos el siguiente resultado:
Observamos que el resultado devuelto para la primera fila es un valor nulo, pues no es posible determinar cuál es la fila anterior.
Siguiendo con el mismo ejemplo, podemos mostrar no las ventas de la fila anterior, sino la diferencia de las ventas de la fila actual con una fila dada, por ejemplo la correspondiente a Francia (que ocupa la primera fila). Para ello podemos crear el siguiente campo calculado:
Sales vs. Sales France =
SUM([Amount]) - LOOKUP(SUM([Amount]), FIRST())
El resultado es, efectivamente, la diferencia entre cada cifra de ventas y la de Francia: