Ya hemos visto que la función CALCULATE sirve para, una vez identificado el contexto de filtro de un cálculo, modificarlo (bueno, modificar la copia…) para que el resultado devuelto sea el que deseemos. Y ya hemos visto un ejemplo en el que calculábamos la diferencia de ventas entre cada uno de los países y las de España.
Veamos otro ejemplo con detalle. Para ello vamos a crear en el lienzo de Power BI una matriz a la que vamos a llevar el campo Calendar[Date] (es decir, el campo Date de la tabla Calendar) a filas, y la medida [Sales] a valores:
El resultado es el que cabría esperar: las ventas por año. Pero, también aquí, desgranemos lo que está ocurriendo con un poco de detalle. Fijémonos, por ejemplo, en la tercera de las cifras, la correspondiente al año 2017:
Como ya sabemos, el primer objetivo de la máquina DAX es identificar el contexto de filtro. En este caso todas las tablas están sin filtrar salvo la tabla de calendario, en la que solo hay 365 filas (correspondientes a 365 días) visibles: las correspondientes al año 2017, lo que, a su vez, provoca un filtrado en la tabla Sales de forma que, en ésta, solo las filas correspondientes a las ventas realizadas en 2017 queden visibles:
Una vez identificado el contexto de filtro, la máquina DAX evalúa el cálculo a realizar. En este caso ve que no hay que hacer ningún cambio en el contexto de filtro (recordemos que la medida [Sales] suma la columna Sales[Amount]), de modo que simplemente ejecuta la medida. El resultado: las ventas realizadas en 2017, 168.460 €.