SUM e SUMX são as duas formas de somar valores no DAX, a linguagem de fórmulas do Power BI, do Power Pivot no Excel e dos modelos semânticos do Microsoft Fabric.
A SUM soma uma coluna inteira. A SUMX percorre uma tabela linha a linha, calcula uma expressão em cada uma delas e só depois soma os resultados.
Neste artigo, você vai entender a regra de decisão entre as duas funções, ver com números por que a SUM pode gerar um resultado absurdo, descobrir o que realmente deixa uma medida lenta e aprender a usar a SUMX para corrigir totais.
A regra de decisão em uma frase
Antes de qualquer detalhe técnico, guarde esta pergunta: o valor que eu quero somar já existe pronto em uma coluna?
- Sim: use SUM. Exemplo: somar a coluna Quantidade.
- Não, preciso calcular algo em cada linha antes de somar: use SUMX. Exemplo: Quantidade × Preço Unitário.
A tabela abaixo resume as diferenças práticas:
| Característica | SUM | SUMX |
|---|---|---|
| O que recebe | Uma coluna | Uma tabela e uma expressão |
| Tipo de função | Agregadora | Iteradora (percorre linha a linha) |
| Quando usar | Valor já pronto em uma coluna | Cálculo que envolve duas ou mais colunas da mesma linha |
| Exemplo | SUM(Vendas[Quantidade]) | SUMX(Vendas, Vendas[Quantidade] * Vendas[PrecoUnitario]) |
| Equivalente no Excel | SOMA | SOMARPRODUTO |
| Desempenho com uma única coluna | Idêntico | Idêntico |
Vamos usar a tabela abaixo como exemplo.

Observe que a tabela não tem uma coluna de faturamento. Ela tem quantidade e preço separados. É exatamente aí que a escolha entre SUM e SUMX faz diferença.
Como funciona a SUM
A SUM recebe uma única coluna e soma todos os valores visíveis no contexto atual do visual (o filtro de mês, a categoria da linha da matriz, a segmentação selecionada).
Quantidade Vendida = SUM ( Vendas[Quantidade] )
Na nossa tabela, essa medida retorna 93 unidades.
Se você colocar a medida em uma matriz por Categoria, o Power BI filtra a tabela para cada categoria e soma só as linhas correspondentes.
A SUM é perfeita para tudo que já está pronto: quantidade, valor de nota fiscal já calculado pelo sistema, horas trabalhadas, número de chamados.

Como funciona a SUMX
A SUMX tem dois argumentos: a tabela que será percorrida e a expressão que será calculada em cada linha.
Faturamento Bruto =
SUMX (
Vendas, -- 1. Tabela que será percorrida
Vendas[Quantidade] * Vendas[PrecoUnitario] -- 2. Cálculo feito em cada linha
)
O que acontece por trás:
- A SUMX pega a primeira linha da tabela Vendas e calcula 2 × 4.200 = 8.400.
- Passa para a segunda linha e calcula 10 × 85 = 850.
- Repete o processo nas 16 linhas.
- Soma todos os resultados: R$ 48.815.
Esse “olhar para cada linha” é o que o DAX chama de contexto de linha. A SUM não cria esse contexto, por isso não consegue multiplicar colunas da mesma linha.

