Cálculo de las ventas previas a una fecha dada

En este escenario deseamos evaluar una métrica (por ejemplo, la suma de ventas) para el total de fechas previas a una dada. Partimos de una tabla de ventas ("Ventas") en la que se incluye una fecha ("Fecha") y un precio de venta ("Precio final"):

Tabla de ventas

Adicionalmente tenemos una tabla conteniendo un calendario que, en este escenario, no está enlazado con la tabla de ventas para evitar un filtrado automático, y una visualización tipo "segmentación" en la que seleccionamos un período de interés a partir de las fechas del calendario:

Segmentación

Tenemos ya creada una medida que totaliza las ventas:

Ventas = SUM(Ventas[Precio final])

Como se ha comentado, el objetivo es sumar las ventas previas al período que seleccionemos en la segmentación (es decir, solo nos interesa la fecha más antigua del período seleccionado en la segmentación). En pseudo-código sería:

Recalcula la medida "Ventas"
Para las fechas anteriores a la fecha mínima de la segmentación

Como la segmentación está filtrando el calendario (pues esta visualización se ha generado a partir de él), lo anterior sería equivalente a:

Recalcula la medida "Ventas"
Para las fechas anteriores a la fecha mínima del calendario

Este esquema encaja con la estructura de la función CALCULATE, añadiendo como filtro el contexto dado por la segunda condición:

CALCULATE(
    Medida de Ventas;
    Tabla de ventas tal que Ventas[Fecha] < Fecha mínima del calendario
)

Para concretar el filtrado vamos a recurrir a la función FILTER, que acepta como primer argumento una tabla y como segundo argumento un criterio de filtrado. En este caso la tabla a filtrar es la tabla de ventas y el criterio, que la fecha de venta sea menor que la menor fecha del calendario. El código quedaría de la siguiente forma:

Ventas previas = CALCULATE(
    [Ventas];
    FILTER(
        Ventas;
        Ventas[Fecha] < MIN(Calendario[Date])
    )
)

Probemos el código seleccionando una fecha en el segmentador que incluya solo un par de ventas:

Cálculo de las ventas previas a una fecha dada

 

 

 

 

 

DAX functions involved
Submitted by admin on Thu, 04/11/2019 - 10:31