Introdução

SOMARPRODUTO resolve um problema que o SOMASE e o SOMASES não conseguem sozinhos: somar ou contar valores com critérios ponderados, correspondências parciais combinadas ou lógica OU complexa, sem criar colunas auxiliares e sem depender de fórmula matricial tradicional (Ctrl+Shift+Enter).

Se você já tentou empilhar dois ou três SOMASES para resolver um cruzamento de dados e travou porque a lógica exigia “isso E aquilo, OU aquilo outro”, o problema não é falta de habilidade — é que o SOMASES simplesmente não foi feito para esse nível de combinação. O SOMARPRODUTO foi.

Este guia cobre a função inteira: como ela funciona por dentro, por que o -- (a dupla negação) é necessário para transformar um teste lógico em algo que pode ser somado, como montar critérios múltiplos e lógica OU, como diagnosticar o erro #VALOR!, e quando o SOMARPRODUTO deixa de ser a melhor escolha em 2026, considerando performance real e as alternativas com LET e LAMBDA.

Esse artigo é para você se:

  • Você já usou SOMASES para múltiplos critérios e precisou de uma lógica que o SOMASES não suporta, como ponderação ou “categoria A OU categoria B”
  • Você copiou uma fórmula com -- (dupla negação) de algum lugar, ela funcionou, mas você não sabe explicar por que aquele sinal duplo está ali
  • Sua planilha com SOMARPRODUTO está lenta ou retornando #VALOR!, e você precisa entender a causa antes de sair testando às cegas

Por que o SOMASES não é suficiente em alguns casos

O SOMASES resolve bem a maioria dos cenários de soma condicional: um ou mais critérios de igualdade, intervalo numérico ou data.

O problema aparece quando a lógica do negócio exige algo que a estrutura do SOMASES não comporta — por exemplo, somar valores multiplicando cada linha por um peso diferente, aplicar “OU” entre categorias dentro do mesmo critério, ou combinar texto parcial com sensibilidade a maiúsculas e minúsculas.

O SOMARPRODUTO resolve isso porque, na essência, não é uma função de “soma condicional” — é uma função de multiplicação de matrizes que depois soma os resultados.

Essa diferença de raiz é o que permite montar praticamente qualquer combinação lógica dentro dela, desde que você entenda como transformar comparações em números.

É justamente aí que mora a parte mais confusa da função para quem está aprendendo: o sinal --, chamado de dupla negação. Ele aparece precisamente para resolver o problema de transformar testes lógicos em valores que podem ser multiplicados.

Sem entender essa mecânica, você consegue copiar fórmulas prontas, mas não consegue adaptá-las quando a estrutura dos seus dados muda.

O mecanismo por trás da dupla negação (--)

Quando você escreve um teste lógico dentro do SOMARPRODUTO, como (C2:C81="Notebooks"), o Excel não devolve um número — devolve uma matriz de VERDADEIRO e FALSO, célula a célula.

O problema é que VERDADEIRO e FALSO não podem ser multiplicados diretamente dentro da lógica interna da função da forma que a soma condicional exige.

É aqui que entra a dupla negação: dois sinais de subtração seguidos (--). O primeiro - converte VERDADEIRO em -1 e FALSO em 0. O segundo - inverte o sinal novamente, transformando -1 em 1 — daí o nome dupla negação, já que a segunda subtração desfaz o sinal negativo criado pela primeira.

O resultado final é uma matriz de 1 (condição atendida) e 0 (condição não atendida) — exatamente o formato que pode ser multiplicado por outras matrizes e depois somado.

Existem alternativas ao -– (dupla negação), como envolver o teste lógico na função N() ou multiplicá-lo por 1, mas o -- se tornou o padrão porque é mais curto e processa ligeiramente mais rápido em matrizes grandes.

Aplicação prática: da soma simples ao critério combinado

Contexto da base de dados

Os exemplos a seguir usam os registros de vendas de um e-commerce de eletrônicos que vende por três canais (Loja Física, Site Próprio e Marketplace), cobrindo o período de janeiro de 2024 a fevereiro de 2026. Cada linha representa uma venda: vendedor responsável, canal, categoria do produto, quantidade, valor unitário e data.

Faça o download logo abaixo da planilha que usamos como exemplo.

Passo 1 — Some o faturamento total multiplicando quantidade por preço

Antes de aplicar qualquer critério, vale entender o uso mais elementar do SOMARPRODUTO: multiplicar duas matrizes linha a linha e somar os resultados. É o cenário clássico de calcular faturamento quando quantidade e valor unitário estão em colunas separadas.

=SOMARPRODUTO(D2:D81;E2:E81)

