Cálculo del día con mayores ventas

Hagamos un ejemplo de transición de contexto durante la creación de una medida. En este escenario queremos calcular el día en el que la cifra de ventas (la suma de la columna Sales[Amount] fue más elevada.

El proceso a seguir sería el siguiente: queremos iterar la tabla Calendar obteniendo las ventas de cada uno de los días. Y, al final, queremos quedarnos con el mayor resultado obtenido.

Este planteamiento nos invita a usar la función MAXX para iterar la tabla calendario (es decir, en contexto de fila). Nuestra medida -escrita parcialmente en “pseudocódigo”- tendría el siguiente aspecto:

Max Daily Sales = 
MAXX(
    'Calendar',
     Ventas del día que estemos recorriendo
)

La pregunta es ¿cómo podemos obtener las ventas del día que estemos iterando? Si nos fijamos, la tabla calendario tiene un campo clave (el campo Date):

Tabla Calendar

Es decir, si estamos recorriendo la tabla Calendar fila por fila y forzamos la transición de contexto, sabemos que el modelo de datos se va a filtrar -para cada fila- según el día que estemos recorriendo (pues se trata de un campo clave). Y una vez filtrado el modelo de datos para, por ejemplo, el día 1 de enero de 2015, solo nos resta sumar las filas que hayan quedado visibles en la columna Sales[Amount] para obtener las ventas asociadas a ese día.

Nuestra medida tendría que ser la siguiente:

Max Daily Sales = 
MAXX(
    'Calendar',
     CALCULATE(
         SUM(Sales[Amount])
     )
)

O, sabiendo que la máquina DAX rodea cualquier medida con un CALCULATE cuando estamos en presencia de contexto de fila, podríamos rescribir nuestra medida para dejarla de la siguiente forma:

Max Daily Sales = 
MAXX(
    'Calendar',
     [Sales]
)