SOMARPRODUTO no Excel: o que é, como funciona e por que essa função resolve o que outras não conseguem

Se você trabalha com análise de dados no Excel, eventualmente chega em um ponto onde as funções básicas de soma e contagem não são suficientes. As condições que você precisa avaliar são complexas demais para o SOMASE, os critérios envolvem funções que o CONT.SES não aceita, ou você precisa calcular algo que mistura multiplicação com soma em um único passo. É exatamente para essas situações que o SOMARPRODUTO existe. Neste artigo iremos mostrar o que é o SOMARPRODUTO no Excel, como funciona matematicamente, quais são seus usos mais poderosos e por que usuários avançados de Excel a usam em quase toda análise sofisticada.

O que é o SOMARPRODUTO e a matemática por trás da função

O SOMARPRODUTO — SUMPRODUCT em inglês — é uma função que multiplica os elementos de dois ou mais arrays posição por posição e depois soma todos os produtos resultantes. O nome descreve exatamente o que ela faz: soma (SOMA) dos produtos (PRODUTO). Se você tem os arrays {2;3;4} e {10;20;30}, o SOMARPRODUTO multiplica 2×10=20, 3×20=60 e 4×30=120, depois soma 20+60+120=200. Esse resultado seria equivalente à fórmula matricial {=SOMA(A1:A3*B1:B3)}, mas o SOMARPRODUTO faz isso nativamente sem precisar de Ctrl+Shift+Enter.

A sintaxe básica é: =SOMARPRODUTO(array1; [array2]; [array3]; …). Você pode passar de 2 a 255 arrays como argumentos. Todos os arrays precisam ter o mesmo número de elementos — o mesmo número de linhas e colunas. Se os arrays tiverem tamanhos diferentes, o SOMARPRODUTO retorna o erro #VALOR!. Cada array pode ser um intervalo de células (como A1:A100), um array literal entre chaves {1;2;3}, ou o resultado de uma expressão que retorna um array — como uma comparação (A1:A100>50), uma função de texto (ESQUERDA(A1:A100;2)) ou qualquer outra fórmula que retorne múltiplos valores.

A grande sacada do SOMARPRODUTO é que quando você passa uma expressão lógica como array — por exemplo (A1:A100=”Sul”) — ela retorna um array de VERDADEIRO e FALSO. O SOMARPRODUTO converte automaticamente esses valores lógicos em 1 e 0 para realizar a multiplicação. Isso significa que você pode usar condições como filtros dentro da função: as posições onde a condição é VERDADEIRO recebem peso 1 (incluídas no cálculo) e as posições onde é FALSO recebem peso 0 (excluídas). É essa capacidade de usar condições como filtros internos que torna o SOMARPRODUTO tão poderoso como substituto do SOMASES e do CONT.SES em situações mais complexas.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

O uso mais simples: multiplicar e somar em uma única etapa

Antes de explorar os usos avançados, é importante entender o uso literal da função. Em uma planilha de pedidos onde a coluna A tem quantidades e a coluna B tem preços unitários, calcular o faturamento total exige multiplicar cada quantidade pelo preço correspondente e somar os resultados. Com SOMARPRODUTO: =SOMARPRODUTO(A2:A100;B2:B100). Essa única fórmula faz o mesmo que inserir uma coluna auxiliar de quantidade×preço e depois somar essa coluna — mas sem precisar da coluna auxiliar.

Esse uso de multiplicação e soma em uma etapa é o mais intuitivo e frequentemente o primeiro que as pessoas aprendem sobre o SOMARPRODUTO. Em análises de custos, de receita por produto, de peso médio ou de qualquer situação onde você tem dois arrays de dados relacionados que precisam ser multiplicados e depois somados, o SOMARPRODUTO é a solução mais elegante e mais rápida de escrever. Compare: com colunas auxiliares você precisa de uma coluna adicional, uma fórmula em cada linha e uma SOMA no final. Com SOMARPRODUTO, é uma única célula com uma única fórmula.

Para três arrays — quantidade, preço e desconto por unidade —, o SOMARPRODUTO multiplica os três simultaneamente: =SOMARPRODUTO(A2:A100;B2:B100;C2:C100). Cada linha contribui com quantidade×preço×desconto para a soma total. Esse tipo de cálculo multidimensional com três ou mais fatores por linha seria muito trabalhoso de implementar com fórmulas convencionais e é trivial com SOMARPRODUTO. A função foi projetada exatamente para esse tipo de cálculo de produto escalar de múltiplos vetores.

SOMARPRODUTO como filtro: somando apenas os valores que atendem a uma condição

