Curso
Contar células não vazias parece simples até você tentar. Você escreve uma fórmula rápida COUNTA() e o número não bate com o que aparece na tela. Algumas células parecem vazias, mas são contadas. Outras têm dados, mas ficam de fora.
Neste tutorial, vou passar por todos os métodos para contar células não vazias: COUNTA(), COUNTIF(), COUNTIFS(), SUBTOTAL() e SUMPRODUCT(). Vou mostrar quando usar cada um, que erros evitar e como corrigir os problemas que mais vejo. No fim, você vai saber qual função usar em qualquer situação.
Contar células não vazias usando COUNTA()
COUNTA() é minha função preferida para contar células não vazias. Ela conta tudo que não está completamente vazio: texto, números, datas, erros e até fórmulas que retornam strings vazias.
Como funciona o COUNTA()
A sintaxe é simples:
=COUNTA(value1, [value2], ...)
value1 é o intervalo que você quer contar. Dá para adicionar até 255 argumentos, mas normalmente você vai usar só um intervalo.
Aqui vai um exemplo de um acompanhamento de pesquisa que montei no mês passado. Eu tinha 12 respondentes, mas algumas pessoas pularam perguntas e outras desistiram no meio. Eu precisava saber quantas realmente me deram um e-mail.
=COUNTA(B2:B13)
Isso me deu 10 porque duas pessoas (Ahmed Hassan e Mohamed Ali) deixaram o campo de e-mail em branco.
Também posso contar ao longo de uma linha para ver quão completa está a resposta de cada pessoa:
=COUNTA(B2:F2)
Para Sara Ibrahim, isso retorna 5 porque ela preencheu todos os campos. Para Nour Mahmoud, =COUNTA(B6:F6) retorna apenas 1 já que ela só informou o e-mail e abandonou o resto.
Quando COUNTA() é suficiente
Use COUNTA() quando você precisa de uma contagem simples e seus dados estão limpos. Se toda célula em branco no seu intervalo estiver realmente vazia (nunca tocada, sem fórmulas), COUNTA() funciona perfeitamente.
Onde complica é quando fórmulas retornam "" (strings vazias). Vou explicar esse caso em detalhe depois, na seção "Como o Excel trata células em branco vs. vazias".
Contar células não vazias usando COUNTIF()
COUNTIF() oferece outra forma de contar células não vazias. Em vez de contar tudo que existe, ela conta células que atendem a uma condição. E essa condição pode ser "não vazio".
O critério "<>"
Veja como fica a fórmula:
=COUNTIF(B2:B13,"<>")
A parte "<>" significa "diferente de nada", ou seja, "não vazio". Para a mesma coluna de e-mails de antes, isso me dá 10, igual ao COUNTA().
Por que não usar COUNTIF(range,"*")?
Vejo isso em tutoriais antigos, e é um erro. O curinga "*" só conta texto. Ele ignora completamente números, datas e valores VERDADEIRO/FALSO. Se sua coluna tiver tipos de dados mistos, você vai obter uma contagem errada.
Fique com "<>". Funciona independentemente do tipo de dado.
Quando COUNTIF() é melhor que COUNTA()
A grande vantagem do COUNTIF() é que ele leva naturalmente ao COUNTIFS(). Quando você precisa contar células não vazias que também atendem a outras condições (como um departamento específico ou intervalo de datas), COUNTIFS() está ali pronto. Se você acha que pode adicionar condições depois, comece com COUNTIF() para facilitar a troca.
Para a maioria dos dados, COUNTA() e COUNTIF(range,"<>") dão resultados idênticos. Ambos contam as mesmas coisas, incluindo erros e vazios gerados por fórmula. A diferença principal é a flexibilidade. COUNTIF() é sua ponte para contagem com múltiplos critérios via COUNTIFS().
Contar células não vazias que atendem a condições
Aqui é onde COUNTIF() começa a brilhar. COUNTIFS() permite contar células não vazias que também atendem a outras condições.
COUNTIFS() com lógica de não vazio
Digamos que estou acompanhando treinamentos de funcionários e quero saber quantas pessoas de Sales enviaram uma nota. A fórmula é:
=COUNTIFS(B2:B11,"Sales",E2:E11,"<>")
Isso significa: "Conte as linhas em que o Department é 'Sales' E Score não está vazio". No meu tracker, isso dá 3 porque Mona Sayed está em Sales mas ainda não entregou a nota.
Múltiplas condições
Você pode empilhar até 127 pares de critérios, se precisar. Veja um que conta funcionários marcados como "Complete" que também têm nota:
=COUNTIFS(C2:C11,"Complete",E2:E11,"<>")
Isso me dá 6 porque Mona Sayed concluiu o treinamento, mas nunca enviou a nota.
Outro exemplo. Contando o pessoal de Engineering que tem datas de conclusão:
=COUNTIFS(B2:B11,"Engineering",D2:D11,"<>")
Isso retorna 3 já que o treinamento do Omar Mostafa ainda está pendente e sem data.
O padrão é simples: use "<>" na coluna em que você está verificando valores não vazios e aplique seus filtros específicos nas outras colunas.
Como o Excel trata células "em branco" vs. "vazias"
É aqui que a maioria dos erros de contagem acontece. O Excel enxerga tipos diferentes de "vazio" que parecem iguais na tela.
Células realmente vazias
Uma célula realmente vazia nunca foi tocada ou foi limpa completamente. ISBLANK() retorna TRUE, COUNTA() pula e COUNTBLANK() conta. Esse é o único tipo de célula que todas as funções concordam que está em branco.
Strings vazias geradas por fórmula
Esse pega muita gente. Quando uma fórmula como =IF(A1>60,"Pass","") retorna "", a célula parece vazia, mas na verdade contém um resultado de fórmula. Veja como funções diferentes enxergam isso:
COUNTA()→ Conta (não vazio)COUNTIF(range,"<>")→ Conta (não vazio)COUNTBLANK()→ Conta (vazio)ISBLANK()→ RetornaFALSE
Entendeu o problema? COUNTBLANK() diz que está vazio, mas ISBLANK() diz que não. Isso derruba até quem usa Excel há anos.
O atalho com SUMPRODUCT() + LEN()
Para contar apenas células com conteúdo visível de verdade (sem vazios de fórmula, sem espaços), use:
=SUMPRODUCT(--(LEN(B5:B10)>0))
Isso verifica quantos caracteres cada célula tem. Se LEN() retorna 0, a célula está vazia, ponto. O -- converte VERDADEIRO/FALSO em 1/0, e SUMPRODUCT()` soma tudo.
Para uma contagem ainda mais rígida, que também ignora células com espaços:
=SUMPRODUCT(--(LEN(TRIM(B5:B10))>0))Células com caracteres ocultos
Às vezes uma célula parece vazia, mas tem um espaço (CHAR(32)) ou um espaço sem quebra (CHAR(160)) vindo da web ou de PDFs. COUNTA() conta, LEN() retorna 1 ou mais, e ISBLANK() diz FALSE.
Para capturar isso na sua contagem, use a fórmula mais rígida que mostrei antes: =SUMPRODUCT(--(LEN(TRIM(range))>0)). O TRIM() remove espaços comuns antes de contar. Para espaços sem quebra, limpe os dados antes com =SUBSTITUTE(A1,CHAR(160),"") ou use a função CLEAN().
Contar células não vazias em dados filtrados
Aqui está algo que pega muita gente: você filtra os dados, escreve um COUNTA() e o resultado ainda inclui as linhas ocultas. Isso acontece porque COUNTA() não liga para filtros. Ele conta tudo no intervalo, visível ou não.
SUBTOTAL(): a alternativa que respeita filtros
SUBTOTAL() resolve isso. Ele conta respeitando filtros.
=SUBTOTAL(3,D2:D11)
O 3 diz ao SUBTOTAL() para fazer uma contagem no estilo COUNTA(). A diferença: ele ignora linhas ocultas por filtros.
Números de função: 3 vs. 103
SUBTOTAL() tem dois modos:
- Número de função 3: ignora linhas escondidas por AutoFilter, mas ainda conta linhas ocultas manualmente.
- Número de função 103: ignora TODAS as linhas ocultas (por filtro ou manual).
=SUBTOTAL(3,D2:D11) -- Ignora linhas do AutoFilter
=SUBTOTAL(103,D2:D11) -- Ignora TODAS as linhas ocultas
Na maioria das vezes, 3 é o que você precisa. Use 103 apenas se você ocultou linhas manualmente (botão direito > Ocultar) e quer excluí-las também.
AGGREGATE(): uma alternativa para dados bagunçados
Se seus dados filtrados têm valores de erro, SUBTOTAL() vai retornar erro. AGGREGATE() lida melhor com isso:
=AGGREGATE(3,7,D2:D11)
O 3 é o número da função (COUNTA()), e 7 diz para ignorar linhas ocultas e erros. É a opção mais segura para dados bagunçados, mas a maioria não vai precisar.
Contando células não vazias em Tabelas do Excel
Se seus dados estão em uma Tabela do Excel (vá em Inserir > Tabela ou pressione Ctrl+T), você pode usar referências estruturadas em vez de endereços de célula. Isso deixa as fórmulas mais claras e elas se atualizam automaticamente quando a tabela cresce.
Referências estruturadas com COUNTA()
Em vez de escrever =COUNTA(C2:C9), você escreve:
=COUNTA(TaskTracker[Assigned To])
Isso conta as células não vazias na coluna Assigned To da minha tabela TaskTracker. A referência ignora o cabeçalho automaticamente e se expande quando adiciono novas linhas.
Combinando COUNTIFS() com referências estruturadas
COUNTIFS() funciona muito bem com tabelas:
=COUNTIFS(TaskTracker[Status],"Done",TaskTracker[Completion Date],"<>")
Isso conta tarefas marcadas como "Done" que têm data de conclusão. No meu tracker, isso dá 4, já que todas as tarefas concluídas têm datas.
Por que tabelas são melhores para contar
Duas coisas tornam as tabelas úteis. Primeiro, referências estruturadas ignoram o cabeçalho automaticamente, então você não precisa se preocupar em começar da linha 2. Segundo, quando você adiciona uma nova linha, toda fórmula que usa referências estruturadas já inclui os novos dados. Nada de atualizar intervalos manualmente.
Isso é perfeito para dados que crescem com o tempo, como logs, trackers ou dados que você importa com frequência.
Problemas comuns ao contar células não vazias
A contagem está maior do que o esperado
O que acontece: COUNTA() mostra 6, mas você só vê 4 células com dados.
Por quê: duas células têm fórmulas que retornam "". Como eu disse, parecem vazias, mas tecnicamente não são.
Como corrigir: use =SUMPRODUCT(--(LEN(range)>0)) em vez de COUNTA(). Isso só conta células com conteúdo visível, ignorando vazios gerados por fórmula.
Espaços ocultos atrapalham a contagem
O que acontece: uma célula parece vazia, mas COUNTA() conta e ISBLANK() retorna FALSE.
Por quê: a célula tem espaços, provavelmente por copiar dados de um site ou outro arquivo.
Como corrigir: confira com =LEN(A1). Se retornar mais que 0 quando a célula parece vazia, há caracteres ocultos. Limpe seus dados primeiro com =TRIM(A1), ou use a fórmula mais rígida que mostrei: =SUMPRODUCT(--(LEN(TRIM(range))>0)).
Valores de erro entram na contagem sem você querer
O que acontece: você quer contar células não vazias, mas erros como #DIV/0! ou #N/A entram na conta.
Por quê: COUNTA() e COUNTIF(range,"<>") tratam erros como não vazios.
Como corrigir: se seus dados também têm filtros, use =AGGREGATE(3,7,range) como mencionei na seção de dados filtrados. O 7 ignora linhas ocultas e erros. Para dados sem filtro, use =SUMPRODUCT(--(LEN(IFERROR(range,""))>0)).
A contagem não atualiza após filtrar
O que acontece: você aplica filtro e COUNTA() continua mostrando a contagem sem filtro.
Por quê: COUNTA() ignora totalmente filtros.
Como corrigir: use =SUBTOTAL(3,range) como mostrei na seção de dados filtrados. Ele se ajusta automaticamente ao que está visível.
Boas práticas para contar células não vazias
Depois de lidar com esses perrengues mais vezes do que eu gostaria de admitir, hoje eu faço assim:
-
Comece com
COUNTA()para conjuntos simples e limpos. É rápido e direto. -
Use
COUNTIF(range,"<>")se você pode adicionar condições depois. Ele se conecta naturalmente aoCOUNTIFS()para contagem com múltiplos critérios. -
Teste vazios de fórmula antes de confiar na contagem. Verifique algumas células "vazias" com
=LEN(cell). Se voltar diferente de 0, troque para a abordagemSUMPRODUCT()+LEN(). -
Use
SUBTOTAL(3,range)para dados filtrados. É a única função de contagem que respeita filtros. -
Limpe dados importados primeiro. Rode
TRIM()e verifiqueCHAR(160)em dados vindos da web ou de outras fontes. -
Use Tabelas do Excel para dados que crescem. Referências estruturadas se atualizam automaticamente quando você adiciona linhas.
-
Documente fórmulas complexas. Se estiver usando
SUMPRODUCT(--(LEN(TRIM(range))>0)), deixe um comentário explicando o porquê. O seu eu do futuro agradece.
Conclusão
O Excel oferece várias formas de contar células não vazias, e a certa depende do seu cenário. COUNTA() funciona para a maioria dos casos. COUNTIF() e COUNTIFS() permitem adicionar condições. SUBTOTAL() respeita filtros. E SUMPRODUCT() com LEN() é o seu plano B quando fórmulas criam vazios invisíveis.
O segredo não é decorar fórmulas. É entender o que o Excel considera "vazio". Uma fórmula que retorna "" parece vazia, mas não é. Um espaço é invisível, mas entra na conta. Depois que você entende essas diferenças, não vai mais se surpreender com contagens erradas.
Se quiser continuar desenvolvendo suas habilidades em Excel, confira nosso curso Data Analysis in Excel. Ele cobre fórmulas, tabelas dinâmicas e limpeza de dados que se encaixam perfeitamente com o que vimos aqui.
Sou engenheiro de dados e criador de comunidades que trabalha com pipelines de dados, nuvem e ferramentas de IA, além de escrever tutoriais práticos e de alto impacto para o DataCamp e desenvolvedores iniciantes.
FAQs
Qual é a forma mais rápida de contar células não vazias no Excel?
Basta selecionar o intervalo e olhar a barra de status no rodapé do Excel. Ela mostra "Contagem" automaticamente, sem fórmula. Ótimo para uma checagem rápida. Se você precisa da contagem em uma célula para cálculos, use =COUNTA(range).
Por que COUNTA() conta células que parecem vazias?
Essas células provavelmente têm fórmulas retornando "" ou espaços ocultos de copiar/colar. Use =LEN(A1) para verificar. Se retornar mais que 0, a célula não está realmente vazia. A correção é =SUMPRODUCT(--(LEN(range)>0)) que só conta células com conteúdo visível.
O que acontece se eu usar COUNTA() em dados filtrados?
COUNTA() ignora filtros e conta tudo, incluindo linhas ocultas. Use =SUBTOTAL(3,range). Ele ignora automaticamente as linhas filtradas. Isso é especialmente útil em relatórios onde os usuários aplicam seus próprios filtros.
COUNTIF() consegue contar células não vazias mais rápido que COUNTA()?
COUNTA() é mais simples para contagens básicas de não vazios. Use COUNTIF(range,"<>") quando você precisar de lógica com condições ou quando planeja estender a fórmula depois com COUNTIFS(). A diferença de desempenho é irrelevante para conjuntos típicos.
Como excluo vazios gerados por fórmula da minha contagem?
Use =SUMPRODUCT(--(LEN(TRIM(range))>0)). Isso conta apenas células com caracteres visíveis de fato. A parte TRIM() também remove espaços ocultos, tornando-o um método bem robusto para dados bagunçados com vazios de fórmula e espaços extras.



