DAX avanzado: Cálculos de tiempo inteligentes
Domina las funciones de Time Intelligence en DAX para comparativas YoY, MTD, YTD y más.
BI Analysts Team
Expertos en Datos e IA
Fundamentos de Time Intelligence en DAX
Las funciones de Time Intelligence en DAX permiten hacer cálculos comparativos a través del tiempo. Son esenciales para cualquier reporte financiero o de ventas.
Requisitos previos
Para que Time Intelligence funcione correctamente necesitas:
- Tabla de fechas continua (sin gaps)
- Columna de fecha marcada como tabla de fechas
- Relación entre tu tabla de hechos y la tabla de fechas
Crear tabla de fechas
Calendario =
ADDCOLUMNS(
CALENDAR(DATE(2020,1,1), DATE(2025,12,31)),
'Año', YEAR([Date]),
'Mes', MONTH([Date]),
'NombreMes', FORMAT([Date], 'MMMM'),
'Trimestre', 'Q' & QUARTER([Date]),
'AñoMes', FORMAT([Date], 'YYYY-MM')
)
Funciones esenciales
YTD (Year To Date)
Acumulado desde inicio del año hasta la fecha seleccionada:
Ventas YTD = TOTALYTD([Total Ventas], Calendario[Date])
MTD (Month To Date)
Acumulado desde inicio del mes:
Ventas MTD = TOTALMTD([Total Ventas], Calendario[Date])
QTD (Quarter To Date)
Acumulado desde inicio del trimestre:
Ventas QTD = TOTALQTD([Total Ventas], Calendario[Date])
Comparativas vs periodo anterior
Año anterior (SAMEPERIODLASTYEAR)
Ventas Año Anterior =
CALCULATE(
[Total Ventas],
SAMEPERIODLASTYEAR(Calendario[Date])
)
Crecimiento YoY
Crecimiento YoY =
VAR VentasActuales = [Total Ventas]
VAR VentasAA = [Ventas Año Anterior]
RETURN
DIVIDE(VentasActuales - VentasAA, VentasAA)
Mes anterior (DATEADD)
Ventas Mes Anterior =
CALCULATE(
[Total Ventas],
DATEADD(Calendario[Date], -1, MONTH)
)
Funciones avanzadas
PARALLELPERIOD
Para periodos más flexibles:
Ventas Hace 3 Meses =
CALCULATE(
[Total Ventas],
PARALLELPERIOD(Calendario[Date], -3, MONTH)
)
DATESINPERIOD
Para ventanas móviles:
Ventas Ultimos 90 Dias =
CALCULATE(
[Total Ventas],
DATESINPERIOD(
Calendario[Date],
MAX(Calendario[Date]),
-90,
DAY
)
)
Moving Average
Media Movil 3 Meses =
AVERAGEX(
DATESINPERIOD(
Calendario[Date],
MAX(Calendario[Date]),
-3,
MONTH
),
[Total Ventas]
)
Casos de uso prácticos
1. Comparativo completo
Analisis Ventas =
VAR Actual = [Total Ventas]
VAR AA = [Ventas Año Anterior]
VAR MA = [Ventas Mes Anterior]
VAR YTD_Actual = [Ventas YTD]
VAR YTD_AA = CALCULATE([Ventas YTD], SAMEPERIODLASTYEAR(Calendario[Date]))
RETURN
'Actual: ' & FORMAT(Actual, '$#,##0') &
' | vs AA: ' & FORMAT(DIVIDE(Actual - AA, AA), '0.0%') &
' | YTD: ' & FORMAT(YTD_Actual, '$#,##0')
2. Running Total
Acumulado =
CALCULATE(
[Total Ventas],
FILTER(
ALL(Calendario[Date]),
Calendario[Date] <= MAX(Calendario[Date])
)
)
Errores comunes
- Tabla de fechas incompleta: Causa resultados incorrectos
- No marcar como tabla de fechas: Time Intelligence no funciona
- Filtros que eliminan contexto: Usa REMOVEFILTERS con cuidado
- Mezclar años fiscales y calendario: Define claramente cuál usas
Conclusión
Dominar Time Intelligence es fundamental para cualquier desarrollador de Power BI. Practica estos patrones y pronto serán naturales en tu trabajo diario.
¿Necesitas ayuda con DAX avanzado? Contáctanos para capacitación personalizada.
¿Te resultó útil este artículo?
Si necesitas ayuda implementando estas soluciones en tu empresa, estamos aquí para ayudarte.
Agenda una consulta gratuita