O CONT.SES é ótimo para contagens simples com critérios fixos. Mas cedo ou tarde você encontra uma situação onde precisa contar registros por mês sem especificar cada data manualmente, ou contar células onde o texto tem mais de determinado número de caracteres, ou contar somente os valores que estão acima da média do próprio intervalo. Para tudo isso, o CONT.SES levanta as mãos e diz que não consegue. É exatamente nesses momentos que o SOMARPRODUTO entra como substituto poderoso e flexível. Neste artigo iremos mostrar como usar o SOMARPRODUTO no Excel para fazer contagens com critérios avançados que o CONT.SES simplesmente não consegue processar.
As limitações do CONT.SES que o SOMARPRODUTO supera
O CONT.SES aceita critérios como: um valor exato (“São Paulo”), uma comparação com um valor fixo (“>1000”), um texto com curinga (“SP*”). O que ele não aceita é usar funções como critérios — você não pode escrever CONT.SES(A:A; MÊS(A:A)=3) porque o CONT.SES não sabe o que fazer com a função MÊS() dentro do critério. Da mesma forma, não aceita É.NÚM, É.TEXTO, DIA.DA.SEMANA, ESQUERDA, NÚM.CARACT ou qualquer outra função que retorne um resultado para cada célula do intervalo avaliado. Para qualquer critério baseado em função, o SOMARPRODUTO é a solução.
Outra limitação crítica do CONT.SES é a lógica OU entre critérios. Quando você precisa contar linhas onde A é “São Paulo” OU A é “Rio de Janeiro”, o CONT.SES não tem uma sintaxe direta para isso. A solução com CONT.SES é somar duas contagens separadas: CONT.SES(A:A;”São Paulo”)+CONT.SES(A:A;”Rio de Janeiro”). Isso funciona, mas exige uma fórmula por critério. Com SOMARPRODUTO, a lógica OU fica compacta em uma única fórmula: =SOMARPRODUTO(((A2:A100=”São Paulo”)+(A2:A100=”Rio de Janeiro”))>0). Mais elegante e muito mais fácil de expandir quando você precisa adicionar mais cidades à condição.
A terceira limitação é a incapacidade de comparar células com outras células do mesmo intervalo — por exemplo, contar células que são maiores que a média do próprio intervalo. Com CONT.SES: impossível diretamente. Com SOMARPRODUTO: =SOMARPRODUTO(–(A2:A100>MÉDIA(A2:A100))). O MÉDIA(A2:A100) calcula um único número (a média do intervalo), a comparação >MÉDIA verifica cada célula individualmente contra esse número e o SOMARPRODUTO conta as que são maiores. O duplo traço converte VERDADEIRO/FALSO em 1/0 para garantir a conversão correta em qualquer versão do Excel.
Contando por mês, trimestre e período sem especificar datas exatas
A contagem por período é onde o SOMARPRODUTO mais se destaca como substituto do CONT.SES. Para contar quantos registros ocorreram no mês de março de qualquer ano: =SOMARPRODUTO(–(MÊS(A2:A100)=3)). O MÊS() extrai o número do mês de cada data, a comparação =3 verifica se é março, o duplo traço converte em 1/0 e o SOMARPRODUTO soma os 1s. Para especificar também o ano: =SOMARPRODUTO(–(MÊS(A2:A100)=3)*–(ANO(A2:A100)=2025)). Agora conta apenas os registros de março de 2025, independentemente do dia específico.
Para contagem por trimestre: =SOMARPRODUTO(–(INT((MÊS(A2:A100)-1)/3)+1=2)). A fórmula INT((MÊS-1)/3)+1 calcula o trimestre de cada data — trimestre 1 para janeiro a março, trimestre 2 para abril a junho, e assim por diante. A comparação =2 verifica se é o segundo trimestre. Para o terceiro trimestre: substitua o 2 por 3. Essa fórmula de trimestre é impossível de replicar diretamente no CONT.SES porque envolve um cálculo intermediário com INT e MÊS.
Para contar registros nos últimos 30 dias a partir de hoje, sem precisar especificar uma data fixa: =SOMARPRODUTO(–(A2:A100>=HOJE()-30)*–(A2:A100<=HOJE())). O HOJE() retorna sempre a data atual, então a fórmula conta automaticamente os registros dos últimos 30 dias a cada vez que a planilha é aberta ou recalculada. Essa janela deslizante de 30 dias seria muito mais trabalhosa de implementar com CONT.SES, que exigiria atualizar as datas de limite manualmente toda vez.
Contando por padrão de texto com SOMARPRODUTO
Para contagens baseadas em características do texto — comprimento, prefixo, sufixo, presença de uma palavra — o SOMARPRODUTO com funções de texto é indispensável. Para contar células com mais de 10 caracteres: =SOMARPRODUTO(–(NÚM.CARACT(A2:A100)>10)). O NÚM.CARACT conta os caracteres de cada célula, a comparação >10 filtra as mais longas e o SOMARPRODUTO conta. Isso inclui automaticamente apenas as células com texto — células numéricas ou vazias têm NÚM.CARACT igual a 1 ou 0 e não passam pela condição >10.
Para contar células que começam com um prefixo específico (por exemplo, códigos que começam com “BR”): =SOMARPRODUTO(–(ESQUERDA(A2:A100;2)=”BR”)). Isso é parecido com o curinga “BR*” do CONT.SES, mas com a vantagem de que o ESQUERDA pode ser combinado com outras condições em uma única fórmula de SOMARPRODUTO. Para contar células que começam com “BR” E têm exatamente 6 caracteres no total: =SOMARPRODUTO(–(ESQUERDA(A2:A100;2)=”BR”)*–(NÚM.CARACT(A2:A100)=6)). Essa combinação de prefixo e comprimento não é possível em uma única fórmula CONT.SES.
Para contar células que contêm uma palavra específica em qualquer posição do texto: =SOMARPRODUTO(–(NÚM.CARACT(A2:A100)-NÚM.CARACT(SUBSTITUIR(MAIÚSCULA(A2:A100);”URGENTE”;””)))>0). A lógica verifica se o texto sem a palavra “URGENTE” é menor do que o texto original — se for, a palavra existe. O duplo traço converte em 1/0 e o SOMARPRODUTO conta. Esse padrão de verificação de presença de palavra com SUBSTITUIR e NÚM.CARACT funciona para qualquer palavra, independentemente de maiúsculas ou minúsculas graças ao MAIÚSCULA().
SOMARPRODUTO para contagens com critério de posição relativa e ranking
Uma das aplicações mais sofisticadas do SOMARPRODUTO para contagem é determinar a posição de um valor em um ranking ou verificar se um valor é o maior dentro de um grupo. Para verificar se o valor em B2 é o maior do seu grupo (definido pela categoria em A2): =SOMARPRODUTO(–(B$2:B$100=MÁXIMO(SE(A$2:A$100=A2;B$2:B$100)))*(A$2:A$100=A2))=1. Essa fórmula encontra o máximo do grupo e verifica se B2 é igual a esse máximo. Para contar quantos itens de cada categoria têm valor acima da mediana do grupo: ainda mais sofisticado, mas com a mesma estrutura de SOMARPRODUTO com condições compostas.
Para contar quantas vezes cada valor aparece em um intervalo (equivalente ao CONT.SE mas que pode ser combinado com outras condições): =SOMARPRODUTO(–(A$2:A$100=A2)). Com cifrão em A$2:A$100 e sem cifrão em A2, ao arrastar para baixo cada linha calcula quantas vezes o valor daquela linha aparece no intervalo inteiro. Valores únicos retornam 1, valores duplicados retornam 2 ou mais. Filtrar as linhas onde o resultado é igual a 1 (com uma segunda coluna de verificação) identifica os valores únicos — similar ao que ÚNICO faz no Excel 365, mas disponível em qualquer versão do Excel.
Se você curtiu esse artigo onde mostramos como usar o SOMARPRODUTO no Excel como substituto do CONT.SES com critérios avançados, 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.