O erro clássico: a soma dos produtos não é o produto das somas
Quem está começando costuma tentar resolver o faturamento só com SUM:
-- ⚠️ Medida ERRADA
Faturamento Errado =
SUM ( Vendas[Quantidade] ) * SUM ( Vendas[PrecoUnitario] )
Parece razoável, mas veja o que o DAX faz:
- SUM(Quantidade) = 93
- SUM(PrecoUnitario) = 18.060
- Resultado: 93 × 18.060 = R$ 1.679.580
O faturamento real é R$ 48.815. A medida errada mistura a quantidade de mouses com o preço de notebooks e infla o valor em mais de 34 vezes.
| Medida | Resultado | Correto? |
|---|---|---|
SUM(Quantidade) * SUM(PrecoUnitario) | R$ 1.679.580 | Não |
SUMX(Vendas, Quantidade * PrecoUnitario) | R$ 48.815 | Sim |
A regra matemática por trás é simples: a soma dos produtos é diferente do produto das somas. Sempre que o cálculo precisa acontecer linha a linha, a SUMX é a ferramenta certa.
Atenção: em um visual filtrado para um único pedido, as duas medidas retornam o mesmo valor. O erro só aparece quando há várias linhas agregadas, o que torna esse problema fácil de passar despercebido nos testes.
A ponte com o Excel: SUMX é o SOMARPRODUTO do DAX
Se você vem do Excel, já conhece a lógica da SUMX. Com a mesma tabela em uma planilha, o faturamento seria calculado assim:
=SOMARPRODUTO(E2:E17; F2:F17)
O SOMARPRODUTO multiplica cada par de células da mesma linha e soma os resultados. É exatamente o que a SUMX faz no DAX.
A outra forma comum no Excel é criar uma coluna auxiliar =E2*F2, arrastar para baixo e somar a coluna. No DAX, essa coluna auxiliar vira a expressão dentro da SUMX, sem precisar existir fisicamente na tabela.
Um detalhe útil para quem trabalha com Excel: todas as medidas deste artigo funcionam também no Power Pivot, porque ele usa o mesmo motor e a mesma linguagem DAX do Power BI.

