(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
DAX

Patrones DAX: running totals, YoY y medias móviles

João Barros 13 de February de 2026 1 min de lectura

Ciertos cálculos aparecen en casi todos los proyectos Power BI. Este tutorial presenta tres de los más comunes — running totals, comparaciones Year-over-Year y medias móviles — con las fórmulas correctas y variaciones prácticas.

1. Running Total (Acumulado)

Ventas Acumuladas =
CALCULATE(
    SUM(fVentas[Ingresos]),
    FILTER(
        ALL(dFecha[Date]),
        dFecha[Date] <= MAX(dFecha[Date])
    )
)

Funciona correctamente con cualquier filtro de fecha en el informe porque usa ALL(dFecha[Date]) y luego aplica la condición de fecha acumulada.

2. Year-over-Year (YoY)

Ventas YoY Abs =
VAR vActual = SUM(fVentas[Ingresos])
VAR vAnterior = CALCULATE(
    SUM(fVentas[Ingresos]),
    SAMEPERIODLASTYEAR(dFecha[Date])
)
RETURN vActual - vAnterior

Ventas YoY % = DIVIDE([Ventas YoY Abs], [Ventas Año Anterior], BLANK())

3. Media Móvil (N periodos)

Media Movil 3M =
VAR vFechaMax = MAX(dFecha[Date])
VAR vFechaMin = EDATE(vFechaMax, -2)   -- 3 meses atrás
RETURN
CALCULATE(
    AVERAGEX(
        VALUES(dFecha[Año] & "-" & dFecha[Mes]),
        [Ventas Total]
    ),
    DATESBETWEEN(dFecha[Date], vFechaMin, vFechaMax)
)

Variaciones útiles

  • Running total por categoría: añada un ALLEXCEPT para preservar el filtro de categoría.
  • YoY con periodo fiscal: use DATEADD(dFecha[Date], -1, YEAR) en lugar de SAMEPERIODLASTYEAR cuando el año fiscal no coincide con el natural.
  • Media móvil de 7 días: sustituya EDATE(vFechaMax, -2) por vFechaMax - 6.

Conclusión

Estos tres patrones cubren la mayoría de los análisis temporales que piden gestores y analistas. Guárdelos en un archivo de referencia personal — los reutilizará en prácticamente todos los proyectos.

Compartir: