Menu

SOMARPRODUTO no Excel: multiplicar e somar com condições

=SOMARPRODUTO(B2:B6;C2:C6) multiplica cada quantidade pelo seu preço e soma os resultados. Com condições como (A2:A7="North")*C2:C7 ela soma e conta onde a SOMASES não consegue: por mês, coluna contra coluna, com OU.

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

=SOMARPRODUTO(B2:B6;C2:C6) multiplica cada quantidade de B pelo preço ao lado em C e depois soma os resultados. Ela dá o total do pedido em uma célula, sem uma coluna de totais por linha. A SOMARPRODUTO se chama SUMPRODUCT em inglês; a tabela mostra as fórmulas em inglês, com vírgulas, e também aceita a forma em português, com ponto e vírgula.

Total do pedido
F2
ABCDEF
1ItemQtyPriceLine totalTotal
2Pen4$1.50$6.00$30.70
3Notebook2$3.25$6.50$30.70
4Folder5$0.80$4.00
5Stapler1$7.90$7.90
6Marker3$2.10$6.30
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =SOMARPRODUTO(B2:B6;C2:C6)

F2 e F3 mostram o mesmo $30.70. Os totais por linha da coluna D estão ali só para mostrar o que a SOMARPRODUTO faz: 4 × 1,50, 2 × 3,25 e assim por diante, depois uma SOMA. Mude uma quantidade e os dois totais acompanham.

Sintaxe da SOMARPRODUTO

=SUMPRODUCT(array1, [array2], [array3], ...)
  • Cada matriz é um intervalo ou um cálculo que produz um, e todas precisam ter o mesmo tamanho, ou a SOMARPRODUTO retorna #VALOR! (#VALUE! em inglês; a tabela mostra os nomes de erro em inglês).
  • Com duas ou mais matrizes, os valores na mesma posição são multiplicados e depois os produtos são somados.
  • Com uma matriz ela só soma, e é isso que faz funcionar as formas com condição abaixo: =SOMARPRODUTO((A2:A7="North")*C2:C7) tem uma matriz, já multiplicada.
  • Texto passado como argumento próprio vale 0. Texto dentro de um cálculo com * causa #VALOR!.

A SOMARPRODUTO trabalha com matrizes em todas as versões do Excel sem Ctrl+Shift+Enter (Cmd+Shift+Enter no Mac), e por isso era a ferramenta padrão para somas condicionais antes de a SOMASES existir, e ainda é nos casos que a SOMASES não resolve.

SOMARPRODUTO com condições

Uma comparação sobre um intervalo, A2:A7="North", retorna um VERDADEIRO ou FALSO por linha. Multiplicar por ela mantém as linhas em que é VERDADEIRO (×1) e zera as outras (×0). Multiplique duas comparações para ter um E.

Somar e contar com condições
F2
ABCDEF
1RegionProductSalesFormulaResult
2NorthApple120North sales230
3SouthPear45North Apple sales150
4NorthPear80Count North3
5EastApple55Count over 504
6SouthApple200Without --0
7NorthApple30
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =SOMARPRODUTO((A2:A7="North")*C2:C7)

F2 soma as três linhas de North: 230. F3 multiplica duas condições, então uma linha só conta quando as duas são verdadeiras: 150. Para contar em vez de somar, deixe os valores de fora e transforme o VERDADEIRO/FALSO em números com -- (dois sinais de menos): F4 conta 3 linhas de North. F6 mostra por que o -- importa: a SOMARPRODUTO não soma valores VERDADEIRO, então a fórmula sem ele retorna 0.

As quatro primeiras dão os mesmos resultados que a SOMASE, a SOMASES e o CONT.SE. A próxima seção é onde a SOMARPRODUTO mostra o seu valor.

Condições que a SOMASES não consegue expressar

A SOMASES compara uma coluna com um critério fixo. Ela não consegue pegar o mês de uma data, comparar duas colunas entre si ou multiplicar quantidade por preço antes de somar. A SOMARPRODUTO consegue, porque cada condição é um cálculo comum.

Além da SOMASES
G2
ABCDEFG
1RegionDateTargetActualFormulaResult
2North2026-01-05100120February sales135
3South2026-01-126045Rows over target3
4North2026-02-039080North or East sales285
5East2026-02-185055Above target by75
6South2026-03-02150200
7North2026-03-204030
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =SOMARPRODUTO((MÊS(B2:B7)=2)*D2:D7)
  • G2 pega o MÊS (MONTH em inglês) de cada data e mantém as linhas de fevereiro: 80 + 55 = 135. Isso soma fevereiro de qualquer ano; acrescente *(ANO(B2:B7)=2026) para um ano só.
  • G3 compara duas colunas linha a linha e conta as linhas em que Actual supera Target.
  • G4 é um OU: somar duas condições dá 1 quando qualquer uma é verdadeira (2 quando as duas são, e é por isso que o >0 está ali). North ou East: 285.
  • G5 soma quanto cada linha passou da meta, só nas linhas que passaram.

