(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
DAX

Como criar um total acumulado em DAX: passo a passo

João Barros 04 de July de 2026 4 min de leitura

Um total acumulado — ou running total — soma os valores de forma progressiva ao longo do tempo: por exemplo, as vendas desde o início do ano até cada dia. É uma das medidas mais pedidas num relatório Power BI, porque transforma uma simples coluna de valores numa linha de evolução fácil de ler. Com o padrão certo em DAX, um total acumulado resolve-se em poucas linhas e funciona com qualquer medida que já tenhas. Este guia mostra como criar um total acumulado em DAX, passo a passo e com um exemplo prático.

Pré-requisitos

  • Um modelo no Power BI com uma tabela de factos (por exemplo Vendas) e uma tabela de calendário (por exemplo Calendário).
  • Uma relação ativa entre Calendário[Data] e a data da tabela Vendas.
  • Uma medida base, por exemplo Total Vendas = SUM(Vendas[Valor]).
  • Noções básicas de como criar medidas em DAX.

Passo 1: garantir uma tabela de calendário

Um total acumulado precisa de uma coluna de datas contínua, sem "buracos", para poder andar para a frente no tempo. Se ainda não tiveres uma tabela de calendário dedicada, cria uma com CALENDAR e liga-a à tua tabela de vendas.

Como criar um total acumulado em DAX: passo a passo
Calendário =
CALENDAR(DATE(2023, 1, 1), DATE(2026, 12, 31))

A seguir, seleciona a tabela e usa a opção "Marcar como tabela de datas", escolhendo a coluna Data. Este passo é o que garante que os cálculos temporais se comportam como esperado.

Passo 2: criar a medida base

Se ainda não existir, cria a medida que vais acumular. Convém mantê-la simples, porque o total acumulado limita-se a reutilizá-la dentro de um contexto de filtro diferente.

Total Vendas = SUM(Vendas[Valor])

Passo 3: escrever o total acumulado

Chegámos ao padrão principal. A ideia é somar [Total Vendas] para todas as datas até à data do contexto atual. Para isso usamos CALCULATE para redefinir o filtro de datas e FILTER com ALLSELECTED para percorrer todas as datas visíveis no relatório.

Total Acumulado =
CALCULATE(
    [Total Vendas],
    FILTER(
        ALLSELECTED('Calendário'[Data]),
        'Calendário'[Data] <= MAX('Calendário'[Data])
    )
)

Há dois pormenores que fazem tudo funcionar. MAX('Calendário'[Data]) devolve a última data do contexto atual — ou seja, a data daquela linha do visual. E ALLSELECTED ignora o contexto da linha mas respeita os filtros de segmentação (slicers), para que o acumulado reaja aos filtros do utilizador sem se limitar a uma só data.

Dica: se substituíres ALLSELECTED por ALL, o acumulado deixa de respeitar os slicers e passa a considerar sempre todas as datas do modelo.

Passo 4 (opcional): acumulado do ano com TOTALYTD

Se o que precisas é o acumulado desde o início do ano (year-to-date), existe um atalho ainda mais curto com a função TOTALYTD:

Vendas YTD =
TOTALYTD([Total Vendas], 'Calendário'[Data])

A diferença é importante: Total Acumulado soma tudo desde o início dos dados, enquanto Vendas YTD reinicia a cada 1 de janeiro. Escolhe a medida consoante a pergunta de negócio que queres responder.

Verificar o resultado

Cria uma tabela ou um gráfico de linhas com Calendário[Data] (ou o mês) no eixo e adiciona [Total Vendas] e [Total Acumulado] lado a lado. Depois confirma três coisas:

  • O Total Acumulado nunca desce: só sobe ou se mantém de período para período.
  • O valor na última data coincide com a soma total de [Total Vendas].
  • Ao escolher um ano num slicer, o acumulado ajusta-se ao período selecionado.

Se o acumulado disparar para valores estranhos, o motivo quase certo é faltar marcar o Calendário como tabela de datas, ou a relação com a tabela de vendas estar em falta.

Conclusão

Com um único padrão de CALCULATE + FILTER + ALLSELECTED ficas com um total acumulado que respeita os filtros do relatório, e com TOTALYTD resolves o caso específico do acumulado anual. A partir daqui vale a pena experimentar variantes: acumulado por categoria de produto, média móvel de sete dias ou comparação com o período homólogo. Qual destas vais precisar primeiro no teu próximo relatório?

Partilhar: