Para comparar duas colunas linha a linha, digite =B2=C2 ao lado da primeira linha e arraste para baixo: VERDADEIRO significa que as duas células batem, FALSO significa que são diferentes. Para achar os valores de uma coluna que aparecem em qualquer lugar de outra coluna, em qualquer ordem, use =CONT.SE($B$2:$B$8;A2)>0 (COUNTIF em inglês). Você também pode digitar as fórmulas em português na tabela, com ponto e vírgula.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Product | Old | New | Same? | Status |
| 2 | Apple | $1.20 | $1.20 | TRUE | Same |
| 3 | Pear | $1.50 | $1.60 | FALSE | Changed |
| 4 | Carrot | $0.80 | $0.80 | TRUE | Same |
| 5 | Bread | $2.40 | $2.20 | FALSE | Changed |
| 6 | Milk | $1.10 | $1.10 | TRUE | Same |
| 7 | Cheese | $4.50 | $4.90 | FALSE | Changed |
=B2=C2D3, D5 e D7 são FALSO, e a regra de formatação condicional =$B2<>$C2 pinta essas três linhas. A coluna E mostra o mesmo teste com palavras em vez de VERDADEIRO e FALSO. Mude C3 para 1.5 e a linha 3 passa a Same.
Comparar duas colunas com a SE
=B2=C2 retorna VERDADEIRO ou FALSO. Envolva na SE (IF em inglês) para escolher as palavras: =SE(B2=C2;"Same";"Changed"), como na coluna E acima. Para deixar as linhas iguais em branco e marcar só as diferenças, use =SE(B2<>C2;"Changed";""). Para mostrar quanto um número mudou, subtraia em vez de comparar: =C2-B2.
Para contar as diferenças sem coluna auxiliar, compare os dois intervalos dentro da SOMARPRODUTO: =SOMARPRODUTO(--(B2:B7<>C2:C7)) retorna 3 para a tabela acima.
Sem fórmula: selecione B2:C7 com B2 como célula ativa, vá em Página Inicial > Localizar e Selecionar > Ir para Especial, escolha Diferenças por linha e clique em OK (no Windows, Ctrl+\ faz o mesmo). O Excel seleciona C3, C5 e C7, as células que diferem da coluna B na mesma linha; dê a elas uma cor de preenchimento para marcar.
Comparação que diferencia maiúsculas com EXATO
A comparação com = ignora maiúsculas e minúsculas: ab12 é igual a AB12. Quando as maiúsculas importam (códigos de produto, senhas, IDs), use EXATO(A2;B2) (EXACT em inglês), que só é VERDADEIRO quando os dois textos são idênticos caractere por caractere.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Code | Entered | Equal? | EXACT |
| 2 | AB12 | AB12 | TRUE | TRUE |
| 3 | CD34 | cd34 | TRUE | FALSE |
| 4 | EF56 | EF56 | TRUE | TRUE |
| 5 | GH78 | Gh78 | TRUE | FALSE |
=A2=B2A coluna C, a comparação com =, diz que as quatro batem. A EXATO diz que as linhas 3 e 5 são diferentes, porque cd34 e Gh78 usam letras minúsculas.
Achar valores de uma coluna que faltam na outra
Quando as duas listas não estão na mesma ordem, compare cada valor com a outra coluna inteira. CONT.SE($B$2:$B$8;A2) conta quantas vezes A2 aparece em B2:B8, então >0 significa "encontrado" e =0 significa "faltando". Os $ mantêm fixo o intervalo procurado enquanto a fórmula é arrastada para baixo.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | January | February | In February? | With MATCH |
| 2 | Ana | Dan | TRUE | TRUE |
| 3 | Ben | Fay | TRUE | TRUE |
| 4 | Cara | Ana | FALSE | FALSE |
| 5 | Dan | Gus | TRUE | TRUE |
| 6 | Eve | Hal | FALSE | FALSE |
| 7 | Fay | Ivy | TRUE | TRUE |
| 8 | Gus | Ben | TRUE | TRUE |
=CONT.SE($B$2:$B$8;A2)>0Cara e Eve são FALSO: compraram em janeiro e não em fevereiro. A CORRESP (MATCH em inglês) dá a mesma resposta por outro caminho: CORRESP(A2;$B$2:$B$8;0) retorna a posição de A2 na coluna B, ou #N/D (#N/A em inglês; a tabela mostra os nomes de erro em inglês) quando ele não está lá, e a ÉNÚM transforma isso em VERDADEIRO ou FALSO. Para conferir o outro sentido (clientes novos em fevereiro), coloque a mesma fórmula ao lado da coluna B com os intervalos trocados: =CONT.SE($A$2:$A$8;B2)>0.
Comparar duas listas e retornar um valor correspondente
Muitas vezes a pergunta não é só "está lá", mas "o valor do lado bate". Aqui, faturas são comparadas com uma lista de pagamentos em outra ordem: a PROCX encontra cada fatura nos pagamentos, retorna o que foi pago, e a coluna D compara com o valor da fatura.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Invoice | Amount | Paid | Match? | Payment for | Paid | |
| 2 | INV-101 | 120 | 120 | TRUE | INV-103 | 240 | |
| 3 | INV-102 | 85 | Not paid | FALSE | INV-101 | 120 | |
| 4 | INV-103 | 240 | 240 | TRUE | INV-105 | 140 | |
| 5 | INV-104 | 60 | 60 | TRUE | INV-106 | 95 | |
| 6 | INV-105 | 150 | 140 | FALSE | INV-104 | 60 | |
| 7 | INV-106 | 95 | 95 | TRUE |
=PROCX(A2;$F$2:$F$6;$G$2:$G$6;"Not paid")A INV-102 não tem pagamento, então C3 diz Not paid. A INV-105 foi paga com 140 em vez de 150, então D6 também é FALSO. O último argumento da PROCX, "Not paid", substitui o #N/D que um valor faltando daria. A PROCX precisa do Excel 2021 ou do Microsoft 365; no Excel 2019, use =SEERRO(PROCV(A2;$F$2:$G$6;2;FALSO);"Not paid"). A página da PROCX tem os outros argumentos.
Listar os valores que faltam na outra coluna
Em vez de uma coluna de VERDADEIRO/FALSO, a FILTRO pode retornar os valores que faltam como uma lista. CONT.SE(B2:B8;A2:A8), com um intervalo como segundo argumento, conta todos os valores de A de uma vez, e a FILTRO fica com os que têm contagem 0.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | January | February | Not in February | |
| 2 | Ana | Dan | ||
| 3 | Ben | Fay | ||
| 4 | Cara | Ana | ||
| 5 | Dan | Gus | ||
| 6 | Eve | Hal | ||
| 7 | Fay | Ivy | ||
| 8 | Gus | Ben |
Sua vez: Em D2, liste os clientes de janeiro que não estão na lista de fevereiro.
A resposta despeja Cara e Eve. =FILTRO(A2:A8;É.NÃO.DISP(CORRESP(A2:A8;B2:B8;0))) também funciona. Se todos os clientes voltaram, a FILTRO retorna #CALC!; acrescente um terceiro argumento para esse caso: =FILTRO(A2:A8;CONT.SE(B2:B8;A2:A8)=0;"None"). A FILTRO precisa do Excel 2021 ou do Microsoft 365. Veja FILTRO para mais condições.
Destacar as diferenças entre duas colunas
As fórmulas acima também funcionam como regras de formatação condicional. Selecione a primeira lista, vá em Página Inicial > Formatação Condicional > Nova Regra > Usar uma fórmula para determinar quais células devem ser formatadas e digite a fórmula para a primeira célula dela. Aqui A2:A8 recebe =CONT.SE($B$2:$B$8;A2)=0 e B2:B8 recebe =CONT.SE($A$2:$A$8;B2)=0: todo nome que está em só uma das listas fica pintado.
| A | B | |
|---|---|---|
| 1 | January | February |
| 2 | Ana | Dan |
| 3 | Ben | Fay |
| 4 | Cara | Ana |
| 5 | Dan | Gus |
| 6 | Eve | Hal |
| 7 | Fay | Ivy |
| 8 | Gus | Ben |
Cara e Eve ficam pintadas em janeiro, Hal e Ivy em fevereiro. Para duas colunas que deveriam bater linha a linha, a regra é =$A2<>$B2 nas duas colunas, como na primeira tabela desta página. Para pintar os nomes que estão nas duas listas, use >0, como na página de destacar duplicados.
Por que valores idênticos aparecem como diferentes
O motivo mais comum é um espaço que você não vê: Ana com um espaço no fim não é igual a Ana. Dados colados de outro sistema ou de uma página da web muitas vezes trazem esses espaços. Compare os valores arrumados.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Name | Other list | Equal? | Trimmed |
| 2 | Ana | Ana | FALSE | TRUE |
| 3 | Ben | Ben | TRUE | TRUE |
| 4 | Cara | Cara | FALSE | TRUE |
| 5 | Dan | Dan | TRUE | TRUE |
=A2=B2A coluna C diz que as linhas 2 e 4 são diferentes; a coluna D, depois que a ARRUMAR (TRIM em inglês) remove os espaços das duas pontas, diz que as quatro batem. O outro motivo comum é um número armazenado como texto em uma coluna e um número de verdade na outra: 101 e '101 parecem iguais, mas a comparação com = do Excel retorna FALSO, e CORRESP, PROCV e PROCX não encontram um no outro. A CONT.SE é a exceção: ela lê texto que parece número como esse número, então conta os dois como iguais. Um triângulo verde no canto da célula marca a versão em texto; converta com =VALOR(A2) ou =A2*1, ou selecione as células e escolha Converter em Número no ícone de aviso.
Perguntas frequentes
Como comparar duas colunas no Excel para achar valores iguais?
Linha a linha: digite =A2=B2 em C2 e arraste para baixo; VERDADEIRO significa que as duas células batem. Para conferir se cada valor de A aparece em qualquer lugar de B, use =CONT.SE($B$2:$B$8;A2)>0.
Como comparar duas colunas e retornar um valor da segunda?
Busque o valor: =PROCX(A2;$F$2:$F$7;$G$2:$G$7;"Not found") retorna o valor correspondente de G, ou Not found. No Excel 2019 e anteriores, use =SEERRO(PROCV(A2;$F$2:$G$7;2;FALSO);"Not found").
Comparar duas células no Excel diferencia maiúsculas?
Não. =A2=B2 trata abc e ABC como iguais. Para uma comparação que diferencia maiúsculas, use =EXATO(A2;B2), que só é VERDADEIRO quando todos os caracteres batem, maiúsculas incluídas.
Como listar os valores que estão em uma coluna, mas não na outra?
No Excel 365 e no 2021, =FILTRO(A2:A8;CONT.SE(B2:B8;A2:A8)=0) despeja todos os valores de A2:A8 que não aparecem em B2:B8.
Por que o Excel diz que dois valores idênticos são diferentes?
Em geral um deles tem um espaço a mais ou é um número armazenado como texto. Compare =ARRUMAR(A2)=ARRUMAR(B2) para descartar os espaços, e converta números em texto com =VALOR(A2) ou =A2*1.