Exemplos práticos de SUMX no dia a dia
Com a lógica entendida, a SUMX resolve vários cálculos de negócio comuns.
Faturamento líquido
O desconto da nossa tabela é um valor em reais por pedido. O cálculo precisa acontecer em cada linha: quantidade × preço, menos o desconto daquele pedido.
Faturamento Líquido =
SUMX (
Vendas,
( Vendas[Quantidade] * Vendas[PrecoUnitario] ) - Vendas[Desconto]
)
Resultado: R$ 48.815 − R$ 1.240 = R$ 47.575.
Como o desconto já é um valor pronto, também daria para escrever [Faturamento Bruto] - SUM(Vendas[Desconto]). As duas formas chegam ao mesmo número, e você pode escolher a que deixar a medida mais legível.
Custo total e lucro
O custo também depende de quantidade × custo unitário, então segue o mesmo padrão:
Custo Total =
SUMX (
Vendas,
Vendas[Quantidade] * Vendas[CustoUnitario]
)
Lucro =
[Faturamento Líquido] - [Custo Total]
Resultado: R$ 47.575 − R$ 32.575 = R$ 15.000.
Repare que a medida de Lucro não usa SUMX. Ela apenas subtrai duas medidas que já estão corretas. Reaproveitar medidas prontas deixa o modelo mais fácil de manter.
Margem percentual
Margem % =
DIVIDE ( [Lucro], [Faturamento Líquido] )
Resultado: 31,5%. A função DIVIDE evita erro de divisão por zero quando um filtro não retorna vendas.
Conversão de moeda com tabela relacionada
Imagine que as vendas estejam em dólar e exista uma tabela Cotacao relacionada à tabela Vendas pela data, com a taxa de câmbio de cada dia. A SUMX, combinada com RELATED, busca a cotação correta para cada linha:
Faturamento em Reais =
SUMX (
Vendas,
Vendas[Quantidade] * Vendas[PrecoUnitario]
* RELATED ( Cotacao[TaxaDolarReal] )
)
Cada pedido é convertido pela cotação do próprio dia antes da soma. Usar uma cotação média sobre o total geraria um valor diferente e incorreto.
SUMX é mais lenta que SUM? Depende do que está dentro dela
É comum ouvir que a SUMX é sempre mais pesada e deve ser evitada em bases grandes. Os testes de especialistas mostram algo diferente.
SUM é, na prática, uma SUMX com uma coluna
Segundo o DAX Guide, mantido pela SQLBI, a SUM é um atalho: o motor do Power BI executa SUM(Vendas[Quantidade]) exatamente como SUMX(Vendas, Vendas[Quantidade]). Um teste publicado pelo SQLGene confirmou que os planos de execução das duas são idênticos.
Ou seja, para somar uma única coluna, não existe diferença de desempenho. A escolha entre elas, nesse caso, é só de legibilidade.
O que realmente pesa
A SQLBI mostrou que uma SUMX de quantidade × preço sobre 200 milhões de linhas roda muito rápido, porque o motor de armazenamento do Power BI consegue fazer a multiplicação sozinho. Mas, ao incluir um simples ROUND dentro da expressão, o tempo de CPU do motor saltou de 203 ms para 53.422 ms (artigo da SQLBI sobre o tema).
Os três cenários que costumam deixar uma SUMX lenta em tabelas grandes são:
- Funções complexas dentro da expressão, como arredondamentos e lógicas condicionais pesadas, que o motor de armazenamento não consegue processar sozinho.
- Medidas dentro do iterador, que forçam uma transição de contexto em cada linha (explicada na próxima seção).
- Iteradores aninhados, como uma SUMX dentro de outra SUMX ou de um FILTER sobre uma tabela grande.
Em tabelas de alguns milhares de linhas, nada disso é perceptível. Em tabelas fato com dezenas de milhões de registros, a diferença entre uma expressão simples e uma complexa pode separar um visual instantâneo de um que demora vários segundos.
Uma boa prática equilibrada
Comece pelas soluções mais simples: SUM para colunas prontas e CALCULATE para alterar filtros. Quando precisar de uma SUMX, use sem receio, mas trate isso como um sinal para revisar a expressão de dentro: ela é simples? Tem medidas? Tem outro iterador?
A pergunta certa não é “SUM ou SUMX?”, e sim “o que eu coloquei dentro da SUMX?”.
Quando o total da matriz não bate com a soma das linhas
Este é um problema que sempre aparece em fóruns de Power BI. Todas as linhas da matriz estão corretas, mas o total mostra um valor que não corresponde à soma delas.
Por que isso acontece
No Excel, o total de uma tabela soma os valores visíveis. No Power BI, o total é recalculado: a mesma fórmula da medida é aplicada sobre todas as linhas juntas, e não sobre os resultados já exibidos.
Para medidas simples como a SUM, isso dá o mesmo resultado. Para medidas com regras condicionais, o resultado muda. Como explica a SQLBI, o total não está “errado”: ele está correto para a fórmula que foi escrita, que simplesmente não é aditiva.
Exemplo com a tabela de vendas
Suponha uma regra de frete: pedidos acima de R$ 2.000 têm frete grátis; os demais pagam R$ 50.
Frete =
IF ( [Faturamento Bruto] > 2000, 0, 50 )
Em uma matriz por Pedido, cada linha mostra o frete correto. Oito pedidos ficam abaixo de R$ 2.000 (PED-1002, 1004, 1005, 1007, 1011, 1013, 1014 e 1016), então o frete total esperado é R$ 400.
Mas o total da matriz mostra R$ 0. Na linha de total, o Power BI calcula o faturamento bruto de todos os pedidos juntos (R$ 48.815), que é maior que R$ 2.000, e aplica a regra uma única vez.
A correção com SUMX
A solução é dizer ao DAX: “calcule o frete pedido a pedido e depois some”.
Frete Total =
SUMX (
VALUES ( Vendas[Pedido] ), -- 1. Lista de pedidos visíveis no contexto atual
[Frete] -- 2. Calcula a regra de frete para cada pedido
)
Agora as linhas continuam iguais e o total mostra R$ 400.

O ponto-chave está no primeiro argumento. Em vez de percorrer a tabela Vendas inteira, a SUMX percorre VALUES(Vendas[Pedido]), a lista de pedidos distintos. A tabela escolhida define a granularidade do cálculo:
| Primeiro argumento | A regra é aplicada por… |
|---|---|
Vendas | Cada linha da tabela fato |
VALUES(Vendas[Pedido]) | Cada pedido |
VALUES(Vendas[Categoria]) | Cada categoria |
VALUES(Calendario[Mês]) | Cada mês |
Se a regra de negócio fosse “frete grátis para categorias que faturaram mais de R$ 10.000 no mês”, a tabela iterada seria outra. Escolher a granularidade certa é o que define se o total vai bater.
Transição de contexto: o que muda quando há uma medida dentro da SUMX
Repare que a medida Frete Total usa [Frete], uma medida, dentro da SUMX. Isso funciona por causa de um comportamento do DAX chamado transição de contexto.
Toda referência a uma medida é envolvida automaticamente por um CALCULATE.
Dentro de um iterador, esse CALCULATE transforma a linha atual (o pedido PED-1002, por exemplo) em um filtro. Assim, [Faturamento Bruto] passa a ser calculado só para aquele pedido.
Na prática, isso traz duas consequências:
- Poder: é o que permite aplicar regras de negócio em qualquer granularidade, como no exemplo do frete.
- Cuidado: a transição acontece em cada linha iterada. Sobre uma tabela pequena como a lista de pedidos, não há problema. Sobre uma tabela fato com milhões de linhas, pode pesar no desempenho e, se a tabela tiver linhas duplicadas, gerar resultados inesperados.
Se duas medidas que parecem idênticas retornam números diferentes dentro de uma SUMX, a transição de contexto costuma ser a explicação.
Para se aprofundar, a SQLBI tem uma explicação visual da transição de contexto.
Medida com SUMX ou coluna calculada?
Uma alternativa à SUMX seria criar uma coluna calculada Faturamento = Vendas[Quantidade] * Vendas[PrecoUnitario] e depois somá-la com SUM. O resultado numérico é o mesmo, mas o custo é diferente.
| Aspecto | Medida com SUMX | Coluna calculada + SUM |
|---|---|---|
| Quando é calculada | Na hora da consulta | Na atualização do modelo |
| Ocupa memória | Não | Sim, em cada linha da tabela |
| Compressão | Não se aplica | Costuma ser pior que a de colunas importadas |
| Pode ser usada como eixo, filtro ou segmentação | Não | Sim |
| Pode criar relacionamentos | Não | Sim |
Na maioria das análises de valores (faturamento, custo, lucro), a medida com SUMX é a melhor escolha, porque não aumenta o tamanho do modelo.
A coluna calculada faz sentido quando o resultado precisa classificar ou fatiar os dados. Exemplos:
- Uma coluna Faixa de Ticket (“Até R$ 1.000”, “R$ 1.000 a R$ 5.000”, “Acima de R$ 5.000”) para usar em uma segmentação.
- Uma chave combinada para criar um relacionamento entre tabelas.
Se o cálculo puder ser feito na origem ou no Power Query, essa costuma ser uma opção ainda melhor do que a coluna calculada em DAX. Veja mais no nosso artigo sobre Power Query para iniciantes.
Checklist rápido para escolher entre SUM e SUMX
Antes de criar uma medida de soma, passe por estas perguntas:
- O valor já existe pronto em uma coluna? Use SUM.
- O cálculo usa duas ou mais colunas da mesma linha? Use SUMX sobre a tabela fato.
- A regra precisa ser aplicada por pedido, cliente, categoria ou mês? Use SUMX sobre
VALUESda coluna que define essa granularidade. - O total da matriz não bate com as linhas? Verifique se a medida tem regras condicionais e recomponha o total com SUMX.
- A medida ficou lenta? Revise o que está dentro da SUMX: funções complexas, medidas sobre tabelas grandes ou iteradores aninhados.
- Precisa usar o resultado como filtro ou eixo? Avalie uma coluna calculada ou um ajuste no Power Query.
Conclusão
A diferença entre SUM e SUMX no Power BI se resume a uma pergunta: o valor já está pronto ou precisa ser calculado linha a linha?
A SUM soma colunas prontas. A SUMX percorre uma tabela, calcula uma expressão em cada linha e soma os resultados, funcionando como o SOMARPRODUTO do DAX.
Você também viu que, para uma única coluna, as duas têm o mesmo desempenho, porque a SUM é uma SUMX por baixo dos panos.
O que pesa é o conteúdo da expressão. E a SUMX, combinada com VALUES, é a ferramenta para corrigir totais de medidas com regras de negócio, aplicando o cálculo na granularidade certa.
Para colocar em prática, abra um relatório que você já usa e revise as medidas de faturamento, custo e margem.
Procure multiplicações entre duas SUMs, totais de matriz que não conferem com as linhas e colunas calculadas que poderiam virar medidas.
Em poucos minutos, você deixa o modelo mais confiável, mais leve e pronto para responder às perguntas do seu gestor, do seu cliente ou do seu próprio negócio com números corretos.
Sobre o Autor
0 Comentários