Transición de contexto

Sabemos que, cuando creamos medidas, estamos trabajando en presencia de contexto de filtro salvo que usemos un iterador -en cuyo caso la iteración de la tabla de que se trate se va a realizar en contexto de fila-. Y sabemos también que cuando creamos columnas calculadas lo hacemos en presencia de contexto de fila, contexto en el que no se está filtrando el modelo de datos. Lo que todavía no hemos visto es que, estando en contexto de fila, podemos pasar a contexto de filtro, en lo que se conoce como “transición de contexto”. Veamos un primer ejemplo:

Supongamos que estamos trabajando en la tabla de subcategorías:

Subcategory

Si creásemos una columna calculada lo haríamos en presencia de contexto de fila, lo que significa que tendríamos acceso, para cada fila iterada, a los valores de los tres campos de la tabla (Subcategory Id, Subcategory y Category Id) haciendo simplemente referencia a su nombre. Si utilizásemos las funciones RELATED o RELATEDTABLE tendríamos acceso a información contenida en tablas remotas con las que la tabla actual (Subcategories) está relacionada.

En cualquier caso, ya sabemos que, trabajando en contexto de fila, el modelo de datos no se está filtrando, lo que supone que, si creamos la columna calculada aplicando una función de agregación a una columna de nuestro modelo de datos, se estaría aplicando a todos los valores de esa columna. Por ejemplo, si creamos una columna calculada con el siguiente código:

Subcategory Sales = SUM(Sales[Amount])

el resultado para cada fila sería el mismo: la suma de todos los valores de la columna Sales[Amount] y no las ventas de cada subcategoría:

Subcategory Sales