Ventas en España

Por ejemplo, supongamos que la expresión a calcular es la suma de la columna Amount de la tabla Sales, y que queremos forzar que, en la tabla Geography, estén visibles las filas correspondientes a ciudades españolas. La medida a crear (que podemos llamar “Sales Spain” y podemos crear también en la tabla Calendar) sería la siguiente:

Sales Spain = CALCULATE(SUM(Sales[Amount]), Geography[Country] = "Spain")

Ahora arrastremos dicha medida al objeto visual “tabla” que habíamos creado:

Ventas en España

Y fijémonos ahora en el primer valor de la columna “Sales Spain” de la tabla (el correspondiente a Francia, resaltado en rojo en la imagen anterior): La máquina DAX ha determinado el contexto de filtro inicial (en el que la tabla Geography se filtra de modo que solo las filas en las que el campo Country tome el valor “France” quedan visibles, filtro que se propaga a la tabla Sales de forma que , a su vez, solo las ventas correspondientes a ciudades francesas quedan visibles), pero, al llegar a nuestra expresión DAX, comprueba que se trata de un CALCULATE, de forma que hace una copia del contexto de filtro, y aplica a la copia los cambios que le indicamos: Geography[Country] = "Spain". En el contexto de filtro inicial, el país seleccionado era “France”, pero le estamos obligando a ignorar lo que dijese dicho contexto de filtro inicial y le estamos imponiendo un nuevo filtro.

En este contexto de filtro modificado (el contexto de filtro final) las filas de la tabla Geography seleccionadas son las correspondientes a ciudades españolas. Y este nuevo filtro se propaga a la tabla Sales, dejando visibles solo las ventas de España. Y en este momento es cuando se aplica nuestra medida: SUM(Sales[Amount]), devolviéndose las ventas de España.