Menu

Contar valores únicos no Excel: fórmulas com ÚNICO e CONT.SE

=CONT.VALORES(ÚNICO(A2:A9)) conta quantos valores diferentes há em A2:A9. No Excel antigo use =SOMARPRODUTO(1/CONT.SE(A2:A9;A2:A9)). Conte valores que aparecem uma vez, com uma condição e sem as células vazias.

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

=CONT.VALORES(ÚNICO(A2:A9)) conta quantos valores diferentes há em A2:A9. A ÚNICO (UNIQUE em inglês) retorna cada valor uma vez, e a CONT.VALORES (COUNTA em inglês) conta essa lista. Ela precisa do Excel 2021 ou do Microsoft 365; as versões antigas estão mais abaixo. A tabela mostra as fórmulas em inglês, com vírgulas, e também aceita a forma em português, com ponto e vírgula.

Clientes diferentes
D2
ABCD
1CustomerUnique listCount
2AnaAna5
3BenBen
4AnaCara
5CaraDan
6BenEva
7Dan
8Ana
9Eva
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CONT.VALORES(ÚNICO(A2:A9))

Oito pedidos vieram de cinco clientes. C2 despeja a lista de nomes da ÚNICO para você ver o que está sendo contado, e D2 a conta sem precisar da lista na planilha. Mude A9 para Ana e a contagem cai para 4; digite um nome novo e ela sobe.

A ÚNICO ignora maiúsculas, então Ana e ana contam como um cliente só.

Contar valores únicos no Excel antigo

O Excel 2019 e anteriores não têm a ÚNICO. A fórmula clássica é:

=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))

No Excel em português: =SOMARPRODUTO(1/CONT.SE(A2:A9;A2:A9)).

O CONT.SE com o intervalo inteiro como critério retorna, para cada linha, quantas vezes o valor dessa linha aparece. Um nome que aparece 3 vezes recebe 3 em cada uma das suas linhas, então 1/3 é somado três vezes e o nome soma exatamente 1. A coluna B mostra a contagem de cada linha e a coluna C a fração.

Como funciona o 1/CONT.SE
E2
ABCDE
1CustomerTimes1/TimesCount
2Ana30.335
3Ben20.505.00
4Ana30.33
5Cara11.00
6Ben20.50
7Dan11.00
8Ana30.33
9Eva11.00
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =SOMARPRODUTO(1/CONT.SE(A2:A9;A2:A9))

As três linhas de Ana somam 0.33 cada, as duas de Ben 0.50 cada, e os três nomes que aparecem uma vez somam 1 cada: 5 no total, o mesmo que a SOMA da coluna auxiliar. Com dezenas de milhares de linhas essa fórmula fica lenta, porque o CONT.SE percorre o intervalo inteiro uma vez por linha; a ÚNICO não tem esse custo.

Distintos ou únicos: valores que aparecem uma só vez

"Único" é usado para duas contagens diferentes. A de cima conta valores distintos: cada nome uma vez. A outra conta os valores que aparecem exatamente uma vez, como clientes que fizeram um único pedido. A ÚNICO faz isso com o terceiro argumento, exactly_once, definido como VERDADEIRO.

Distintos e exatamente uma vez
D3
ABCD
1CustomerCountResult
2AnaDistinct5
3BenExactly once3
4AnaExactly once, older Excel3
5Cara
6Ben
7Dan
8Ana
9Eva
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CONT.VALORES(ÚNICO(A2:A9;;VERDADEIRO))

São cinco clientes distintos, mas só três deles, Cara, Dan e Eva, fizeram um pedido. A versão para o Excel antigo conta as linhas cujo CONT.SE é exatamente 1. Se todos os valores se repetem, a ÚNICO com exactly_once retorna #CALC! e a CONT.VALORES conta esse erro como 1; a versão com SOMARPRODUTO dá 0.

Contar valores únicos com uma condição

Para contar os clientes diferentes de uma região, filtre as linhas primeiro e depois conte o que sobrou. A FILTRO (FILTER em inglês) mantém as linhas de North e a ÚNICO tira as repetições.

Clientes diferentes por região
E2
ABCDE
1CustomerRegionRegionCustomers
2AnaNorthNorth3
3BenSouthSouth3
4AnaNorthNorth, older Excel3
5CaraNorth
6BenNorth
7DanSouth
8AnaNorth
9EvaSouth
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CONT.VALORES(ÚNICO(FILTRO(A2:A9;B2:B9=D2)))

North tem cinco pedidos de três clientes: Ana, Cara e Ben. E3 conta South do mesmo jeito. E4 é a versão para o Excel 2019 e anteriores: o CONT.SES conta cada par de cliente e região, e a condição mantém só as frações de North.

