Rangos en expresiones

Esta funcionalidad introducida en la versión 5.4 permite referenciar, en las expresiones de la grilla de O3 Performance Suite, subrangos de los datos recorridos por las direcciones.

Ejemplo 1

Se presenta la necesidad de conocer el promedio transcurrido de ventas de los últimos 12 meses, se aplica para ello el agregar una columna calculada Promedio Ventas.

Prom(["Litros Vendidos",root.range(0,currentLeaf())])

Ejemplo 2

Se requiere hacer el siguiente cálculo C:

Products

Units Sold

Discount

C

Prod1

A1

B1

C1=AVG(A1)

Prod2

A2

B2

C2=AVG(A1:A2)

Prod3

A3

B3

C3=AVG(A1:A3)

Es decir que en cada celda C se promedia los valores de la columna "Units Sold" hasta la fila actual inclusive.

Solución

Con el nuevo soporte de rangos la expresión C puede definirse como:

Avg(["Units Sold", root.range(0, currentLeaf())])

Notar que para el cálculo de C se están recorriendo los valores del otro eje (las columnas en este caso), los cálculos normalmente recorrerían en este caso la misma fila, es por eso que el operador range se utiliza en la segunda especificación de la dirección, también por eso se utiliza el término root para referirse a la columna completa (sino se referiría solamente a la fila actual).

Otros ejemplos

Pueden especificarse otros valores para los límites del rango:

Ejemplo

Descripción

["Litros Vendidos", root.range(1, currentLeaf())]

Evita la primer fila

["Litros Vendidos", root.range(0, currentLeaf() - 1)]

Incluye desde la primer fila hasta la fila anterior a la actual

["Litros Vendidos", root.range(1)]

El segundo argumento del operador range es opcional, en este caso se especifica el rango desde la segunda fila inclusive hasta el final

["Litros Vendidos", root.range(currentLeaf())]

Especifica el rango desde la fila actual (inclusive) hasta el final

size=@Cant_i(1); Valor(size - 1)

Especifica la última fila