Profundizando en DAX: Creando una tabla de fechas básica con la función DAX CALENDAR
A medida que vamos adquiriendo experiencia en Power BI, rápidamente nos vamos dando cuenta de que un aspecto crucial al crear un reporte es tener el poder de enmarcar los datos en un momento específico del tiempo. De hecho, es esencial, si no prácticamente obligatorio, contar con un filtro que nos permita definir el periodo temporal en el que queremos situar nuestros datos.
La gran pregunta es: ¿Cómo podemos ordenar las fechas que existen en nuestras tablas si la gran mayoría posee diferentes periodos de tiempo distintos?
Ya sea que, al ingresar tus datos tengas diferentes rangos de fecha, o que tus registros estén sometidos a una periodicidad distinta entre las diferentes tablas que componen tu modelo, la recomendación será siempre contar con una tabla centralizada de fechas que, idealmente, contemple todos los rangos y todos los periodos necesarios para englobar tu modelo. Para esto, como podrás anticipar, necesitaremos una tabla dedicada, también conocida como tabla calendario o tabla de tiempo. Esta tabla no solo nos dará la posibilidad de ordenar nuestros datos, sino que también nos permitirá filtrar visualizaciones y tablas dinámicas dentro de nuestros reportes a partir de un único filtro.
Tabla de contenidos
Implementación de una tabla de fechas con la función DAX CALENDAR
En el siguiente apartado comprenderemos, paso a paso, cómo crear una tabla calendario que tenga las fechas que deseamos almacenar dentro de nuestro modelo y, posteriormente, revisaremos cómo podemos designarla como una tabla de fechas.
-
1Generamos una nueva tablaEn primer lugar, vamos a generar una nueva tabla donde almacenaremos las fechas.
Para esto, en la parte superior del menú de tablas, nos dirigiremos a «herramientas de tablas». Aquí encontraremos la opción «crear una nueva tabla».
TIP: Es importante aclarar que esta tabla quedará almacenada dentro de la memoria interna de Power BI, y no dentro del modelo.
-
2Establecemos la configuración en base a la función DAX: CALENDARTras solicitar la creación de una nueva tabla, nos encontraremos con la barra de funciones DAX. Aquí, deberemos generar la siguiente fórmula que nos permitirá crear una columna principal con los registros que se encuentran en el rango de fechas requerido.
CALENDARIO = CALENDAR(Fecha de Inicio, Fecha Fin)
La definición de la fecha de inicio y la fecha de fin será determinada por nosotros, en función de las fechas que necesitemos para nuestro modelo. En el siguiente ejemplo, crearemos registros para la tabla entre el 2020 y el 2023, entregando como argumento el día, el mes y el año de las dos fechas límite, requeridas por la función.
CALENDARIO = CALENDAR (
DATE ( 2020, 1, 1 ),
DATE ( 2023, 12, 31 )
)
TIP: También podemos utilizar como parámetro una columna proveniente de otra tabla, pero debemos tener en consideración que solo podremos ingresar un valor único en cada parámetro de esta función.
Por ejemplo, si queremos que la fecha actúe en función de otra tabla que contiene registros entre el 2020 y el 2023, podremos usar la función MIN para determinar la fecha más antigua, y la función MAX para determinar la fecha más reciente, en función de la columna de fechas de esta otra tabla.
CALENDARIO = CALENDAR (
DATE ( YEAR ( MIN ( 'Tabla 1'[Date] ) ) , 1, 1 ),
DATE ( YEAR ( MAX ( 'Tabla 1'[Date] ) ) , 1, 1 ))
-
3(Opcional) Establecer esta tabla como tabla de fechasFinalmente, podemos configurar esta tabla como tabla de fechas, siguiendo los siguientes pasos. De esta manera nos aseguraremos de que Power BI entienda que esta tabla contiene campos del tipo DATE y que puede generar una jerarquía de fechas con diferentes niveles (año, mes, trimestre y día).
Vamos a las «Herramientas de tablas» y seleccionamos la opción “Marcar como tabla de fechas”, tal como se observa en la imagen:
Finalmente, seleccionamos la única columna que se habrá generado dentro de nuestra tabla de fechas que, por defecto, se llamará “Date”, y damos clic en «Aceptar».
Con este paso, nuestra tabla quedará configurada como tabla de fechas.
Es importante aclarar que lo ideal es tener una tabla estructurada de fechas que nos sirva para múltiples propósitos. En este sentido, en otros artículos te enseñaremos cómo agregar otros campos asociados a la fecha, como trimestres, cuatrimestres, meses, años, número de cada mes, días festivos y días laborales, entre otros. Estos campos te servirán para ordenar tus datos y generar objetos visuales más ordenados que puedan ser manejados desde un mismo filtro.