Promedio móvil en Power BI con DAX

Por el equipo de promedio.net · Actualizado el

Para un promedio móvil en Power BI, combina DATESINPERIOD, que devuelve las fechas de los últimos N días o meses hasta la fecha actual del visual, con AVERAGEX o con una división. Un promedio móvil de 3 días es AVERAGEX(DATESINPERIOD('Calendario'[Fecha], MAX('Calendario'[Fecha]), -3, DAY), [Ventas]). Necesitas una tabla de calendario con fechas continuas, relacionada con tus datos y marcada como tabla de fechas.

Sintaxis

DATESINPERIOD ( <fechas>, <fecha_inicio>, <número_de_intervalos>, <intervalo> )
ArgumentoEn un promedio móvil
fechasLa columna de fechas del calendario: 'Calendario'[Fecha]
fecha_inicioLa última fecha visible: MAX('Calendario'[Fecha])
número_de_intervalosNegativo para ir hacia atrás: -7 son los 7 días que terminan en la fecha de inicio
intervaloDAY, MONTH, QUARTER o YEAR, sin comillas

Paso a paso

  1. Crea o importa una tabla Calendario con una fila por día, sin huecos ni duplicados, que cubra todo el rango de tus datos.
  2. Márcala como tabla de fechas (en la vista de tabla, Marcar como tabla de fechas) y relaciónala con la columna de fecha de tus hechos.
  3. Crea la medida base: Ventas = SUM(Ventas[Importe]).
  4. Crea la medida móvil con DATESINPERIOD y uno de los patrones de abajo.
  5. Pon 'Calendario'[Fecha] (no la fecha de la tabla de ventas) en el eje del visual.

Ejemplos resueltos

Ejemplo 1: promedio móvil de 3 días

Ventas diarias del 1 al 8 de enero: 300, 163, 275, 196, sin ventas el día 5, 410, 228 y 252.

Promedio móvil 3 días =
AVERAGEX (
    DATESINPERIOD ( 'Calendario'[Fecha], MAX ( 'Calendario'[Fecha] ), -3, DAY ),
    [Ventas]
)
FechaVentasPromedio móvil 3 días
03/01/2026275246.00
04/01/2026196211.33
05/01/2026(blanco)235.50
06/01/2026410303.00
07/01/2026228319.00
08/01/2026252296.67

El 3 de enero promedia 300, 163 y 275. El día 5 no tiene ventas: [Ventas] es blanco y AVERAGEX lo ignora, así que el 5, el 6 y el 7 promedian solo dos días. Los días 1 y 2 muestran 300 y 231.5, promedios de 1 y 2 días, porque antes del 1 de enero no hay ventas.

Ejemplo 2: contar los días sin ventas como cero

Si la tienda estuvo abierta el día 5 y simplemente no vendió, ese día debe contar como 0:

Promedio móvil 3 días (con ceros) =
AVERAGEX (
    DATESINPERIOD ( 'Calendario'[Fecha], MAX ( 'Calendario'[Fecha] ), -3, DAY ),
    [Ventas] + 0
)

Ahora el día 5 vale (275 + 196 + 0) / 3 = 157, el 6 vale 202 y el 7, 212.67. La diferencia con el ejemplo 1 es grande: 235.5 contra 157 el mismo día. Ninguna de las dos es incorrecta; depende de si un día vacío significa «cerrado» o «sin ventas». Para no mostrar promedios incompletos al inicio, devuelve blanco mientras no haya tres días de historia:

Promedio móvil 3 días (completo) =
VAR PrimerDia = CALCULATE ( MIN ( Ventas[Fecha] ), REMOVEFILTERS () )
RETURN
    IF ( MAX ( 'Calendario'[Fecha] ) >= PrimerDia + 2, [Promedio móvil 3 días (con ceros)] )

Ejemplo 3: promedio móvil de 3 meses en un visual mensual

Con ventas mensuales de 41,200 (enero), 38,900, 45,300, 44,100, 47,800 y 50,100 (junio), y el visual por mes:

Promedio móvil 3 meses =
VAR Periodo =
    DATESINPERIOD ( 'Calendario'[Fecha], MAX ( 'Calendario'[Fecha] ), -3, MONTH )
VAR Total = CALCULATE ( [Ventas], Periodo )
VAR Meses = CALCULATE ( DISTINCTCOUNT ( 'Calendario'[Año-Mes] ), Periodo )
RETURN
    DIVIDE ( Total, Meses )

En marzo, el periodo va del 1 de enero al 31 de marzo y el resultado es (41,200 + 38,900 + 45,300) / 3 = 41,800. Abril da 42,766.67, mayo 45,733.33 y junio 47,333.33. MAX('Calendario'[Fecha]) en la fila de marzo es el 31 de marzo, y tres meses hacia atrás desde ahí cubren enero, febrero y marzo completos. Dividir entre los meses del calendario (y no promediar con AVERAGEX sobre meses) evita problemas cuando el visual tiene año y mes en columnas separadas.

Errores comunes

Comprueba una serie corta con la calculadora de promedio móvil. La versión con funciones de ventana está en promedio móvil en SQL.

Fuentes

  1. Microsoft Learn, DATESINPERIOD (DAX). Argumentos, intervalos DAY, MONTH, QUARTER, YEAR y desplazamiento negativo. Consultado el 11 de noviembre de 2026.
  2. Microsoft Learn, tablas de fechas en Power BI Desktop. Marcar como tabla de fechas, fechas únicas y continuas. Consultado el 11 de noviembre de 2026.