O Excel multiplica D2 por E2, D3 por E3, e assim sucessivamente até D81 e E81, somando todos os produtos em um único resultado. Não é necessário criar uma coluna auxiliar de “valor total” — a multiplicação acontece internamente, célula a célula, antes da soma.

expressão básica da função somarproduto

Passo 2 — Some o faturamento apenas de um canal (um critério)

Agora aplique um teste lógico. Aqui é onde a -- (dupla negação) entra em ação para converter a comparação em números que podem ser multiplicados pela matriz de valores.

=SOMARPRODUTO(--(B2:B81="Loja Física");D2:D81;E2:E81)

O Excel testa cada célula de B2:B81 contra “Loja Física”, gera uma matriz de 1 e 0, e multiplica essa matriz pelas quantidades e pelos valores unitários correspondentes.

Linhas onde a condição é falsa são zeradas automaticamente na multiplicação, então não entram na soma.

função somarproduto com 1 critério

Essa mesma fórmula também pode ser escrita substituindo a dupla negação e os argumentos separados por ponto e vírgula e por multiplicação direta entre as matrizes:

=SOMARPRODUTO((B2:B81="Loja Física")*D2:D81*E2:E81)

As duas versões chegam ao mesmo resultado, porque a multiplicação entre o teste lógico e as matrizes numéricas já converte VERDADEIRO/FALSO em 1/0 automaticamente — o mesmo papel que a -- (dupla negação) cumpre quando os argumentos são passados separados por ponto e vírgula.

A diferença é só de escrita: com *, tudo vira uma única matriz multiplicada dentro de um argumento com ; (ponto e vírgula), cada matriz entra como um argumento separado e por isso precisa da dupla negação para não ficar misturando texto lógico com números.

segundo exemplo da função somarproduto com um critério

Nos passos seguintes, quando há mais de um critério, a versão com * tende a ficar mais enxuta — é o mesmo padrão usado a partir do Passo 3.

Esse é o ponto em que muita gente pergunta por que não usar SOMASES diretamente.

Para um critério simples como este, SOMASES é mais rápido e mais legível — o SOMARPRODUTO só se justifica aqui como exercício de aprendizado da mecânica antes de avançar para critérios que o SOMASES não resolve.

Passo 3 — Combine dois critérios simultâneos (lógica E)

A multiplicação entre testes lógicos dentro do SOMARPRODUTO funciona como uma operação E — só entra na soma a linha em que todas as condições são verdadeiras ao mesmo tempo.

=SOMARPRODUTO((B2:B81="Loja Física")*(C2:C81="Notebooks");D2:D81;E2:E81)

Repare que aqui não foi necessário usar -- (dupla negação) antes de cada teste, porque a própria multiplicação entre as duas matrizes lógicas já converte os valores VERDADEIRO/FALSO em 1/0 automaticamente.

A -- (dupla negação) só é indispensável quando existe um único teste lógico isolado sendo multiplicado por matrizes numéricas, como no passo anterior.

O resultado é o faturamento apenas das vendas de notebooks realizadas pelo canal Loja Física — um cruzamento que exigiria um SOMASES com dois critérios adicionais, mas que aqui já está pronto para receber uma terceira ou quarta condição sem alterar a estrutura da fórmula.

função somarproduto com dois critérios

Passo 4 — Aplique lógica OU entre categorias

Multiplicação ( * ) simula E; para simular OU, a operação precisa ser adição ( + ). Este é o padrão que resolve o cenário de “smartphones OU acessórios” por exemplo.

=SOMARPRODUTO(((C2:C81="Smartphones")+(C2:C81="Acessórios"))*D2:D81*E2:E81)

A soma das duas comparações gera 1 quando pelo menos uma das condições é verdadeira (e teoricamente 2 se ambas fossem, o que não ocorre aqui porque uma célula não pode conter os dois textos ao mesmo tempo).

O resultado dessa soma é então multiplicado pela quantidade e pelo valor unitário, consolidando o faturamento das duas categorias combinadas.

função somarproduto com a lógica ou

Passo 5 — Some por correspondência de texto parcial

Quando a categoria não é exatamente igual, mas contém um trecho em comum — como “Notebooks” e “Notebook Gamer” — o teste de igualdade simples (=) não resolve, porque ele exige correspondência exata, e o SOMARPRODUTO não aceita o curinga asterisco (*) dentro desse tipo de comparação, como aceitaria em SOMASE ou SOMASES.

A alternativa é combinar as funções PROCURAR e ÉNÚM para verificar se um trecho de texto aparece em qualquer parte da célula.

=SOMARPRODUTO(--ÉNÚM(PROCURAR("Notebook";C2:C81));D2:D81;E2:E81)

A função PROCURAR retorna a posição do texto “Notebook” dentro de cada célula da coluna C, ou um erro quando o texto não é encontrado.