SOMARPRODUTO para totais e médias ponderados

Quantidade vezes preço é um total ponderado, e dá para acrescentar condições a ele. A mesma ideia dividida pela soma dos pesos dá uma média ponderada: =SOMARPRODUTO(B2:B6;C2:C6)/SOMA(B2:B6) é o preço médio por item vendido.

Faturamento por região
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20North revenue$31.00
3SouthPear4$1.50All revenue$61.00
4NorthPear6$1.50Average price per item$1.36
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =SOMARPRODUTO((A2:A7="North")*C2:C7*D2:D7)

North vendeu 10 maçãs a $1.20, 6 peras a $1.50 e 5 ameixas a $2.00, então G2 mostra $31.00. A média simples dos preços trataria a ameixa como se fosse vendida tanto quanto a maçã; G4 pondera cada preço pela sua quantidade.

Prática: faturamento com uma condição

Sua vez: faturamento de South
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20South revenue
3SouthPear4$1.50
4NorthPear6$1.50
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Calcule o faturamento de South: quantidade vezes preço, só nas linhas de South. Escreva a fórmula em G2.

SOMARPRODUTO ou SOMASES, e os dois erros dela

CondiçãoSOMASESSOMARPRODUTO
Coluna igual a um valor=SOMASES(C2:C7;A2:A7;"North")=SOMARPRODUTO((A2:A7="North")*C2:C7)
Contém um texto=SOMASES(C2:C7;B2:B7;"*app*")=SOMARPRODUTO(ÉNÚM(LOCALIZAR("app";B2:B7))*C2:C7)
Mês de uma datanão dá diretamente=SOMARPRODUTO((MÊS(B2:B7)=2)*D2:D7)
Coluna contra colunanão dá=SOMARPRODUTO(--(D2:D7>C2:C7))
Quantidade × preçonão dá=SOMARPRODUTO(C2:C7;D2:D7)

Prefira a SOMASES sempre que ela der conta do trabalho. Ela é mais legível, mais rápida em dezenas de milhares de linhas e aceita colunas inteiras. =SOMARPRODUTO((A:A="North")*C:C) multiplica mais de um milhão de linhas e retorna #VALOR! assim que chega ao texto do cabeçalho em C1, então passe à SOMARPRODUTO intervalos exatos como A2:A500.

Os dois erros que você vai encontrar:

  • #VALOR! por intervalos de tamanhos diferentes. =SOMARPRODUTO(B2:B6;C2:C7) falha. Todos os intervalos precisam cobrir as mesmas linhas.
  • #VALOR! por texto em um intervalo multiplicado. Um cabeçalho ou um "n/a" dentro de C2:C7 quebra (A2:A7="North")*C2:C7, porque texto não pode ser multiplicado. Comece o intervalo abaixo do cabeçalho, ou passe os valores como argumento separado: =SOMARPRODUTO(--(A2:A7="North");C2:C7) trata o texto em C como 0.

Perguntas frequentes

O que a SOMARPRODUTO faz no Excel?

Ela multiplica intervalos linha a linha e soma os produtos. =SOMARPRODUTO(B2:B6;C2:C6) é B2C2 + B3C3 + ... + B6*C6, por exemplo quantidade vezes preço somados no total de um pedido.

Como usar a SOMARPRODUTO com uma condição?

Multiplique por uma comparação: =SOMARPRODUTO((A2:A7="North")*C2:C7) soma C2:C7 nas linhas de North. A comparação dá VERDADEIRO ou FALSO, que viram 1 ou 0 na multiplicação.

O que significa -- na SOMARPRODUTO?

São dois sinais de menos, que transformam VERDADEIRO e FALSO em 1 e 0. =SOMARPRODUTO(--(C2:C7>50)) conta os valores acima de 50. Sem eles, a SOMARPRODUTO trata VERDADEIRO/FALSO como 0 e retorna 0.

Devo usar SOMARPRODUTO ou SOMASES?

Use a SOMASES quando os critérios dela conseguem expressar a condição: ela é mais fácil de ler e mais rápida em intervalos grandes. Use a SOMARPRODUTO quando a condição precisa de um cálculo, como o mês de uma data, uma coluna comparada com outra, ou quantidade vezes preço.

Por que a SOMARPRODUTO retorna #VALOR!?

Os intervalos têm tamanhos diferentes (B2:B6 com C2:C7), ou um intervalo multiplicado com * contém texto. Deixe todos os intervalos do mesmo tamanho e passe os intervalos com texto como argumentos separados, o que trata o texto como 0.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR