share
([group]/[group,root])*100
partial share (según la anidación en filas)
([group]/[group, group.parent])*100
share de la primera columna
(Valor(0)/[group.leaf(0),root])*100
Suma de las apariciones de un elemento dado de dimensión "DIMENSION"
@Sum_i(Etiqueta([this.leaf(i)],"DIMENSION")=="PP"? [this.leaf(i) ]: 0)
Si deseamos totalizar los valores de la medida "Units Sold", cuando la vista presenta esta y otras medidas anidadas podemos utilizar la siguiente expresión.
Notar que en este caso el nombre de la dimensión correspondiente a las medidas se debe referenciar como "<measures>":
@Sum_i(Label([this.Etiqueta(i)],"<measures>")=="Units Sold" ? [this.leaf(i)]: 0)
Ejemplo:
En esta vista se tienen dos columnas calculadas: Unidades y Costo.
Donde Unidades se calcula como:
@Sum_i(Etiqueta([this.leaf(i)],"<measures>")=="Unidades" ? [this.leaf(i)]: 0)
Costo se calcula como:
@Sum_i(Etiqueta([this.leaf(i)],"<measures>")=="Costo" ? [this.leaf(i)]: 0)
En algunos casos no se requiere sumar las ocurrencias de un elemento, sino comprobar que se encuentre en la vista y en función de ello efectuar cierto cálculo:
Etiqueta([this.leaf(0)], "En plazo")=="SI" ? (["SI"]/[this])*100 : 0
En este ejemplo se controla la existencia del elemento "SI" en una dimensión de nombre "En plazo", calculando el % de este elemento con respecto al total.
Contar elementos cuando su valor es distinto a cero
Supongamos que tenemos una vista donde vemos los productos vendidos en los últimos 3 años. Los productos estan en las filas y años como columnas. Queremos saber, cuántos productos se vendieron en cada año. La expresión predefinida "Cantidad" no sirve puesto que cuenta también aquellas productos que tuvieron 0 ventas en un año determinado. La siguiente fórmula resuelve el cálculo (como fila calculada):
@Sum_i([this.leaf(i)]==0?0:1)
Cálculos con elementos no visibles
La opción excluir vista o exclude form view sobre un elemento de la grilla, permite quitarlo de la vista, pero que siga participando en las expresiones calculadas que se agreguen en forma de fila o columna.
En el caso de expresiones definidas por el usuario, consideremos el siguiente ejemplo:
La expresión Expr es una suma del elemento Mountain Bikes + Route Bikes. Al excluir el cualquiera de los dos elementos (columnas) el valor de la expresión Expr no se ve afectado.
La sintaxis requerida para expresiones donde eventualmente se pueden llegar a excluir elementos es:
[root."Mountain Bikes"]+[root."Route Bikes"]
En caso de tener una tabla o grilla con dimensiones anidadas se deberá especificar el camino absoluto a los elementos, al momento de definir la expresión.
Si se requiere mostrar alguno de los elementos excluidos, se tiene la opción mostrar o unhide, con click botón derecho sobre la etiqueta de la dimensión (nombre de la columna o fila).
Las expresiones predefinidas disponibles en O3 (suma, promedio, máximo, mínimo, cantidad, etc.) actúan sobre los elementos visibles en la grilla, por lo que su resultado se ve afectado al excluir alguno de los elementos que participan en el cálculo.
Cálculos de Promedio excluyendo valores cero
count=@Sum_i(Valor(i)!=0?1:0); count==0?0:([this]/count)