Seguimos con nuestra serie de evaluación del contexto. Hoy vamos a explicar las funciones ALL, FILTER y CALCULATE. Seguimos con nuestro ejemplo:
La función FILTER nos permite realizar un filtro dada una tabla. Como vimos en el anterior post, las funciones de agregación terminadas en X (SUMX,AVGX,MINX,MAXX…) toman dos parametros: la tabla y la operación a realizar. La función FILTER tiene la siguiente sintaxis
FILTER(<tabla a filtrar>, <filtro a aplicar>)
Y devuelve una tabla filtrada
Si tenemos la siguiente PivotTable
Y queremos comparar la cantidad vendida filtrando solo por la talla L, creariamos una medida de la siguiente forma:
SUMX(FILTER(Compra,Compra[Talla]=”XL”),Compra[Precio]*Compra[Cantidad]). De forma que tendríamos
Vemos los huecos que se generan en la talla L ya que no cumple el filtro para dicha talla.
Ahora imaginemos que no queremos tener el contexto filtrado, de manera que queremos comparar la venta total sin tener en cuenta ni talla ni color, a modo de comparación en la pivot table. Nuestra expresión sería
SUMX(ALL(Compra), Compra[Precio]*Compra[Cantidad])
Con ALL le estamos especificando que el contexto es toda la tabla, da igual la situación en la que nos encontremos en la PivotTable. Podemos combinar ALL y FILTER para eralizar calculos más complejos, por ejemplo las compras totales de la talla L
SUMX(FILTER(ALL(Compra),Compra[Talla]=”XL”),Compra[Cantidad]*Compra[Precio])
Por último, la función CALCULATE nos permite cambiar el contexto dado sin tener que cambiar todos los filtros. Cuando aplicamos ALL y filter combinados estamos escribiendo un nuevo filtro de contexto que no respeta los que ya tenemos. Si por ejemplo queremos tener el calculo de toda la compra de la talla XL como teniamos en el primer ejemplo, pero queremos que no queden esos huecos tenemos que:
=CALCULATE(SUMX(Compra,Compra[Precio]*Compra[Cantidad]),Compra[Talla] = “XL”)
Démosle un poco de sentido, dejando de filtrar el color blanco
Cantidad Vendida: SUM(Compras[Cantidad]). Se suman las cantidades por color y talla
Compras Talla XL: Dado el agrupamiento de la PivotTable, se suman las líneas que son de la Talla XL. Por eso en la talla L tenemos huecos
Compras Totales: Con ALL saltamos la restricción de las agrupamiento de la PivotTable, de manera que nos muestre las compras totales.
Compras Talla XL para todos: Tenemos el total de compras de toda la tabla para la talla XL, sin tener en cuenta el agrupamiento de la PivotTable. Utilizamos ALL unido a FILTER
Compras Talla XL para todos los Colores: Tenemos el total de compra para la talla XL independientemente de la talla en la PivotTable. Utilizamos CALCULATE para cambiar el contexto
Compra Realizada: SUMX(Compra,Compra[Cantidad]*Compra[Precio]). La compra realizada por color y talla.
Espero que la evaluación del contexto sea cada vez más fácil.
Nos vemos en próximos posts
Fuentes
1. PowerPivot Filter Functions
Indice de contenido
I. Evaluando
el contexto en PowerPivot
II. SUMX.
Operaciones de Agregacion dependientes del contexto
III. Funcion
ALL, FILTER, CALCULATE
IV. Calculate a fondo
V. EARLIER