La segunda parte de este escenario es la nueva: una vez obtenido el valor referencia, el objetivo ahora es identificar el día al que le corresponde la cifra de ventas obtenida.
Esto nos obliga a volver a iterar sobre la tabla inicial (el calendario en nuestro ejemplo) volviendo a calcular las ventas diarias y buscando aquel día en el que dichas ventas coincidan con el valor máximo que ya obtuvimos.
En este punto pueden ocurrir dos cosas: que la fecha sea única o que haya más de un día con el valor de ventas en cuestión. En este segundo caso tendríamos que decidir qué hacer (devolver un mensaje indicando el número de días encontrados, o quedarnos con el primer día, con el último…), así que tomemos una decisión que nos valdría para ambos escenarios: quedarnos con el día más reciente que encontremos. Esto supondría recorrer los días y, si sus ventas diarias coinciden con la cifra buscada, devolver el día. Y utilizar la función MAXX para identificar el valor más elevado de los posibles días encontrados, sea uno o sean varios (al menos habrá uno, teniendo en cuenta la forma en la que hemos obtenido el valor máximo de las ventas diarias).
De forma que nuestra medida podría ser la siguiente:
VAR __maxSales = [Max Daily Sales]
RETURN
MAXX(
'Calendar',
IF(
[Sales] = __maxSales,
'Calendar'[Date]
)
)
En ella comenzamos obteniendo el valor de las ventas diarias máximas (que almacenamos en la variable __maxSales) e iteramos el calendario (es decir, lo recorremos día por día). Calculamos las ventas de cada día haciendo referencia a la medida [Sales] (lo que ya sabemos que va a ejecutar la transición de contexto) y, si coindice con la cifra buscada, devolvemos el día. Si no coincide, la función IF por defecto devuelve un blank. La función MAXX devolverá el valor máximo de los valores devueltos por IF que serán, o bien blanks, o bien días en los que la cifra de ventas coincide con la buscada. Al usar la función MAXX y no MINX, nos quedaremos con el día más reciente.
Si llevamos la medida a una tarjeta vemos el resultado:
Si quisiéramos confirmar que el resultado es correcto, podríamos crear un objeto visual tipo tabla, llevar a ella el campo 'Calendar'[Date] y la medida [Sales], y ordenar la tabla de forma descendente según este último valor: