Imaginemos las siguientes dos frases:Café con leche

Leche con café

Ambas tienen las mismas palabras, aunque cambiadas de lugar. Ambas frases podrían significar lo mismo, pero la realidad no es igual. En la primera queremos un café con leche (más café y menos leche). En el segundo, nosotros estamos pidiendo una taza de leche con algo de café (lo que es una leche manchada). Cuando nosotros vamos a una cafetería y pedimos esta comanda a un camarero, perfectamente sabe que debe de servirnos. Evalúa cual es el contexto de cada uno de los ingredientes y efectúa la comanda adecuada.

En PowerPivot también tenemos un caso similar. Extrapolemos al caso de los datos.

¿Es lo mismo evaluar una tabla que una fila? Evidentemente no.

En PowerPivot encontramos tres contextos:

– Filter Context (Contexto de filtro): Evaluación del conjunto de filas activas en un cálculo.

– Row Context (Contexto de fila): Evaluación de la fila en la iteración actual.

– Query Context (Contexto de consulta): Evaluación del conjunto de datos para una celda concreta.

Expliquémoslo con un ejemplo:

Filter Context

Tenemos la siguiente tabla en PowerPivot

 

Y ahora la siguiente PivotTable

El conjunto de filas activas es el mostrado a través de los filtros (filtramos por la talla). Cuando nosotros queremos evaluar una expresión DAX (en este caso, un SUM de la cantidad , esta expresión será evaluada solamente en este conjunto de filas activas. Cuando utilizamos estos datos en una PivotTable, cada celda define un contexto de filtro diferente que es utilizado para calcular la medida en esa celda. Si vemos la correspondencia que tienen con nuestra tabla de PowerPivot

 

Podemos ver que cada selección que hacemos en nuestra PivotTable realiza un filtro de contexto en la tabla de PowerPivot. Las conclusiones sobre este filtro son:

– Cada celda que nuestra PivotTable es un filtro por contexto.

– El conjunto de filas activas por la PivotTable es por la cual se hace el calculo DAX

Row Context

El concepto de Row Context es el de la propia fila. Es cuando nosotros hacemos cálculos sobre la propia fila en nuestra tabla de PowerPivot o cuando hacemos una iteración sobre una tabla .

Por ejemplo, si queremos calcular la cantidad de ventas de un determinado Modelo-Color-Talla, calcularíamos una nueva columna de forma que sería:

[Precio]*[Cantidad]

Cuando ejecutamos esta formula, se evaluaría por cada fila, el valor de la columna Precio y la columna Cantidad y se operará

 

Query Context

El query context ser refiere al subconjunto de datos que se devuelve implícitamente para una formula. Cuando dejamos caer una medida u otro campo de datos en una celda de la pivottable, el motor de PowerPivot examina la cabecera de fila y columna, slicers y filtros del reporte para determinar el contexto. Despues, PowerPivot hace los cálculos necesarios para rellenar esta celda en la PivotTable. El conjunto de datos que es obtenido es el contexto de query para cada celda

En próximos Post veremos como la evaluación del contexto es fundamental a la hora de realizar cálculos, veremos como filtrar el contexto y determinadas operaciones para evaluar de forma correcta estas diferentes contextos

Fuentes:

Context in DAX Formulas
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