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.

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.

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.

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.

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.

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”.

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.

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.