crescimento percentual (YoY e MoM) em DAX: como calcular
Crescimento percentual YoY e MoM em DAX: como comparar com o ano e o mês anterior usando inteligência de tempo, DIVIDE e uma boa tabela de datas, com exemplos.
Comparar com o ano e o mês anterior é o que dá sentido ao número de hoje
Um valor de vendas isolado quase não informa. Cresceu ou caiu? Foi um bom mês? Só a comparação responde, e as duas comparações mais pedidas são o crescimento em relação ao mesmo período do ano passado, o YoY, e em relação ao período anterior, o MoM. São elas que aparecem em toda reunião de resultados e em todo painel executivo. Calcular esses crescimentos em DAX é direto quando você tem uma boa tabela de datas e conhece as funções de inteligência de tempo. Este guia mostra como calcular o crescimento percentual YoY e MoM em DAX, com as funções certas, o cuidado com a divisão e o pré-requisito que faz tudo funcionar: uma tabela de calendário bem construída.
Tudo começa com uma boa tabela de datas relacionada ao fato
Antes de qualquer fórmula, é preciso o alicerce. A inteligência de tempo em DAX depende de uma tabela de datas dedicada, contínua, com uma linha por dia cobrindo todo o período do negócio, marcada como tabela de datas e relacionada ao fato pela coluna de data. Sem isso, funções como SAMEPERIODLASTYEAR não têm sobre o que trabalhar e retornam resultados errados ou vazios. Esse é o erro mais comum de quem tenta calcular YoY e falha: o problema não está na fórmula, está na ausência de um calendário adequado. Com a tabela de datas no lugar, todas as comparações de tempo passam a funcionar de forma limpa. Vale investir nesse alicerce antes de escrever a primeira medida de variação.
O crescimento YoY compara o período atual com o mesmo do ano anterior
Com o calendário pronto, o YoY sai em duas etapas. Primeiro, uma medida que traz o valor do mesmo período no ano passado, usando SAMEPERIODLASTYEAR sobre a coluna de data do calendário:
Vendas Ano Anterior =
CALCULATE ( [Vendas], SAMEPERIODLASTYEAR ( Calendario[Data] ) )
Depois, o crescimento percentual, que é a diferença entre o atual e o anterior dividida pelo anterior. O cuidado essencial aqui é usar DIVIDE, que trata a divisão por zero sem quebrar:
Crescimento YoY % =
DIVIDE ( [Vendas] - [Vendas Ano Anterior], [Vendas Ano Anterior] )
Formatada como percentual, essa medida responde direto: crescemos ou caímos em relação ao mesmo período do ano passado, e quanto. É a comparação que remove o efeito de sazonalidade, porque compara janeiro com janeiro, e não com dezembro.
As funções de inteligência de tempo cobrem cada comparação
| Comparação | Função típica | O que traz |
|---|---|---|
| Mesmo período ano anterior | SAMEPERIODLASTYEAR | Valor de um ano atrás |
| Mês anterior | DATEADD com passo de mês | Valor do mês anterior |
| Acumulado no ano | TOTALYTD | Soma do início do ano até a data |
| Divisão segura | DIVIDE | Percentual sem erro de zero |
O crescimento MoM compara com o período imediatamente anterior
O MoM segue a mesma lógica, mudando a função que busca o período anterior. Uma forma flexível é usar DATEADD, que desloca as datas por um passo definido, aqui um mês para trás:
Vendas Mês Anterior =
CALCULATE ( [Vendas], DATEADD ( Calendario[Data], -1, MONTH ) )
E o crescimento, novamente com DIVIDE para segurança:
Crescimento MoM % =
DIVIDE ( [Vendas] - [Vendas Mês Anterior], [Vendas Mês Anterior] )
DATEADD é versátil porque, trocando o passo, você calcula variação por dia, mês, trimestre ou ano com a mesma estrutura. Para o MoM, o passo de menos um mês faz a comparação com o mês imediatamente anterior. Diferente do YoY, o MoM sente a sazonalidade, então dezembro comparado com novembro pode subir só pelo efeito de fim de ano, e vale interpretar com esse contexto em mente.
DIVIDE e a formatação percentual são detalhes que evitam erros
Dois detalhes pequenos fazem diferença grande nessas medidas. O primeiro é usar sempre DIVIDE em vez da barra de divisão comum: quando o período anterior é zero ou vazio, a divisão normal gera erro ou infinito, enquanto DIVIDE devolve um resultado limpo, ou um valor alternativo que você define. Isso evita células com erro no relatório. O segundo é formatar a medida como percentual na própria medida, para o número sair como porcentagem em qualquer visual, sem retrabalho. Com esses cuidados, as medidas de crescimento ficam robustas: não quebram em casos de borda e aparecem sempre bem formatadas. São detalhes que separam uma medida amadora de uma pronta para produção. Para medidas confiáveis e um modelo bem estruturado, veja nossos serviços de Power BI, o guia completo de Power BI para empresas e os dashboards.
Interprete a comparação certa para cada pergunta
Escolher entre YoY e MoM não é só técnico, é de leitura de negócio. O YoY é a comparação que remove sazonalidade e mostra a tendência real de crescimento, ideal para negócios sazonais e para a visão estratégica. O MoM captura o movimento recente, útil para acompanhar de perto a evolução mês a mês, mas precisa ser lido com a sazonalidade em mente para não confundir efeito de calendário com desempenho. Muitos painéis mostram os dois lado a lado, e faz sentido: cada um conta uma parte da história. Entender o que cada comparação revela é tão importante quanto escrever a fórmula certa, porque um crescimento MoM alto por causa da sazonalidade pode enganar quem o lê sem contexto. As duas medidas, bem construídas e bem interpretadas, dão à diretoria a leitura completa.
Perguntas frequentes
O que significam YoY e MoM? YoY, year over year, é o crescimento em relação ao mesmo período do ano anterior, como janeiro contra janeiro. MoM, month over month, é o crescimento em relação ao mês imediatamente anterior. Uma remove sazonalidade, a outra mostra o movimento recente.
Por que minha medida de YoY não funciona? Quase sempre por falta de uma tabela de datas dedicada, contínua e relacionada ao fato. As funções de inteligência de tempo dependem desse calendário. Sem ele, SAMEPERIODLASTYEAR e similares retornam resultados errados ou vazios.
Por que usar DIVIDE em vez da barra de divisão? Porque DIVIDE trata a divisão por zero ou por valor vazio sem gerar erro, devolvendo um resultado limpo ou um valor alternativo. A barra comum produz erro ou infinito quando o período anterior é zero, sujando o relatório.
Como calcular o valor do ano anterior? Com CALCULATE aplicando SAMEPERIODLASTYEAR sobre a coluna de data do calendário. Isso desloca o contexto para o mesmo período um ano atrás, trazendo o valor comparável para a fórmula de crescimento.
Qual a diferença de usar DATEADD? DATEADD é flexível: ele desloca as datas por um passo definido, seja dia, mês, trimestre ou ano. Para o MoM, você usa um passo de menos um mês. Trocando o passo, a mesma estrutura calcula variações em outros períodos.
Devo mostrar YoY ou MoM no painel? Depende da pergunta. O YoY dá a tendência sem sazonalidade, bom para a visão estratégica. O MoM mostra o movimento recente, mas exige ler a sazonalidade. Muitos painéis mostram os dois, porque cada um conta uma parte da história.
Compare com contexto e a medida vira decisão
Crescimento YoY e MoM transformam um número solto em tendência. Com uma boa tabela de datas, as funções de inteligência de tempo e DIVIDE, as medidas ficam robustas e bem formatadas. Se quiser medidas prontas para produção, fale com a gente.
Quer aplicar isso na sua empresa?
A Fynx implementa BI, Power BI e Power Platform de ponta a ponta. Conte seu cenário e devolvemos um diagnóstico direto ao ponto.
Falar com um especialista