“Un anillo para gobernarlos a todos”. Una frase que marca el inicio del famoso y extraordinario libro del señor de los anillos: La Comunidad del Anillo.
En el mundo de Power BI, también nos vendría bien una tabla que tuviera la capacidad de gobernar a todas las otras tablas y, desde un solo filtro, poder afectar a las métricas y dimensiones que provienen de estas mismas tablas.
Tabla de contenidos
¿Qué es CALENDARAUTO en Power BI?
Imaginemos, por ejemplo, que tenemos dos tablas que contienen registros, una de compra y otra de venta de artículos. Ambas tablas agregarán registros diariamente con las transacciones realizadas y, por lo tanto, guardarán datos como fecha, lugar o monto asociado a cada transacción. Si quisiéramos comparar compras y ventas en una misma visualización, lo podríamos hacer generando una relación a través de la fecha en ambas tablas, pero correríamos un riesgo muy grande de perder registros en el proceso.
Para que esto no suceda, la mejor opción para nuestros reportes será contar con una tabla de fechas que actúe sobre todas nuestras tablas de hechos o tablas transaccionales como las mencionadas en este párrafo. En este sentido, CALENDARAUTO nos ofrece una solución a la medida que, de manera automática, generará un registro de todas las fechas presentes en nuestro panel.
CALENDARAUTO en Power BI será nuestro anillo único de fechas que gobernará a todas las otras tablas.
Implementación de una tabla de fechas con la función CALENDARAUTO en Power BI
CALENDAR y CALENDARAUTO en Power BI son funciones que, en cuanto al resultado, pueden parecer muy similares. Sin embargo, tienen algunas diferencias, especialmente a la hora de generar tablas y mantener los registros actualizados.
La función CALENDARAUTO, tiene la particularidad de detectar automáticamente las fechas existentes en nuestro modelo y tomar solamente el rango de fechas, máximo y mínimo, que existan en el conjunto de datos.
También, nos permitirá contextualizar nuestra función DAX señalando el mes en que finaliza nuestro año fiscal. Esto es especialmente útil ya que, por defecto, la función entiende que termina en el mes de diciembre.
De este modo, la representación de la función quedaría de la siguiente forma:
CALENDARIO = CALENDARAUTO()
CALENDARIO = CALENDARAUTO([NumeroMesFinAñoFiscal]) /*De ser necesario*/
-
1Generamos una nueva tablaEn este ejemplo, utilizaremos la función CALENDARAUTO para generar una nueva tabla dentro de nuestro modelo. Para ello nos iremos al menú de tablas y dentro de herramientas de tablas crearemos una nueva como se muestra en la imagen.
-
2Establecemos la configuración en base a la función DAX: CALENDARAUTOUtilizaremos la función CALENDARAUTO y esta detectará los valores mínimos y máximos entre todas las tablas de nuestro modelo, generando una primera columna de nombre DATE que podremos renombrar y complementar como más nos convenga.
Nombre_Mes = 'CALENDARIO'[Date].[Mes]
A partir de estas y otras funciones podemos agregar campos importantes y relevantes para nuestra tabla calendario que nos permitirán tener una mejor comprensión de nuestros datos, pero que explicaremos en un próximo artículo.
-
3Establecer 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)