ÉNÚM transforma esse resultado em VERDADEIRO ou FALSO, e a -- (dupla negação) converte novamente para 1 e 0, permitindo somar apenas as linhas em que “Notebook” aparece em qualquer parte do texto da categoria — incluindo “Notebook Gamer”.

somarproduto com busca por texto

Passo 6 — Combine vendedor, canal, categoria e período em uma única fórmula

Um relatório real raramente pede só um critério — pede algo como “quanto o vendedor Marcos vendeu de Acessórios, pela Loja Física, no ano de 2024”.

Isso é vendedor, canal e categoria (três critérios de texto) somados a um intervalo de datas, tudo na mesma consulta.

O SOMARPRODUTO combina esses cinco testes multiplicando todos entre si, sem precisar de um argumento extra para cada um, como aconteceria em um SOMASES com esse número de critérios.

=SOMARPRODUTO((A2:A81="Marcos Aurélio")*(B2:B81="Loja Física")*(C2:C81="Acessórios")*(F2:F81>=DATA(2024;1;1))*(F2:F81<=DATA(2024;12;31))*D2:D81*E2:E81)

Os três primeiros testes funcionam exatamente como no Passo 3: cada um gera uma matriz de VERDADEIRO/FALSO, e a multiplicação entre eles aplica a lógica E.

Os dois testes seguintes fazem o mesmo com a coluna de datas, usando >= (maior e igual a) e <= (menor e igual a) para delimitar o período, a função DATA(ano;mês;dia) cria a data de referência diretamente dentro da fórmula, sem precisar digitar a data em outra célula.

somarproduto com diversos critérios

Olhando a tabela, existem três vendas de Marcos Aurélio, pela Loja Física, na categoria Acessórios: uma em 02/04/2024, uma em 27/12/2024 e outra em 10/01/2025.

Como a fórmula limita o período a 2024, apenas as duas primeiras entram na soma — a venda de 2025 é automaticamente excluída pelos dois testes de data, mesmo atendendo a todos os outros três critérios.

Se você já usou SOMASES antes, repare que a sintaxe de data aqui é diferente.

No SOMASES, o critério de data precisa ser passado como texto, concatenando o operador com &, como em ">="&DATA(2024;1;1), porque a função espera uma única string de critério por argumento.

No SOMARPRODUTO, F2:F81>=DATA(2024;1;1) é uma comparação direta entre matrizes — igual a A2:A81="Marcos Aurélio" — e não deve levar aspas nem &, já que isso transformaria a comparação em texto em vez de em teste lógico.

Erros comuns ao usar SOMARPRODUTO

Erro #VALOR! por matrizes de dimensões diferentes

A causa mais frequente do erro #VALOR! no SOMARPRODUTO é simples: as matrizes fornecidas precisam ter exatamente o mesmo número de linhas e colunas. Se um intervalo vai de D2:D81 e outro de E2:E71, o Excel não consegue parear as células e devolve o erro imediatamente.

A solução é revisar todos os intervalos da fórmula e garantir que comecem e terminem na mesma linha — usar Tabelas do Excel (formatadas como tabela estruturada) ajuda a evitar esse problema, porque os intervalos se ajustam automaticamente juntos quando novas linhas são adicionadas.

Erro #VALOR! por texto ou espaços ocultos em colunas numéricas

Quando uma coluna que deveria ser 100% numérica contém células com espaços em branco, texto invisível ou valores colados de sistemas externos (ERPs, exportações de relatórios), o SOMARPRODUTO trava porque tenta multiplicar texto por número.

A correção prática é filtrar a coluna para identificar essas células, substituí-las por zero ou usar um filtro adicional com --(ÉNÚM(D2:D81)) multiplicado dentro da fórmula, para ignorar automaticamente qualquer célula não numérica.

Fórmula lenta ou trava a planilha com referência de coluna inteira

Escrever =SOMARPRODUTO(D:D;E:E) em vez de =SOMARPRODUTO(D2:D81;E2:E81) parece mais prático, mas faz o Excel multiplicar mais de um milhão de células de cada coluna antes de somar, mesmo que a maioria esteja vazia.

Em planilhas grandes, isso é a principal causa de lentidão perceptível ao recalcular. A solução é sempre restringir o intervalo ao tamanho real dos dados, ou usar referências de Tabela estruturada, que se expandem automaticamente sem recorrer à coluna inteira.

Resultado incorreto ao confundir lógica E com lógica OU

Usar multiplicação (*) onde o critério deveria ser adição (+), ou vice-versa, gera um número tecnicamente calculado, mas semanticamente errado, e esse tipo de erro não gera mensagem de aviso, então passa despercebido.

Para diagnosticar, selecione a célula e use o caminho Fórmulas > Avaliar Fórmula > Avaliar, que mostra passo a passo como o Excel resolve cada matriz internamente, permitindo identificar exatamente em qual etapa o resultado diverge do esperado.

