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?