Comment comparer deux colonnes et trouver des différences dans Excel?

45

J'ai deux colonnes dans Excel que je veux comparer et trouver les différences entre elles.

Supposer:

  • Col A a 50 chiffres, soit 0511234567
  • Col B a 100 nombres dans le même format
Sundhas
la source
Je pense que cela peut être fait avec les fonctions et les formules intégrées d'Excel. Il me semble hors sujet.
Matt Handy
pouvez-vous s'il vous plaît préciser comment faire cela?
Alors, voulez-vous savoir quels chiffres figurent uniquement dans la colonne A et lesquels ne figurent que dans la colonne B?
Tom Shaw
Voir cette question SO pour votre réponse.
Patrick Honorez
Non, je veux d'abord connaître tous les chiffres qui ne figurent pas dans la colonne A mais dans la colonne B, puis je veux connaître tous les chiffres qui figurent dans la colonne A mais pas dans la colonne B.

Réponses:

55

Utilisation de la mise en forme conditionnelle

Mettre en surbrillance la colonne A . Cliquez sur Mise en forme conditionnelle > Créer une nouvelle règle > Utilisez cette formule pour déterminer les cellules à mettre en forme > Entrez le ff. formule:

=countif($B:$B, $A1)

Cliquez sur le bouton Format et remplacez la couleur de la police par quelque chose que vous aimez.

Répétez la même chose pour la colonne B , sauf que vous utilisez cette formule et essayez une autre couleur de police.

=countif($A:$A, $B1)

Utiliser une colonne séparée

Dans la colonne C , entrez le ff. formule dans la première cellule, puis copiez-le.

=if(countif($B:$B, $A1)<>0, "-", "Not in B")

Dans la colonne D , entrez le ff. formule dans la première cellule, puis copiez-le.

=if(countif($A:$A, $B1)<>0, "-", "Not in A")

Ces deux éléments devraient vous aider à visualiser les éléments manquants dans l’autre colonne.

Ellesa
la source
Sur quelle (s) version (s) d'Excel a-t-il été testé?
Peter Mortensen
1
Où est la "mise en forme conditionnelle"? Dans un menu? Dans un menu contextuel?
Peter Mortensen
Dans une ancienne version d'OpenOffice, qui correspond à Excel antérieur au ruban (c'est un clone d'Excel après tout), il existe une commande de menu Format -> Mise en forme conditionnelle .
Peter Mortensen
1
Il s'agit de Excel, mais dans OpenOffice / LibreOffice en utilisant de $B:$Bse référer à l'ensemble de la colonne Bne fonctionne pas. Utilisez plutôt $B$1:$B$1048576(où 1048576 est la ligne du numéro le plus élevé). Remarque $devant les chiffres (appelées références absolues ) - cela le fait fonctionner comme prévu pour des opérations telles que Fill Down (appelé "copier le tout") ou Fill Up .
Peter Mortensen
14

Microsoft a publié un article détaillant comment trouver les doublons dans deux colonnes. Il peut être modifié assez facilement pour trouver des éléments uniques dans chaque colonne.

Par exemple, si vous souhaitez que la colonne C affiche des entrées uniques à la colonne A et que la colonne D affiche des entrées uniques à la colonne B:

A   B   C                                          D
1   3   =IF(ISERROR(MATCH(A1,$B$1:$B$5,0)),A1,"")  =IF(ISERROR(MATCH(B1,$A$1:$A$5,0)),B1,"")
2   5   (fill down)                                (fill down)
3   8   ..                                         ..
4   2   ..                                         ..
5   0   ..                                         ..
Tom Shaw
la source
4

Dites que vous voulez trouver ceux en col. B sans correspondance en col. A. Mettez en C2:

=COUNTIF($A$2:$A$26;B2)

Cela vous donnera 1 (ou plus) s'il y a une correspondance, 0 sinon.

