Inteligência de tempo no DAX: YTD, MTD e comparações com ano anterior

Para calcular acumulado do ano (YTD), acumulado do mês (MTD) ou comparação com o ano anterior no Power BI, use funções de inteligência de tempo do DAX como DATESYTD, DATESMTD e SAMEPERIODLASTYEAR dentro de um CALCULATE — mas isso só funciona se o modelo tiver uma tabela de calendário marcada como tabela de datas.

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:

🎓
Quer aprender Excel de verdade, do zero ao avançado? Conheça o Curso Excel pra Ontem — aulas práticas, direto ao ponto, sem enrolação. Do zero ao avançado, no seu ritmo
Conhecer o curso →
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
)

Perguntas frequentes

O que é necessário no modelo de dados para as funções de inteligência de tempo do DAX funcionarem?

Uma tabela de calendário com uma coluna de datas contíguas, marcada como tabela de datas no modelo — sem isso, as funções retornam erros ou resultados incorretos.

Como calcular o acumulado do ano (YTD) no DAX?

Vendas YTD = CALCULATE([Total de Vendas]; DATESYTD(Calendário[Data])), que soma o total acumulado desde o início do ano até a data do contexto atual.

Como comparar as vendas com o mesmo período do ano anterior no DAX?

Use CALCULATE([Total de Vendas]; SAMEPERIODLASTYEAR(Calendário[Data])), que desloca o contexto de filtro de data para o ano anterior.


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.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *