← Voltar ao blog
Power BIDAXModelagem

A “Prima Rica” da dCalendário: Descubra o Poder da Dimensão de Tempo no Power BI

Todo mundo conhece a dCalendário, mas pouca gente fala da dimensão de tempo (dTime): a tabela que mostra em que hora do dia as coisas acontecem. Veja como criá-la no Power BI.

MA
Allen87Data Engineer
· 3 min de leitura
Calendário, relógio e gráficos de barras e pizza em azul, ilustrando a dimensão de tempo (dTime) no Power BI

Todo mundo que trabalha com Power BI já ouviu falar (ou até construiu) uma tabela dimensão de calendário — a famosa dCalendário. Ela é quase uma celebridade entre os analistas: serve como base para análises temporais, agrupamentos por ano, mês, trimestre, semestre... enfim, tudo o que envolve o tempo em dias.

Mas deixa eu te fazer uma pergunta:

👉 E se, em vez de analisar quando no calendário algo aconteceu, a gente quisesse entender em que hora do dia isso costuma acontecer?

Pois é. Pouca gente fala sobre isso, mas existe um conceito tão poderoso quanto o da dCalendário: a dimensão de tempo — ou simplesmente dTime. Ela é a “prima rica” da dCalendário (ou talvez a prima misteriosa 😄).

Entendendo o contexto: tabelas fato e dimensão

Antes de tudo, vale lembrar a estrutura clássica dos modelos de dados no Power BI:

  • As tabelas fato são aquelas que contêm os eventos ou transações do seu negócio — por exemplo, vendas, atendimentos, missões, pedidos etc.
  • Já as tabelas dimensão são as que trazem o contexto para analisar esses eventos — como dimensão calendário, dimensão produto, dimensão cliente ou a nossa nova amiga, a dimensão de tempo.

A mágica acontece quando conectamos as dimensões às tabelas fato. É isso que permite criar análises poderosas e dinâmicas — e entender não só o “o quê”, mas também o “quando” e o “como” algo acontece.

⏳ Por que criar uma dimensão de tempo?

Em muitas análises, o fator hora pode revelar padrões que o dia, por si só, não mostra.

📊 Exemplos:

  • Em que horário ocorrem mais atendimentos ou falhas em um sistema?
  • Qual intervalo do dia concentra o maior volume de vendas?
  • Quando é o “horário nobre” das suas operações?

Esses insights só aparecem quando você olha para o tempo em detalhe — não apenas para a data.

Como criar uma dimensão de tempo no Power BI

O primeiro passo é simples: parta de uma tabela que contenha uma coluna de hora (ou datetime). Caso ela seja datetime, é uma boa prática separá-la em duas:

  • Uma contendo apenas a data
  • Outra contendo apenas o horário

Isso facilita muito as análises, relacionamentos e cálculos DAX.

🧩 Essa separação pode ser feita de duas formas:

No Power Query (Editor de Consultas)

Você pode criar colunas personalizadas usando M, por exemplo:

ColunaData = DateTime.Date([DataHora])
ColunaHora = DateTime.Time([DataHora])

Com isso, você extrai a parte de data e hora diretamente no momento da transformação — garantindo performance e clareza no modelo.

Ou nas transformações visuais (no próprio Power BI Desktop)

Basta selecionar a coluna datetime e criar novas colunas calculadas:

Para a data:

Data = DATEVALUE(Tabela[DataHora])

Para a hora:

Hora = TIMEVALUE(Tabela[DataHora])

Ambas as abordagens são válidas — escolha conforme sua necessidade e etapa do projeto.

Criando a dTime com DAX

Depois de separar as colunas, você pode criar a sua tabela dimensão de tempo com a fórmula abaixo:

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

Essa expressão coleta todos os valores únicos de hora da sua base (que pode ser uma tabela fato, por exemplo) e remove os valores nulos.

Enriquecendo sua tabela de tempo

A partir disso, você pode enriquecer a dTime com novas colunas que ajudam na categorização e análise, conforme as seguintes sugestões:

TimeText = CONVERT(dTime[Time], STRING)

🔹 Converte o valor da hora para texto formatado (ex.: “07:30:00”).

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

🔹 Extrai a hora numérica, permitindo segmentações e cálculos (ex.: 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"
)

🔹 Classifica cada horário em um intervalo específico do dia — perfeito para visualizações de concentração ou volume de ocorrências.

O poder dos detalhes

Assim como a dCalendário nos ajuda a entender o “quando” no macro, a dTime nos permite entender o “quando” no micro. E muitas vezes, é nesse detalhe que mora o verdadeiro insight.

Então, da próxima vez que for construir seu modelo no Power BI, lembre-se:

📆 A dCalendário é indispensável…

🕒 Mas a dTime pode ser reveladora.

Você já tinha ouvido falar sobre essa possibilidade? Já usou uma dimensão de tempo em seus relatórios?

MA
Allen87 Data Engineer & Data Analyst

Escrevo sobre Power BI, engenharia de dados e IA aplicada. Veja o perfil completo, os 66 dashboards Power BI publicados e o GitHub.