Se nenhuma linha bate, a FILTRO retorna #CALC!, e a CONT.VALORES conta esse erro como um valor: digite West em D2 e E2 mostra 1, não 0. Envolver a fórmula na SEERRO não resolve, porque a CONT.VALORES não retorna erro. Conte as linhas do resultado, o que repassa o erro: =SEERRO(LINS(ÚNICO(FILTRO(A2:A9;B2:B9="West")));0) retorna 0.

Contar valores únicos ignorando as células vazias

Uma célula vazia no intervalo vira mais um "valor". A ÚNICO a retorna como 0 e a CONT.VALORES conta esse 0, então para Ana, uma célula vazia, Ben, Ana, uma célula vazia, Cara e Ben, o Excel dá:

=COUNTA(UNIQUE(A2:A8))    4   three names plus the 0 for the empty cells

Na fórmula antiga, uma linha vazia faz o CONT.SE retornar 0, então 1/0 dá #DIV/0!. Tire as células vazias antes:

Um intervalo com buracos
D2
ABCD
1CustomerFormulaCount
2AnaSkip blanks3
3Older Excel3
4Ben
5Ana
6
7Cara
8Ben
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CONT.VALORES(ÚNICO(FILTRO(A2:A8;A2:A8<>"")))

As duas fórmulas contam os três clientes. A FILTRO com A2:A8<>"" tira as células vazias antes que a ÚNICO as veja. Na fórmula antiga, A2:A8&"" transforma cada célula vazia em um texto vazio para que o CONT.SE nunca retorne 0, e (A2:A8<>"") dá peso 0 a essas linhas.

Prática: contar os produtos

Sua vez: quantos produtos?
E2
ABCDE
1OrderProductCountResult
21001AppleProducts
31002Pear
41003Apple
51004Plum
61005Pear
71006Apple
81007Plum
91008Fig
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Conte quantos produtos diferentes aparecem em B2:B9. Escreva a fórmula em E2.

Qual fórmula para o seu Excel

ContagemExcel 365 / 2021Excel 2019 e anteriores
Valores distintos=CONT.VALORES(ÚNICO(A2:A9))=SOMARPRODUTO(1/CONT.SE(A2:A9;A2:A9))
Valores que aparecem uma vez=CONT.VALORES(ÚNICO(A2:A9;;VERDADEIRO))=SOMARPRODUTO(--(CONT.SE(A2:A9;A2:A9)=1))
Distintos, com uma condição=CONT.VALORES(ÚNICO(FILTRO(A2:A9;B2:B9="North")))=SOMARPRODUTO((B2:B9="North")/CONT.SES(A2:A9;A2:A9;B2:B9;B2:B9))
Distintos, sem as células vazias=CONT.VALORES(ÚNICO(FILTRO(A2:A9;A2:A9<>"")))=SOMARPRODUTO((A2:A9<>"")/CONT.SE(A2:A9;A2:A9&""))

Em uma tabela dinâmica, o resumo Contagem Distinta faz o mesmo trabalho sem fórmula, mas só quando a tabela dinâmica é criada com "Adicionar estes dados ao Modelo de Dados" marcado. Para apagar as repetições em vez de contá-las, veja remover duplicados.

Perguntas frequentes

Como contar valores únicos no Excel?

No Excel 365 ou 2021, use =CONT.VALORES(ÚNICO(A2:A9)): a ÚNICO lista cada valor uma vez e a CONT.VALORES conta a lista. Nas versões mais antigas, use =SOMARPRODUTO(1/CONT.SE(A2:A9;A2:A9)).

Como contar os valores que aparecem só uma vez?

Defina o terceiro argumento da ÚNICO, exactly_once, como VERDADEIRO: =CONT.VALORES(ÚNICO(A2:A9;;VERDADEIRO)). Para Ana, Ana, Ben o resultado é 1, já que só Ben aparece uma vez. No Excel 2019 e anteriores, use =SOMARPRODUTO(--(CONT.SE(A2:A9;A2:A9)=1)).

Como contar valores únicos com uma condição?

Filtre primeiro e conte depois: =CONT.VALORES(ÚNICO(FILTRO(A2:A9;B2:B9="North"))) conta os clientes diferentes nas linhas de North. Se nenhuma linha bater, a CONT.VALORES conta o erro #CALC! da FILTRO como 1, então, quando isso pode acontecer, use =SEERRO(LINS(ÚNICO(FILTRO(A2:A9;B2:B9="North")));0).

Como contar valores únicos ignorando as células vazias?

Tire as células vazias antes da ÚNICO: =CONT.VALORES(ÚNICO(FILTRO(A2:A9;A2:A9<>""))). No Excel antigo, =SOMARPRODUTO((A2:A9<>"")/CONT.SE(A2:A9;A2:A9&"")) as ignora.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR