FUNCIONES DE INTELIGENCIA DE TIEMPO EN POWER BI

Las funciones de inteligencia de tiempo en Power BI permiten analizar datos a lo largo del tiempo de forma sencilla y potente mediante funciones DAX. Con ellas se pueden calcular acumulados anuales, comparar periodos, obtener el mismo periodo del año anterior o moverse hacia delante y hacia atrás en el calendario sin tener que crear medidas complejas a mano.
Estas funciones son una de las características más utilizadas en informes de negocio, ya que facilitan el análisis de tendencias, el seguimiento de KPIs y la comparación entre periodos.

Requisitos previos imprescindibles

Para que las funciones de inteligencia de tiempo funcionen correctamente es necesario cumplir varios requisitos:
  • Tabla de fechas (Date table): Debe existir una tabla de calendario con una columna de tipo fecha que contenga fechas continuas (sin huecos) y que cubra todos los periodos de tus datos de hechos.
  • Marcar la tabla como tabla de fechas: En el modelo de datos, selecciona la tabla de calendario → clic derecho → “Marcar como tabla de fechas” y elegir la columna de fecha.
  • Relación correcta: La tabla de fechas debe estar relacionada con las tablas de hechos mediante la columna de fecha (preferiblemente una relación 1 a muchos).
  • Columna de fecha completa: La columna usada debe contener valores de tipo fecha,no texto ni números formateados como fecha.
Si no se cumplen estos requisitos, las funciones pueden devolver resultados incorrectos o errores.

Principales funciones de inteligencia de tiempo

A continuación se detallan las funciones más utilizadas, con su sintaxis básica y un ejemplo típico.

Acumulados (Year-to-Date, Quarter-to-Date, Month-to-Date)

  • "TOTALYTD": Calcula el acumulado desde el inicio del año hasta la fecha actual del contexto. "TOTALYTD([Ventas]; 'Calendario'[Fecha])"
  • "TOTALQTD": Acumulado desde el inicio del trimestre, "TOTALQTD([Ventas]; 'Calendario'[Fecha])".
  • "TOTALMTD": Acumulado desde el inicio del mes, "TOTALMTD([Ventas]; 'Calendario'[Fecha])".

Comparaciones con periodos anteriores

  • "SAMEPERIODLASTYEAR": Devuelve el mismo periodo del año anterior. Es muy usada para calcular variaciones interanuales. "CALCULATE([Ventas]; SAMEPERIODLASTYEAR('Calendario'[Fecha]))".
  • "PREVIOUSYEAR / PREVIOUSQUARTER / PREVIOUSMONTH": Desplazan el contexto al periodo anterior completo. "CALCULATE([Ventas]; PREVIOUSYEAR('Calendario'[Fecha]))".
  • "DATEADD": Mueve el periodo un número determinado de intervalos (días, meses, trimestres o años). "CALCULATE([Ventas]; DATEADD('Calendario'[Fecha]; -1; MONTH))" ventas del mes anterior.
  • "PARALLELPERIOD": Similar a "DATEADD", pero trabaja con periodos completos (mes, trimestre o año). "CALCULATE([Ventas]; PARALLELPERIOD('Calendario'[Fecha]; -1; YEAR))".

Otras funciones útiles

  • "DATESYTD / DATESQTD / DATESMTD": Devuelven el conjunto de fechas desde el inicio del periodo hasta la fecha actual. Se usan frecuentemente dentro de "CALCULATE".
  • "DATESBETWEEN": Permite seleccionar un rango de fechas concreto.
  • "ENDOFMONTH" / "ENDOFQUARTER" /" ENDOFYEAR": Devuelven la última fecha del periodo correspondiente.
  • "STARTOFMONTH" / "STARTOFQUARTER" / "STARTOFYEAR": Devuelven la primera fecha del periodo.

Ejemplo práctico de medidas

Se tiene una medida básica de ventas:

Ventas = SUM(Facturas[Importe])
Luego crear:

Ventas YTD = TOTALYTD([Ventas]; 'Calendario'[Fecha])

Ventas Año Anterior = CALCULATE([Ventas]; SAMEPERIODLASTYEAR('Calendario'[Fecha]))

Variación vs Año Anterior = 
DIVIDE(
    [Ventas] - [Ventas Año Anterior];
    [Ventas Año Anterior]
)
Estas medidas se comportan correctamente cuando el usuario filtra por año, mes o cualquier otro periodo en el informe, siempre que la tabla de fechas esté bien configurada.

Buenas prácticas

  • Crear siempre una tabla de fechas dedicada, se puede generar con DAX, Power Query o con scripts.
  • Evitar usar columnas de fecha de las tablas de hechos directamente en las funciones de inteligencia de tiempo.
  • Combinar las funciones con "CALCULATE" para obtener mayor flexibilidad.
  • Probar las medidas con diferentes filtros de fecha para validar los resultados.
  • Documentar las medidas para que el equipo de negocio entienda fácilmente