Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

share

Code Block

([group]/[group,root])*100

partial share (

...

según la

...

anidación en filas)

Code Block

([group]/[group, group.parent])*100

Image Added

share de la

...

primera columna

Code Block

(Valor(0)/[group.leaf(0),root])*100

Si se desea mantener los valores del share cuando ocultamos elementos, se debe seleccionar como único elemento la raíz de la dimensión Tipo de Vinos y luego expandir sus hijos.

Luego, se ocultan los elementos que no queremos de la dimensión, a través del botón ocultar.

share de todas las columnas

Code Block
@Sum_i(Etiqueta([this.leaf(i)],"<measures>")=="Litros Vendidos"?[this.leaf(i)]/[group.parent]:0)*100

Se desea conocer la participación de los diferentes elementos de una dimensión sobre la suma del total para un período.

Image Added

Suma de las apariciones de un elemento dado de

...

dimensión "DIMENSION"

Code Block

@Sum_i(Etiqueta([this.leaf(i)],"DIMENSION")=="PP"? [this.leaf(i) ]: 0)

...

Notar que en este caso el nombre de la dimensión correspondiente a las medidas se debe referenciar como "<measures>":

Code Block

@Sum_i(LabelEtiqueta([this.Etiquetaleaf(i)],"<measures>")=="Units Sold" ? [this.leaf(i)]: 0)

Ejemplo:
En esta vista se tienen dos columnas calculadas: Unidades y Costo.
Image Modified
Donde Unidades se calcula como:

Code Block

@Sum_i(Etiqueta([this.leaf(i)],"<measures>")=="Unidades" ? [this.leaf(i)]: 0)

Costo se calcula como:

Code Block

@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:

Code Block
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):

Code Block
@Sum_i([this.leaf(i)]==0?0:1)

Cálculos con elementos no visibles

La opción excluir vista o exclude from 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:
Image Added
La expresión Expr es una suma del elemento Mountain Bikes + Route Bikes. Al excluir 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:

Code Block
[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).

(info) 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

Supongamos que tenemos una vista en la cual se calcula el promedio de unidades vendidas, pero algunos de los valores de la medida son ceros, por ejemplo:

Image Added

La suma de las unidades es 5+6+51=62 por lo que su promedio sin considerar los valores cero sería 62/3=21. Como se está tomando en cuenta una fila más con valor cero el promedio difiere 62/4=16:

Image Added

Para evitar esto y que nuestro cálculo excluya los ceros, más allá que se muestren o no los valores en la vista, definimos una expresión "PromSinValorCero" con la siguiente sintaxis:

Code Block
count=@Sum_i(Valor(i)!=0?1:0); count==0?0:([this]/count)

Luego de aplicar la fórmula antes definida obtenemos como resultado el promedio correcto:

Image Added

Referenciar subrangos en una expresión

Rangos en expresiones

Referenciar a elemento anterior y/o siguiente en grilla

Ver Tutorial de uso de expresiones First y Previous