← Volver al blog
Power BIDAXModelado

La “Prima Rica” de dCalendario: Descubre el Poder de la Dimensión de Tiempo en Power BI

Todos conocen la dCalendario, pero pocos hablan de la dimensión de tiempo (dTime): la tabla que muestra a qué hora del día ocurren las cosas. Así se crea en Power BI.

MA
Allen87Data Engineer
· 3 min de lectura
Calendario, reloj y gráficos de barras y circular en azul, que ilustran la dimensión de tiempo (dTime) en Power BI

Todo el que trabaja con Power BI ya ha oído hablar de (o incluso ha construido) una tabla de dimensión calendario — la famosa dCalendario. Es casi una celebridad entre los analistas: sirve de base para los análisis temporales, las agrupaciones por año, mes, trimestre, semestre... en fin, todo lo que involucra el tiempo en días.

Pero déjame hacerte una pregunta:

👉 ¿Y si, en lugar de analizar cuándo en el calendario ocurrió algo, quisiéramos entender a qué hora del día suele ocurrir?

Así es. Pocos hablan de esto, pero existe un concepto tan poderoso como el de la dCalendario: la dimensión de tiempo — o simplemente dTime. Es la “prima rica” de la dCalendario (o quizás la prima misteriosa 😄).

Entendiendo el contexto: tablas de hechos y de dimensión

Antes que nada, conviene recordar la estructura clásica de los modelos de datos en Power BI:

  • Las tablas de hechos contienen los eventos o transacciones de tu negocio — por ejemplo, ventas, atenciones, misiones, pedidos, etc.
  • Las tablas de dimensión aportan el contexto para analizar esos eventos — como la dimensión calendario, la dimensión producto, la dimensión cliente o nuestra nueva amiga, la dimensión de tiempo.

La magia ocurre cuando conectamos las dimensiones a las tablas de hechos. Eso es lo que permite crear análisis potentes y dinámicos — y entender no solo el “qué”, sino también el “cuándo” y el “cómo” ocurre algo.

⏳ ¿Por qué crear una dimensión de tiempo?

En muchos análisis, la hora puede revelar patrones que el día, por sí solo, no muestra.

📊 Ejemplos:

  • ¿A qué hora ocurren más atenciones o fallos en un sistema?
  • ¿Qué franja del día concentra el mayor volumen de ventas?
  • ¿Cuándo es el “horario estelar” de tus operaciones?

Estos insights solo aparecen cuando miras el tiempo en detalle — no solo la fecha.

Cómo crear una dimensión de tiempo en Power BI

El primer paso es simple: parte de una tabla que contenga una columna de hora (o datetime). Si es datetime, es una buena práctica separarla en dos:

  • Una que contenga solo la fecha
  • Otra que contenga solo la hora

Esto facilita mucho los análisis, las relaciones y los cálculos DAX.

🧩 Esta separación puede hacerse de dos formas:

En Power Query (Editor de consultas)

Puedes crear columnas personalizadas usando M, por ejemplo:

ColumnaFecha = DateTime.Date([FechaHora])
ColumnaHora = DateTime.Time([FechaHora])

Así extraes la parte de fecha y hora directamente en el momento de la transformación — garantizando rendimiento y claridad en el modelo.

O con las transformaciones visuales (en el propio Power BI Desktop)

Basta con seleccionar la columna datetime y crear nuevas columnas calculadas:

Para la fecha:

Fecha = DATEVALUE(Tabla[FechaHora])

Para la hora:

Hora = TIMEVALUE(Tabla[FechaHora])

Ambos enfoques son válidos — elige según tu necesidad y la etapa del proyecto.

Creando la dTime con DAX

Después de separar las columnas, puedes crear tu tabla de dimensión de tiempo con la siguiente fórmula:

dTime =
FILTER(
    VALUES(space_missions[Time]),
    NOT(ISBLANK(space_missions[Time]))
)

Esta expresión recoge todos los valores únicos de hora de tu base (que puede ser una tabla de hechos, por ejemplo) y elimina los valores nulos.

Enriqueciendo tu tabla de tiempo

A partir de ahí, puedes enriquecer la dTime con nuevas columnas que ayudan en la categorización y el análisis, según las siguientes sugerencias:

TimeText = CONVERT(dTime[Time], STRING)

🔹 Convierte el valor de la hora a texto formateado (ej.: “07:30:00”).

TimeNumber = CONVERT(MID(dTime[Time],1,2),INTEGER)

🔹 Extrae la hora numérica, permitiendo segmentaciones y cálculos (ej.: 7, 14, 19).

Interval =
SWITCH(
    TRUE(),
    dTime[TimeNumber] >= 0  && dTime[TimeNumber] <  6 , "⏱️00:00 - 06:00",
    dTime[TimeNumber] >= 6  && dTime[TimeNumber] < 12 , "⏱️06:00 - 12:00",
    dTime[TimeNumber] >= 12 && dTime[TimeNumber] < 18 , "⏱️12:00 - 18:00",
    "⏱️18:00 - 00:00"
)

🔹 Clasifica cada hora en una franja específica del día — perfecto para visualizaciones de concentración o volumen de ocurrencias.

El poder de los detalles

Así como la dCalendario nos ayuda a entender el “cuándo” en lo macro, la dTime nos permite entender el “cuándo” en lo micro. Y muchas veces, es en ese detalle donde vive el verdadero insight.

Entonces, la próxima vez que construyas tu modelo en Power BI, recuerda:

📆 La dCalendario es indispensable…

🕒 Pero la dTime puede ser reveladora.

¿Ya habías oído hablar de esta posibilidad? ¿Has usado una dimensión de tiempo en tus informes?

MA
Allen87 Data Engineer & Data Analyst

Escribo sobre Power BI, ingeniería de datos e IA aplicada. Mira el perfil completo, los 66 dashboards de Power BI publicados y GitHub.