Time Intelligence em DAX com tabela de datas personalizada
João Barros
28 de April de 2025
1 min de leitura
Time Intelligence é o conjunto de funções DAX que permite calcular períodos como Ano-até-à-data (YTD), Mês-até-à-data (MTD), comparações Year-over-Year (YoY) e períodos paralelos. Para funcionar correctamente, requerem uma tabela de datas contínua e marcada.
Criar a tabela de datas em DAX
dData =
ADDCOLUMNS(
CALENDAR(DATE(2020,1,1), DATE(2030,12,31)),
"Ano", YEAR([Date]),
"Trimestre", "T" & QUARTER([Date]),
"Mês", MONTH([Date]),
"NomeMês", FORMAT([Date], "MMMM", "pt-PT"),
"MêsAno", FORMAT([Date], "MMM YYYY", "pt-PT"),
"Semana", WEEKNUM([Date], 2),
"DiaSemana", WEEKDAY([Date], 2),
"É Útil", IF(WEEKDAY([Date],2) <= 5, TRUE, FALSE)
)
Marque a tabela como Date Table em Table Tools → Mark as Date Table usando a coluna Date.
Medidas de Time Intelligence
Vendas YTD = TOTALYTD(SUM(fVendas[Receita]), dData[Date])
Vendas MTD = TOTALMTD(SUM(fVendas[Receita]), dData[Date])
Vendas Ano Anterior = CALCULATE(
SUM(fVendas[Receita]),
SAMEPERIODLASTYEAR(dData[Date])
)
YoY % = DIVIDE(
SUM(fVendas[Receita]) - [Vendas Ano Anterior],
[Vendas Ano Anterior]
)
Ano fiscal vs. ano civil
Se o seu ano fiscal começa em Julho, use o parâmetro year_end_date:
Vendas YTD Fiscal = TOTALYTD(
SUM(fVendas[Receita]),
dData[Date],
"6/30" -- final do ano fiscal: 30 de Junho
)
Conclusão
Uma tabela de datas bem construída e marcada correctamente desbloqueia todo o potencial das funções de Time Intelligence. Invista 30 minutos a criar uma tabela de datas reutilizável — vai usá-la em todos os projectos Power BI.