O uso mais poderoso do SOMARPRODUTO no cotidiano profissional é como um SOMASE avançado — somando valores que atendem a condições que o SOMASE simples não consegue processar. A sintaxe para somar os valores em C apenas quando A é “Sul”: =SOMARPRODUTO((A2:A100=”Sul”)*C2:C100). A expressão (A2:A100=”Sul”) cria um array de 1s e 0s. A multiplicação por C2:C100 zera as posições onde a condição é falsa. O SOMARPRODUTO soma o array resultante.

Para múltiplas condições simultâneas (equivalente ao SOMASES mas sem as limitações de critérios): =SOMARPRODUTO((A2:A100=”Sul”)*(B2:B100>1000)*C2:C100). Essa fórmula soma os valores em C apenas para linhas onde A é “Sul” E B é maior que 1.000. A multiplicação de arrays de 1s e 0s realiza a lógica E — uma linha só contribui com o valor de C quando todas as condições são verdadeiras (1×1=1), e é zerada quando qualquer condição é falsa (0×qualquer=0). O resultado é equivalente ao =SOMASES(C2:C100;A2:A100;”Sul”;B2:B100;”>1000″) mas aceita critérios muito mais flexíveis.

A diferença decisiva entre SOMARPRODUTO e SOMASES está nos critérios aceitos. O SOMASES aceita apenas comparações simples (igual a, maior que, menor que, começa com *) como critérios. O SOMARPRODUTO aceita qualquer expressão que retorne um array de VERDADEIRO/FALSO — incluindo funções como MÊS(), DIA.DA.SEMANA(), É.NÚM(), É.TEXTO(), NÚM.CARACT(), ESQUERDA() e qualquer outra função que processa arrays. Para somar apenas as vendas do mês de março: =SOMARPRODUTO((MÊS(A2:A100)=3)*C2:C100). Isso é impossível no SOMASES — ele não aceita MÊS() como critério.

SOMARPRODUTO para contar: uma alternativa mais poderosa ao CONT.SES

Além de somar, o SOMARPRODUTO conta quando você não multiplica por um array de valores mas simplesmente soma o array de condições: =SOMARPRODUTO((A2:A100=”Sul”)*(B2:B100>1000)). Sem multiplicar por um terceiro array de valores, o resultado é a contagem de linhas onde as duas condições são verdadeiras simultaneamente. Cada posição vale 1 (ambas as condições verdadeiras) ou 0 (qualquer condição falsa), e a soma desses 1s é a contagem.

Para contar com condição OU em vez de E, some os arrays em vez de multiplicar: =SOMARPRODUTO(((A2:A100=”Sul”)+(A2:A100=”Norte”))>0). A soma dos dois arrays de 1/0 resulta em 0 quando nenhuma condição é verdadeira, 1 quando apenas uma é verdadeira e 2 quando as duas são verdadeiras. A comparação >0 converte qualquer resultado não-zero em VERDADEIRO, e o SOMARPRODUTO externo soma os VERDADEIROs. Essa lógica OU não tem equivalente direto no CONT.SES, que só suporta lógica E entre múltiplos critérios.

Uma combinação muito comum é usar SOMARPRODUTO para calcular médias condicionais — a média de um subconjunto de dados. Divida a soma condicional pela contagem condicional: =SOMARPRODUTO((A2:A100=”Sul”)*C2:C100)/SOMARPRODUTO((A2:A100=”Sul”)). O numerador soma os valores de C para a região Sul e o denominador conta quantos registros são da região Sul. O resultado é a média de C para a região Sul — equivalente ao MÉDIASE, mas com a flexibilidade de critérios avançados que o MÉDIASE não oferece.

Desempenho do SOMARPRODUTO versus funções nativas

Uma dúvida comum é se o SOMARPRODUTO é mais lento que SOMASES e CONT.SES em planilhas com grandes volumes de dados. A resposta é: sim, o SOMARPRODUTO é geralmente mais lento do que as funções nativas equivalentes porque processa array por array em vez de usar algoritmos otimizados internamente. Para bases de dados com dezenas ou centenas de milhares de linhas e muitas fórmulas SOMARPRODUTO, a diferença de performance pode ser perceptível.

A regra prática é: use SOMASES e CONT.SES quando os critérios forem simples e as funções nativas conseguirem resolver. Reserve o SOMARPRODUTO para os casos onde os critérios envolvem funções que as funções nativas não aceitam, onde você precisa de lógica OU, ou onde a multiplicação de múltiplos arrays é necessária em uma única fórmula. Em planilhas com menos de 50.000 linhas e com critérios moderadamente complexos, a diferença de performance entre SOMARPRODUTO e funções nativas raramente é um problema prático.

Se você curtiu esse artigo onde mostramos o que é e como funciona o SOMARPRODUTO no Excel, 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 *