Apprendre la Bureautique

Comparer deux listes Excel pour trouver les différences sans faire de macro

C'est la question qu'on me pose le plus souvent, que ce soit en formation Excel ou entre collègues : faut-il une macro pour comparer deux listes Excel et voir ce qui cloche entre les deux ? La réponse ne va sans doute pas dans le sens où vous l'attendez. Avant d'y répondre, un cas concret : deux fichiers clients de plusieurs centaines de lignes, censés être des copies conformes l'un de l'autre, sauf qu'ils ne le sont pas, une ligne qui manque d'un côté, un nom légèrement différent de l'autre. Pour qui débute sur Excel, ce genre de comparaison de données ressemble vite à un mur, et c'est justement l'astuce de bureautique qui change tout une fois qu'on la connaît.

Ma première réaction, à l'époque, a été d'aller chercher de l'aide en dehors du fichier lui-même. J'avais imprimé les fiches d'un blog de formation trouvé au hasard d'une recherche, pleines de captures d'écran bien nettes — sauf qu'aucun des boutons qu'il montrait n'existait dans ma version d'Excel. Mauvaise pioche, et surtout une soirée perdue, avec cette lumière d'écran un peu blafarde qui donne aux mains cette teinte pâle qu'on ne remarque que tard, quand il fait déjà nuit dehors.

Le mythe de la macro obligatoire pour comparer deux listes

Le malentendu, je le vois revenir sans arrêt : on imagine qu'il faut soit un œil de lynx et beaucoup de patience, soit une macro écrite par quelqu'un de plus calé en informatique. Aucun des deux n'est vrai. Une simple formule, posée dans une colonne à côté de vos données, fait le travail — pas besoin de coder quoi que ce soit, et pas besoin non plus de relire ligne par ligne en priant pour ne rien rater.

Dans les grandes lignes, on demande simplement à Excel d'utiliser une fonction de recherche — la fameuse RECHERCHEV, ou son équivalent plus récent — pour vérifier, ligne par ligne, si chaque valeur de la première liste existe dans la seconde. Je ne vais pas détailler ici tous les rouages de cette fonction, ça mérite un article à elle seule, mais gardez cette idée en tête : c'est un test de présence, pas un calcul compliqué.

Pourquoi la mise en forme conditionnelle n'est pas le bon réflexe

La mise en forme conditionnelle donne cette satisfaction immédiate de voir les écarts surgir en couleur, un peu comme quand on repeint d'un coup les taches sur un mur au lieu de les reboucher pour de bon. Ça flatte l'œil sur le moment, mais ça ne trie rien et ça ne compte rien. Sur une liste qui dépasse quelques centaines de lignes, ça oblige aussi Excel à recalculer des couleurs à chaque frappe, et le fichier se met à ramer pour un résultat qu'on ne peut même pas filtrer ensuite.

Mon voisin, qui bichonne ses tomates cerises sur son balcon chaque été, illustre bien la nuance : il surveille ses plants avec attention, mais il ne se contente pas de regarder — il note ce qui pousse bien et ce qui traîne, pour savoir où intervenir. Une comparaison de listes mérite le même traitement : pas juste un coup d'œil coloré, mais un résultat qu'on peut ensuite manipuler.

Écran Excel montrant une mise en forme conditionnelle utilisée pour comparer deux listes de données

Alors, quelle méthode choisir pour vos propres listes ?

Voici le repère que je donne maintenant à ceux qui débutent sur Excel et qui hésitent. Si vous devez juste vérifier une vingtaine de lignes avant d'envoyer un mail, un coup de mise en forme conditionnelle suffit largement, inutile de sortir l'artillerie. Mais dès que la liste dépasse quelques centaines de lignes, ou que vous devez ensuite trier, filtrer ou compter le nombre d'écarts, changez d'outil : posez une colonne de contrôle avec une formule simple, qui renvoie par exemple OK ou MANQUANT selon que la valeur existe dans l'autre liste. C'est la seule des deux méthodes qui vous laisse ensuite manipuler le résultat plutôt que de simplement le regarder.

Les pièges qui faussent une comparaison sans qu'on s'en aperçoive

Autre piège classique : comparer seulement sur le nom quand deux personnes peuvent en porter un identique, ou à l'inverse ignorer qu'un même client peut être orthographié différemment d'une liste à l'autre. Dès que vous devez croiser plusieurs critères à la fois — le nom et un numéro de dossier, par exemple — la logique de base reste la même, mais la formule se complique un peu, et ça mérite sa propre réflexion plutôt qu'une rustine improvisée sur un cas précis.

Et si votre colonne de contrôle se met à afficher #N/A partout au lieu d'un simple OK ou MANQUANT, ce n'est pas votre comparaison qui est fausse, c'est souvent un souci ailleurs dans la formule. Si les messages d'erreur vous perdent, j'avais écrit un petit mémo pour comprendre les erreurs de formules Excel pour arrêter de stresser au bureau, ça évite de paniquer pour rien.

Un autre piège, plus sournois encore, ce sont les espaces invisibles. Deux listes peuvent sembler identiques à l'œil et pourtant renvoyer des écarts partout, simplement parce qu'un nom a été saisi avec un espace en trop quelque part. Avant de lancer la moindre comparaison, ça vaut le coup de nettoyer vos listes avec le remplissage instantané Excel sans tout retaper — un classeur propre en amont vous évite la moitié des fausses alertes en aval.

Mains tapant une formule de comparaison dans une cellule Excel pour repérer les différences entre deux listes

Ce que ça change, une fois qu'on a la bonne méthode

La semaine dernière, une collègue s'est penchée par-dessus mon épaule pendant que je terminais un contrôle de ce genre, un peu perplexe devant ma colonne pleine de OK et de MANQUANT. Je lui ai montré, étape par étape, comment la formule allait chercher chaque nom dans l'autre liste — pas de tour de passe-passe, juste une logique qu'on suit une fois qu'on l'a comprise, comme une recette qu'on ne redoute plus après l'avoir faite deux ou trois fois.

Ce qui compte, au fond, ce n'est pas de retenir par cœur chaque symbole d'une formule Excel, mais de savoir choisir le bon outil selon la taille et l'usage de la liste devant vous. Un tableau coloré pour un coup d'œil rapide, une colonne de contrôle pour tout le reste — et surtout, aucune macro à écrire dans un cas comme dans l'autre.

Articles connexes