Tabla Calendario en PowerBI

Llego el post tan ansiado

Que es una tabla calendario?

Una tabla calendario, en el contexto de Power BI y otras herramientas de análisis de datos, es una tabla específica que se crea para contener un rango de fechas, permitiendo así realizar análisis de datos relacionados con distintos intervalos de tiempo, como días, meses, años, entre otros. Esta tabla incluirá una secuencia continua de fechas, desde una fecha inicial hasta una fecha final, con una granularidad definida, como día, semana o mes.

La utilidad de una tabla calendario radica en que proporciona una estructura constante de fechas que puede relacionarse con otras tablas de datos en el modelo de Power BI. Esto facilita la realización de análisis temporales y permite agregar datos de forma coherente para obtener insights significativos sobre el comportamiento de los datos a lo largo del tiempo.

Adjunto ejemplo de un modelo de datos relacionados via Fechas.

PowerBI nos brinda la posibilidad de generar tablas de calendario de manera rapida y sencilla con DAX. Esto se hace mediante la creacion de una Tabla calculada dentro de PowerBI DESKTOP, y tenemos dos maneras, dos comandos, CALENDAR(), y CALENDARAUTO(). Cada función devuelve una tabla de fechas de una sola columna.

  • CALENDAR(): Se usa la función CALENDAR cuando se quiere definir un intervalo de fechas. Se pasan dos valores: la fecha de inicio y la fecha de finalización.

  • CALENDARAUTO(): SE usa la función CALENDARAUTO cuando se quiere que el intervalo de fechas abarque automáticamente todas las fechas almacenadas en el modelo. Puede pasar un solo parámetro opcional que sea el mes en que finaliza el año (si se trata de un año natural, que finaliza en diciembre, no es necesario pasar ningún valor). Es una función muy útil, ya que por ejemplo si cargaste una tabla de ventas y otra de pagos, creara la tabla calendario teniendo en cuenta que ninguna fecha de ambas tablas quede afuera del intervalo de fechas de la misma.

Ambos casos son una buena solución, pueden seguir investigando un poco mas si les interesa el tema, ahora vamos a lo importante, el codigo DAX de mi tabla calendario. Yo la realizo con el comando CALENDAR(), y despues de haber hecho un analisis de los datos, se desde que fecha tengo datos y asi les paso los comandos a la función en DAX.

Calendar = ADDCOLUMNS ( CALENDAR(DATE(2023, 1, 1), DATE(2025, 12, 31)),
"Year", FORMAT( [Date], "yyyy") ,
"MonthNo", MONTH ( [Date] ) ,
"Month", UPPER(LEFT(FORMAT([Date], "MMMM"), 1)) & LOWER(RIGHT(FORMAT([Date], "MMMM"), LEN(FORMAT([Date], "MMMM")) - 1)),
"Month short", UPPER(LEFT(FORMAT([Date], "MMM"), 1)) & LOWER(RIGHT(FORMAT([Date], "MMM"), LEN(FORMAT([Date], "MMM")) - 1)),
"MonthDay", FORMAT ([Date], "MM-DD"),
"Quarter", FORMAT ( [Date], "\QQ") ,
"QuarterNo", QUARTER( [Date]),
"YearMonth", FORMAT ( [Date] , "YYYY-MM"),
"DayNro", DAY ( [Date] ) ,
"WeekdayNo", WEEKDAY([Date],2) ,
"Weekday",FORMAT ( [Date] , "ddd") ,
"WeekNoorig", WEEKNUM( [Date], 21) ,
"WeekOrig" ,"W" & WEEKNUM( [Date] ,21) )

Ejemplo: en el primer comando, CALENDAR(DATE(2023, 1, 1), DATE(2025, 12, 31), si necesitan datos desde 2005, modifican ahi, CALENDAR(DATE(2005, 1, 1), DATE(2025, 12, 31)) y en 2025 ponen el año que les guste.

Espero que les sirva, compartan mi NEWSLETTER si les interesa este contenido. Tambien comentarles que me cree un canal de Youtube donde voy a subir tutoriales de PowerBI, y muchas cosas mas.