Seguimos con nuestra serie de evaluación del contexto. Hoy vamos a explicar las funciones ALL, FILTER y CALCULATE. Seguimos con nuestro ejemplo:

image_thumb_6DF50B3B

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

image_thumb_7_7D9C85CA

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

image_thumb_6_7D9C85CA

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])

image_thumb_6_32E0D2DF

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])

image_thumb_7_32E0D2DF

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»)

image_thumb_9_32E0D2DF

Démosle un poco de sentido, dejando de filtrar el color blanco

image_thumb_11_32E0D2DF

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

 

 

 

Sergio Carrillo

Sergio is a former SolidQ team member.