Como comparar listas no Excel

Por Andrés Calil em 20 de Abril/2020 às 17:35

Como sempre, sexta a tarde seu cliente te mandou aquela lista “urgente”. Por outro lado você, como um bom profissional, passa o final de semana inteiro mexendo nas informações e deixa tudo pronto para a semana. Contudo, no primeiro horário da segunda-feira ele te envia uma nova lista dizendo “ops, esqueci de colocar alguns nomes, essa é a lista certa”.

Seja como for, você tem duas opções: jogar fora tudo o que você fez ou comparar as duas planilhas e copiar para a sua apenas as informações novas. A maioria das pessoas compara linha a linha, nome a nome até o final. Se for uma lista de 30 nomes, ok. Se forem 300 é um dia inteiro de trabalho, mas e se forem 3000, o que você faz?

Como bater as listas

Vamos aprender aqui um código que olha um campo de uma lista e identifica se existe um campo idêntico em uma coluna de outra lista. A princípio, no exemplo nós teremos duas tabelas com listas de nomes para comparar, porém nem sempre nomes são a melhor forma de comparar as listas. Para o Excel, Pedro Alvares Cabral é diferente de Pedro A. Cabral. Por outro lado se houverem campos “chave”, como RG ou CPF, você pode arrancar os pontos e espaços e fazer uma comparação melhor, sabendo que a grafia será idêntica.

A planilha do exemplo pode ser baixada clicando aqui.

Ao passo que na primeira aba temos a lista “Original”, na segunda temos a lista “Complemento”. Embora seu cliente a chame de complemento, é a na verdade a mesma lista com mais nomes.

Primeiramente vamos para a lista “Complemento”, selecione a célula C3 e digite a seguinte linha:

=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));””;”DUPLICADO”)

Entendendo o código

Hora entender esses comandos todos, mas não se assuste, não é nenhum bicho de sete cabeças:

PROCV: O comando procv (procura vertical) exige quatro itens:
=SE(ÉERROS(PROCV( A2 ; Original!$A$2:$A$308 ; 1 ; 0 ));””;”DUPLICADO”)

– O primeiro é o campo que você quer comparar. No caso estamos comparando o A2, ou seja, o item da coluna de nomes.
=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));””;”DUPLICADO”)

– O segundo são as células onde o excel vai procurar se existe um valor igual ao A2, em outras palavras, colocamos Original!$A$2:$A$308, ou seja, da aba “Original”, entre as células A2 e A308. Os $ são inseridos para quando você copiar e colar ele continuar procurando entre o 2 e 308.
=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));””;”DUPLICADO”)

– O terceiro é completamente redundante. Assim você precisa colocar o número da coluna do valor que você quer retornar. No caso, como comparamos a coluna Original!A, A=1 então o valor é 1. Se você tivesse comparando, por exemplo, as datas, aqui o valor seria 2 (B=2).
=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));””;”DUPLICADO”)

– Ao contrário do terceiro item que é redundante o quarto é completamente inútil, contudo você precisa colocar esse zero aí. Se você colocar 1 ele muda a forma de varredura para uma que simplesmente não funciona. Não questione a máquina.
=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));””;”DUPLICADO”)

ÉERROS: Em síntese o ProcV retorna um valor apenas se a célula tiver uma correspondente na procura, se não tiver ele DÁ ERRO… (Caramba, Microsoft!). Contudo você pode verificar se dá o erro ou não. Ao passo que se der erro o valor não está nas duas tabelas, se não der erro, o valor está.
=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));””;”DUPLICADO”)

SE: É o velho IF da informática que o office insistiu em traduzir. Na prática significa: Se (der erro; exibe “” (nada) ; caso contrário exibe “duplicado” )
=SE(ÉERROS(PROCV(A2;Original!$A$2:$A$308;1;0));“”;“DUPLICADO”)

Otimizando ainda mais a planilha

Por fim copie a fórmula para as células abaixo até o final da lista.

Além disso você pode substituir a parte final do código para destacar apenas os campos novos, alterando o final do código de:

; “” ; “DUPLICADO” )

para

; “NOVO” ; “” )

Por outro lado também pode, se quiser, manter os dois textos:

; “NOVO” ; “DUPLICADO” )

Por fim eu recomendo uma formatação condicional – clique aqui para saber mais – pintando todos os campos onde estiver escrito “NOVO” de azul.

Antes que eu me esqueça, você pode ordenar a tabela inteira por esse campo variável que ele não vai perder o código.

Como resultado, se essa dica fizer você ganhar algumas horas de sono, descreva sua experiência nos comentários!

 

Mais em Tudo Sobre Nada

© 2020MePixa! - Todos os direitos reservados - Política de Privacidade