Vous pouvez également trier les deux colonnes individuellement, puis sélectionner les deux options, Aller à spécial, Différences de lignes. Mais cela cessera de fonctionner après le premier nouvel élément et vous devrez insérer une cellule puis recommencer.

Patrick Honorez
la source
4

Si je comprends bien votre question:

=if(Ax = Bx; True_directive ; False_directive)

Remplacez les directives True / false par une fonction ou par une chaîne telle que "Equal" ou "different".

Peter Mortensen
la source
@pasta cela ne fonctionnera pas si les deux colonnes ne sont pas triées de la même manière, je pense que la question ne se pose pas.
Islam
3

Cela dépend du format de vos cellules et de vos exigences fonctionnelles. Avec un "0" initial, ils peuvent être formatés en texte.

Ensuite, vous pouvez utiliser la fonction IF pour comparer des cellules dans Excel:

=IF ( logical_test, value_if_true, value_if_false )

Exemple:

=IF ( A1<>A2, "not equal", "equal" )

S'ils sont formatés en nombres, vous pouvez soustraire la première colonne de l'autre afin d'obtenir la différence:

=A1-A2
Matt Handy
la source
2

Cette formule comparera directement deux cellules. S'ils sont identiques, ils seront imprimés True. S'il existe une différence, ils seront imprimés False. Cette formule n'imprimera pas les différences.

=IF(A1=B1,"True","False")
Alex
la source
1

J'utilise Excel 2010 et je ne fais que mettre en surbrillance les deux colonnes contenant les deux ensembles de valeurs que je compare, puis cliquez sur la liste déroulante Mise en forme conditionnelle de la page d'accueil d'Excel, choisissez les règles Mettre en évidence les cellules, puis les différences. Il vous invite ensuite à souligner les différences ou les similitudes et vous demande quelle couleur de surbrillance vous souhaitez utiliser ...

Peter McGuire
la source
0

La comparaison peut être faite avec le code Excel VBA. Le processus de comparaison peut être effectué avec la Worksheet.Countiffonction Excel VBA .

Deux colonnes de différentes feuilles de calcul ont été comparées dans ce modèle. Des résultats différents ont été trouvés, une ligne entière ayant été copiée dans la deuxième feuille de calcul.

Code:

Dim stk, msb As Worksheet
Set stk = Sheets("Page1")
Set msb = Sheets("Page2")

Application.ScreenUpdating = False
sat = (msb.Range("A" & Rows.Count).End(xlUp).Row) + 1
For i = 2 To stk.Range("A" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf(msb.Range("A2:A" & msb.Range("A" & Rows.Count).End(xlUp).Row), stk.Cells(i, "A")) = 0 Then
        msb.Range("a" & sat).EntireRow.Value = stk.Range("a" & i).EntireRow.Value
        msb.Range("a" & sat).Interior.ColorIndex = 22
        sat = sat + 1
    End If
Next
...

Vidéo du tutoriel: https://www.youtube.com/watch?v=Vt4_hEPsKt8

Exemple de fichier peut être téléchargé ici

Kadrleyn
la source
1
Si vous souhaitez créer un lien vers votre blog et votre chaîne YouTube, vous devez divulguer votre affiliation. Si vous ne le faites pas, vous pourriez être accusé de spam.
DavidPostill
0

Ceci utilise un autre outil mais je viens de trouver cela très facile à faire. Utiliser Notepad ++:

Dans Excel, assurez-vous que vos 2 colonnes sont triées dans le même ordre, puis copiez et collez vos colonnes dans 2 nouveaux fichiers texte, puis exécutez une comparaison (à partir du menu des plugins).

Etienne
la source
0

La combinaison des fonctions NOT MATCH fonctionne bien. Les travaux suivants aussi:

= IF ( ISERROR ( VLOOKUP (<< élément dans la liste plus grande >>, << liste plus petite >>, 1 , FAUX )), << élément dans la liste plus grande >>, "")

N'OUBLIEZ PAS: la plus petite liste DOIT être triée ASCENDANT - une exigence de vlookup

Moibi Kerandi
la source