Todos nuestros modelos de datos tienen una dimensión en común, la dimensión del tiempo o DimDate. Gracias a la dimensión de tiempo podemos hacer comparaciones de datos entre rangos de fechas, ver como ha ido la producción anual de una empresa con un rápido vistazo o cualquier funcionalidad que se nos ocurra siempre que haya relación entre la dimensión de tiempo y la tabla de hechos.

Creación de Tabla

En cuanto tengamos abierto Power Bi Desktop con nuestra tabla de hechos cargada, en nuestro caso Disney Movies, podemos empezar a crear la dimensión de tiempo. Para ello nos colocamos en la parte de Data y hacemos clic en New Table.

DimDate dimensiontiempo fecha fechas date aleson itc microsoft base de datos sql server mysql oracle postgresql powerbi power bi business intelligence azure ssis ssas ssrs Azure SQL Database datawarehouse stretch databases managed instance elastic pool data factory

Escribiendo el siguiente código en la barra de creación se nos creará una tabla con todas las fechas que estén comprendidas entre 2016-01-01 y 2019-12-31.

Si quisiéramos que el rango de fechas fuera dinámico simplemente deberíamos modificar la parte de CALENDAR. Por ejemplo, con la siguiente formula cogeríamos desde el 1 de enero de hace dos años hasta el 31 de diciembre de dentro de dos años.

Una vez tengamos cargadas las columnas principales, podemos empezar a crear las columnas que utilizaremos en nuestras visualizaciones de Power Bi con sus respectivas columnas de ordenación. Las columnas de ordenación son obligatorias ya que un gráfico desordenado no tiene valor alguno.

Gráfico Desordenado vs Gráfico Ordenado

DimDate dimensiontiempo fecha fechas date aleson itc microsoft base de datos sql server mysql oracle postgresql powerbi power bi business intelligence azure ssis ssas ssrs Azure SQL Database datawarehouse stretch databases managed instance elastic pool data factory

Creación de Columnas

Las columnas básicas que no deben faltar en ninguna dimensión de tiempo son las siguientes:

  • Year= YEAR ( [Date] )
  • MonthNumber= FORMAT ( [Date]; “MM” )
  • MonthNameShort= FORMAT ( [Date]; “mmm” )
  • MonthNameLong= FORMAT ( [Date]; “mmmm” )
  • DayOfWeekNumber= WEEKDAY ( [Date] )
  • DayOfWeek= FORMAT ( [Date]; “dddd” )
  • DayOfWeekShort= FORMAT ( [Date]; “ddd” )
  • Quarter“= “Q” & FORMAT ( [Date]; “Q” )
  • YearQuarter= FORMAT ( [Date]; “YYYY” ) & “/Q” & FORMAT ( [Date]; “Q” )

Para crear las nuevas columnas, hacemos clic en New Column e insertamos la formula en la barra. Podemos crear tantas columnas como queramos y personalizarlas a nuestro gusto, Power Bi dispone de un gran abanico de formatos de fechas.DimDate dimensiontiempo fecha fechas date aleson itc microsoft base de datos sql server mysql oracle postgresql powerbi power bi business intelligence azure ssis ssas ssrs Azure SQL Database datawarehouse stretch databases managed instance elastic pool data factory

Cuando las columnas estén creadas nos quedaría ordenar las columnas por su columna de ordenación. Para crear la ordenación, seleccionamos la columna que queramos ordenar respecto a otra columna y hacemos clic en Sort by Column y seleccionamos la columna de ordenación.DimDate dimensiontiempo fecha fechas date aleson itc microsoft base de datos sql server mysql oracle postgresql powerbi power bi business intelligence azure ssis ssas ssrs Azure SQL Database datawarehouse stretch databases managed instance elastic pool data factory

Relacionar la Tabla

Una de las opciones que no debemos descuidar es Mark as Date Table, está opción indica que es la tabla de tiempo del modelo e internamente hace las siguientes validaciones:

  • Contienen valores únicos
  • Contienen valores que no son nulos
  • Contienen valores de fechas contiguas (de principio a fin)
  • Tienen la misma marca de tiempo en cada valor (si son del tipo Fecha/Hora)

DimDate dimensiontiempo fecha fechas date aleson itc microsoft base de datos sql server mysql oracle postgresql powerbi power bi business intelligence azure ssis ssas ssrs Azure SQL Database datawarehouse stretch databases managed instance elastic pool data factory

Para finalizar solo nos quedaría relacionar la dimensión de tiempo con la tabla de hechos.

Y comprobar que la relación funciona correctamente.

En esta pagina de Power Bi podemos visualizar la producción de Disney por año y las películas con mayor producción.

Aquí os dejo el script de creación de la dimensión de tiempo del ejemplo, para que partáis de una base para crear vuestras propias dimensiones de tiempo.

En la siguiente entrada de la serie hablaremos sobre medidas del tiempo y como hacerlas rápidamente en DAX.

Serie completa DimDate:

  1. Creando DimDate en Power BI
  2. Creando DimDate en Power BI

Si quieres que ayudemos a tu negocio o empresa visita nuestra página de Data Analytics.

Recommended Posts

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.