Identificar dados repetidos em uma lista

Este é mais um artigo que se originou na dúvida de um dos visitantes do site, que recebemos por e-mail. O nome dele é Guilherme, e só Guilherme mesmo por que não informou o sobrenome, mas tudo bem, isso não interfere em nada.

Usando a lista abaixo como exemplo, a ideia é conseguir extrair dessa lista todos os itens que se encontram repetidos.

Listar dados repetidos em uma coluna (1)

Para resolver este problema iremos usar um fórmula matricial, clique aqui para saber mais sobre elas.

A fórmula que utilizaremos é:

=SEERRO(ÍNDICE($B$2:$B$19;CORRESP(0;CONT.SE(D1:$D$1;$B$2:$B$19)+SE(CONT.SE($B$2:$B$19;$B$2:$B$19)>1;0;1);0));"")

Ela foi incluída na célula D2 e arrastada até a célula D10. Conforme a imagem mostra.

Listar dados repetidos em uma coluna (2)

Agora vamos entender parte a parte dessa fórmula.


Função SE + CONT.SE

Listar dados repetidos em uma coluna (3)

Começando pela função CONT.SE por se tratar de um fórmula matricial o primeiro argumento é testado célula a célula dentro do intervalo do segundo argumento, que no caso é o mesmo intervalo, $B$2:$B$19, em outras palavras primeiro será contado quantas vezes o dado contido na célula B2 se repete no intervalo $B$2:$B$19 o resultado é passado para a função SE, assim o mesmo é feito com o dado contido na célula B3, depois com a B4 e assim por diante, até a B19.

Na função SE cada um dos resultados passados pela função CONT.SE é testado, caso o dado se repita pelo menos uma vez na lista, então é retornado o valor 0, caso o item não se repita nenhuma vez, então é passado o valor 1. Desta forma a função SE cria uma matriz com vários zeros e uns, como a imagem abaixo mostra.

Listar dados repetidos em uma coluna (4)


2º Função CONT.SE

Listar dados repetidos em uma coluna (5)

Esta função fará algo semelhante ao que as outras duas fizeram, ou seja, uma lista cheio de zeros e uns. A diferença que o intervalo de teste é a coluna onde estão os resultados, mas não toda ela, conforme a fórmula matricial é arrastada para baixo o intervalo aumenta. Esta função está aí somente para impedir que um dado que já foi identificado como repetido, apareça mais de uma vez na lista de resultados, vai ficar mais fácil de entender logo a seguir.


Função CORRESP

Listar dados repetidos em uma coluna (6)

Esta já engloba o resultado das duas anteriores e soma os dois. Então, esta função, em linhas gerais busca o valor do primeiro argumento, no intervalo contido no segundo argumento. No primeiro argumento temos o número zero e no segundo argumento temos a soma do resultado das funções que explicamos antes. Mas lembre que estas duas funções retornam uma matriz de zeros e uns e quando somamos estes dois intervalos, na verdade estamos somando cada item da matriz com o item que está na mesma posição na outra matriz. Então, caso o resultado da função CONT.SE seja {1,0,0} e o resultado da função SE seja {0,1,0} a soma dos dois é {1,1,0} e como a função CORRESP está procurando pelo zero, neste exemplo ele só o encontraria na terceira posição.  Na prática podemos ter vários ou nenhum número zero no resultado da soma das duas funções explicadas anteriormente. A soma das duas funções só é feita para garantir que somente os dados repetidos que ainda não foram identificados sejam buscado da lista original.


Função ÍNDICE

Listar dados repetidos em uma coluna (7)

O resultado da função CORRESP entra na função ÍNDICE indicando em qual posição da lista contida no intervalo $B$2:$B$19 está o próximo dado que se repete, e que portanto deve ser trazido pela função ÍNDICE. Ou seja, após identificar dentro da matriz resultante da soma de duas matrizes, qual era o próximo número zero, a função CORRESP indica à ÍNDICE esta posição, que então é buscada na lista de dados.


Função SEERRO

Esta não entra no cálculo em momento algum, ela só previne que, caso aconteça um erro nas demais funções ao invés de aparecer o resultado de erro, aparece a célula vazia, que é representada pelas aspas duplas “”.


IMPORTANTE – PARA QUE TUDO FUNCIONE

Como dito, o que foi ensinado aqui se trata de uma fórmula matricial e é necessário informar ao Excel isso, pois ele não identifica isso automaticamente. Ao terminar de escrever sua fórmula ao invés de apertar apenas tecla ENTER para concluir, aperte CTRL + SHIFT + ENTER. Só assim a fórmula irá funcionar. Depois arraste (não copie, arraste) a fórmula para baixo para buscar os demais dados. Se você fizer diferente disso, não irá funcionar, você notará que na barra de fórmulas a sua fórmula aparecerá entre chaves {Sua_fórmula} indicando que é uma fórmula matricial. Para saber um pouco mais de fórmulas matriciais clique aqui.

Espero ter ajudado. Qualquer dúvida deixe seu comentário logo abaixo.


Acompanhe o Função Excel
facebook-logo youtube-logo googleplus-logo twitter-logo

E aí, o que achou?