En post anteriores empezamos explicando la evaluación del contexto en PowerPivot. Recuperemos los datos que teníamos anteriormente

Queremos ver el monto de ventas en la siguiente PivotTable

 

Para lo cual tendríamos dos opciones:

  • Crear una columna calculada en nuestra tabla de PowerPivot
  • Crear una nueva medida

Si creamos una nueva medida…

Esto es debido a que no puede identificar el valor de Precio en el contexto actual. Ahora mismo el contexto sería un contexto de filtro y nosotros queremos aplicar realmente un filtro de fila. Debemos de utilizar las funciones agregadas (SUM,MAX,MIN,AVG…)

Mmm… tampoco podemos hacerlo así, ya que esta esperando la referencia de una columna en concreto. ¿Como lo podemos hacer? Existen las funciones de agregación terminadas en X (SUMX, MAXX, MINX,AVGX …) que iteran sobre la tabla pasada por parámetro (en este caso la tabla se llama Compra) y que ejecutan la sentencia establecida en el segundo parámetro. Así tendríamos

Y el resultado en la PivotTable

Para entender mejor lo que ha sucedido:

  • El Filter Context es definido por las celdas Color <Negro,Rojo>
  • El valor que se necesita es la multiplicación de Cantidad * Precio, definido por SUMX(Compra, Compra[Precio]*Compra[Cantidad])
  • La función SUMX itera sobre todas las filas que estan activas sobre el Filter Context. Solo se iteran por las siguientes filas

  • Para cada una de esas filas se itera realizando el calculo
  • El resultado se suma por color y talla utilizan un sum (ya que es un valor agregado)

Además de SUMX tenemos AVERAGEX,COUNTAX,COUNTX,MAXX,MINX y SUMX

Fuente:

1. Funciones Estadisticas

2. Funcion SUMX (DAX)

Saludos
Indice de contenidos

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