Dicas avançadas

Meça antes de escolher: o custo real de performance

Um teste de velocidade do My Online Training Hub, comparando fórmulas em mais de 110 mil linhas de dados, mostrou que o SOMARPRODUTO é mais lento porque cria matrizes temporárias na memória — um processo mais custoso do que o SOMASES, que percorre os critérios sequencialmente e já vai descartando linhas ao longo do caminho.

O teste também isolou o efeito da referência de coluna inteira: usar SOMARPRODUTO com uma referência como D:D em vez de D2:D81 deixou a fórmula cerca de seis vezes mais lenta.

Isso não significa abandonar o SOMARPRODUTO, significa reservá-lo para os casos em que ele resolve algo que o SOMASES não resolve (ponderação, lógica OU combinada, texto parcial com múltiplos critérios), sempre restringindo o intervalo ao tamanho real dos dados, e usar SOMASES sempre que o critério for simples, especialmente em planilhas com muitas linhas e muitas fórmulas replicadas.

Torne fórmulas complexas legíveis com LET

Fórmulas de SOMARPRODUTO com três ou quatro critérios aninhados ficam difíceis de revisar depois de um tempo. A função LET, disponível em versões com Microsoft 365, permite criar variáveis dentro da própria fórmula: você nomeia um trecho de cálculo uma única vez e reutiliza esse nome no restante da expressão, em vez de repetir a mesma referência de intervalo várias vezes.

O resultado final é o mesmo, mas a leitura muda completamente.

Veja a mesma fórmula do Passo 3 nas duas versões. Sem LET, os intervalos e critérios ficam todos concatenados dentro do SOMARPRODUTO:

=SOMARPRODUTO((B2:B24="Site Próprio")*(C2:C24="Notebooks")*D2:D24*E2:E24)

Com LET, cada bloco lógico ganha um nome antes de ser combinado, e a última linha só combina os nomes já definidos:

=LET(
  canal;B2:B24="Site Próprio";
  categoria;C2:C24="Notebooks";
  faturamento;D2:D24*E2:E24;
  SOMARPRODUTO(canal*categoria*faturamento)
)

Cada nome (canal, categoria, faturamento) documenta a própria fórmula, o que reduz o tempo de manutenção quando outra pessoa — ou você mesmo, meses depois — precisar entender ou ajustar os critérios.

Quando não usar SOMARPRODUTO

O SOMARPRODUTO continua sendo essencial em três cenários específicos: planilhas em versões do Excel sem Microsoft 365, cálculos de ponderação que exigem multiplicação direta entre matrizes, e situações em que a lógica combinada (E + OU no mesmo critério) não tem uma alternativa mais simples.

Fora desses casos, o ecossistema atual de matrizes dinâmicas, LET e LAMBDA já resolve boa parte do que antes só o SOMARPRODUTO fazia com fórmulas mais legíveis e, em muitos cenários, mais rápidas.

Funções como FILTER combinadas com SOMA, por exemplo, eliminam a necessidade da dupla negação para filtrar e agregar dados em uma única expressão.

A recomendação prática é: se você tem acesso a Microsoft 365, avalie primeiro se LET, LAMBDA ou matrizes dinâmicas resolvem o problema antes de recorrer ao SOMARPRODUTO e reserve o SOMARPRODUTO para quando essas alternativas não estiverem disponíveis ou quando a lógica exigir multiplicação direta entre matrizes.

Conclusão

O SOMARPRODUTO deixa de ser uma fórmula copiada sem entendimento no momento em que você domina a mecânica do -- (dupla negação), sabe combinar E e OU dentro da mesma expressão e consegue diagnosticar o erro #VALOR! sem tentativa e erro.

A partir daqui, você tem uma ferramenta capaz de resolver cruzamentos que o SOMASES não suporta, sabendo também quando ela não é a opção mais rápida.

O próximo passo natural é entender como LET e LAMBDA reorganizam essa mesma lógica em fórmulas mais legíveis e reutilizáveis, especialmente se sua planilha já roda em Microsoft 365 e você quer ganhar velocidade sem perder a flexibilidade que o SOMARPRODUTO trouxe até aqui.

Sobre o Autor

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solicitar exportação de dados

Use este formulário para solicitar uma cópia de seus dados neste site.

Solicitar a remoção de dados

Use este formulário para solicitar a remoção de seus dados neste site.

Solicitar retificação de dados

Use este formulário para solicitar a retificação de seus dados neste site. Aqui você pode corrigir ou atualizar seus dados, por exemplo.

Solicitar cancelamento de inscrição

Use este formulário para solicitar a cancelamento da inscrição do seu e-mail em nossas listas de e-mail.