Uma das áreas mais poderosas do DAX no Power BI é a inteligência de tempo. Ela permite criar cálculos como acumulado do ano, acumulado do mês, comparação com o mesmo período do ano anterior e médias móveis de forma relativamente simples, desde que você tenha uma tabela de calendário corretamente configurada no seu modelo. Neste artigo iremos mostrar as principais funções de inteligência de tempo do DAX com exemplos práticos.
Pré-requisito: tabela de calendário marcada
Todas as funções de inteligência de tempo do DAX exigem que você tenha uma tabela de calendário no modelo, com uma coluna de datas contíguas, e que essa tabela esteja marcada como tabela de datas. Sem isso, as funções retornarão erros ou resultados incorretos.
YTD: acumulado do ano (Year-To-Date)
O YTD calcula o total acumulado desde o início do ano até a data atual no contexto do filtro:
Vendas YTD = CALCULATE(
[Total de Vendas];
DATESYTD(Calendário[Data])
)
Quando você coloca essa medida em um gráfico com meses no eixo, cada ponto mostra o acumulado do ano até aquele mês.
MTD: acumulado do mês (Month-To-Date)
Vendas MTD = CALCULATE(
[Total de Vendas];
DATESMTD(Calendário[Data])
)
QTD: acumulado do trimestre (Quarter-To-Date)
Vendas QTD = CALCULATE(
[Total de Vendas];
DATESQTD(Calendário[Data])
)
Comparação com o mesmo período do ano anterior (YoY)
Vendas Ano Anterior = CALCULATE(
[Total de Vendas];
SAMEPERIODLASTYEAR(Calendário[Data])
)
Variação YoY = [Total de Vendas] - [Vendas Ano Anterior]
Variação YoY % = DIVIDE(
[Variação YoY];
[Vendas Ano Anterior];
0
)
Período anterior: mês anterior
Vendas Mês Anterior = CALCULATE(
[Total de Vendas];
PREVIOUSMONTH(Calendário[Data])
)
Média móvel dos últimos 3 meses
Média Móvel 3M = CALCULATE(
DIVIDE([Total de Vendas]; DISTINCTCOUNT(Calendário[Ano-Mês]));
DATESINPERIOD(Calendário[Data]; LASTDATE(Calendário[Data]); -3; MONTH)
)
PARALLELPERIOD: mesmo período em outro ano
Vendas Mesmo Período Ano Passado = CALCULATE(
[Total de Vendas];
PARALLELPERIOD(Calendário[Data]; -1; YEAR)
)
Ano fiscal personalizado
Se o seu ano fiscal não começa em janeiro, o DATESYTD aceita um segundo parâmetro com a data de fim do ano fiscal:
Vendas YTD Fiscal = CALCULATE(
[Total de Vendas];
DATESYTD(Calendário[Data]; "31/03") -- ano fiscal terminando em março
)
Se você curtiu esse artigo onde mostramos as funções de inteligência de tempo no DAX do Power BI, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.