Tabla de calendario en Power BI

Una tabla de calendario en Power BI es imprescindible si quieres realizar análisis de períodos anteriores (día, meses, años…). Por ejemplo si quieres conocer la variación porcentual de las ventas de este año respecto el año anterior necesitaras una tabla auxiliar de calendario, con esto evitarás errores de referencias cíclicas en el modelo de datos.
A continuación te explico y te comparto el calendario más completo que he encontrado. Es un calendario dinámico en el sentido que la fecha de inicio corresponde a la fecha más antigua de la tabla y la fecha final la más reciente (fecha de hoy).

Las tablas de calendario pueden hacerse de diversas formas, desde el editor de Power Query en M o desde el propio entorno de Power BI Desktop con el lenguaje DAX.

1.- Introducción

2.- Crear la tabla de calendario

3.- Añadir columnas (año, mes, día…)

4.- Crear la relación entre las tablas 

1. Introducción

En este ejemplo utilizaremos una tabla llamada “Ventas” donde tendremos la columna fecha y la columna ingresos (€). Esta tabla será necesaria para posteriormente, relacionarla con la tabla de calendario.

 

2. Crear la tabla del calendario

El primer paso será crear la tabla de calendario, opción que encontrarás all apartado de modelado de Power BI. haremos clic en “crear nueva tabla”. la nueva tabla que le llamaremos “Calendario”.

crear tabla

En el campo de la fórmula donde pone Tabla= escribiremos la siguiente fórmula

Calendario = CALENDAR(MIN(‘Ventas'[Fecha]);TODAY())

 

Esta expresión nos creará la nueva tabla con el nombre de “Calendario” con una columna “fecha” con la fecha más antigua de la tabla de las ventas y la fecha de hoy.

3. Añadir Columnas

Añadiremos tantas columnas como formatos de fecha necesitemos, columna Años, columna Mes, columna Dia…en total 25 formatos distintos.

 
 
  • Añadir columna Año

Año = YEAR(‘Calendario'[Fecha])

  • Añadir columna Mes
Mes = MONTH(‘Calendario'[Fecha])
 
  • Añadir columna Dia
Dia = DAY(‘Calendario'[Fecha])
 
  • Añadir columna Fecha ISO

FechaSk = ‘Calendario'[Año]*10000 + ‘Calendario'[Mes]*100 + ‘Calendario'[Dia]

  • Añadir columna Semestre 
Semestre= ROUNDUP(‘Calendario'[Mes]/6;0)
 
  • Añadir columna Cuatrimestre

Cuatrimestre = ROUNDUP(‘Calendario'[Mes]/4;0)

  •  Añadir columna Trimestre

Trimestre = ROUNDUP(‘Calendario'[Mes]/3;0)

  • Añadir columna Bimestre

Bimestre = ROUNDUP(‘Calendario'[Mes]/2;0)

  • Añadir columna Semana

Semana = WEEKNUM(‘Calendario'[Fecha])

 

Puedes añadir las demás columnas que faltan para tener la tabla de calendario completa (25 formatos) que encontrarás en este archivo txt descargable. Espero que te sirva de ayuda 🙂

4.- Crear una relación entre las tablas

 Para que las comparaciones entre periodos funcione correctamente deberás crear una relación entre la columna de “Fecha” de la tabla de Ventas con la columna de “Fecha” de la tabla Calendario.

relaciones tablas calendario