Matricielles Texte

Trouver la différence entre 2 cellules par formule

Temps de lecture 3 minutes

Cet article va vous montrer comment trouver la différence entre 2 cellules. Pour faire ce travail, nous allons avoir besoin de la fonction SEQUENCE de Microsoft 365.

Comparer 2 colonnes

Nous avons vu dans ce précédent article comment comparer le contenu de 2 colonnes et d'afficher les écarts (par couleur ou par formule).

Ici, nous souhaitons aller une étape plus loin. C'est à dire ? Une fois que l'écart est constaté. Trouver l'erreur a été détectée. Au sein d'une chaîne de caractères ?

Par exemple ici. Nous avons. Un mail à comparer avec une autre série Gmail. Aucune cellule n'est identique. Nous souhaitons trouver la position où l'écart a été détecté.

Comment trouver la difference entre 2 cellules

Étape 1 Extraire tous les caractères

Grâce aux formules matricielles dynamiques. Il est possible de découper le contenu d'une cellule en écrivant un caractère par cellule. C'est cette technique qui nous a permis d'écrire en sens inverse le contenu d'une cellule par exemple.

Pour découper le premier mail, nous allons utiliser la fonction suivante.

=STXT(A2;SEQUENCE(NBCAR(A2));1)

La formule va décomposer chaque caractère de la cellule initiale grâce à la fonction STXT sur une longueur de 1. L’accroissement de la position est obtenu par la fonction SEQUENCE.

Le résultat s'affiche verticalement mais ça n'a pas d'incidence pour la suite

Chaque cellule contient une lettre

Et bien sûr, il faut faire la même chose pour la seconde cellule à comparer.

Decomposition des 2 emails

Etape 2 : Comparer les deux résultats

Esnuite, il suffit de comparer les 2 tableaux créés pour trouver les lettres identiques et les lettres différentes

=D2#<>E2#

La formule retourne VRAI en cas de difference

Le symbole # permet d'étendre la sélection à toutes les cellules retournées par la formule matricielle.

Etape 3 : Gérer l'erreur sur la longueur

Si les 2 contenus ne sont pas de même longueur, la formule retourne l'erreur #N/A.

Longueur differente retourne NA

Le meilleur moyen de corriger le problème c'est d'inclure le test précédent dans la fonction SIERREUR

=SIERREUR(D2#<>E2#;VRAI)

SIERREUR transforme erreur NA en VRAI

Etape 4 : Retourner la position du premier VRAI

Retourner la position du premier VRAI s'obtient très facilement grâce à la fonction EQUIV. Il suffit donc d'inclure le test dans une fonction EQUIV.

Resultat inexact renvoye par EQUIV

Sauf que le chiffre renvoyé ici n'est pas le bon car la formule n'est pas correctement écrite. La solution a été trouvée par un autre MVP, John MacDougall 😉

Il suffit de rajouter le paramètre 0 (recherche exacte) comme 3e paramètre de la fonction EQUIV

La fonction EQUIV retourne le correct resultat

Ecriture complète dans une seule formule

Maintenant, il faut écrire les différentes étapes dans une seule formule.

=EQUIV(VRAI;
SIERREUR(
STXT(A2;SEQUENCE(NBCAR(A2));1)<>
STXT(B2;SEQUENCE(NBCAR(B2));1);
VRAI);
0)

Formule complete pour retourner la position en erreur

Appliquer la formule au texte initial

Maintenant que nous avons trouvé la position de la différence entre les 2 cellules, on peut l'associer aux situations suivantes

Afficher le caractère où est constaté l'erreur

=STXT(B2;D2;1)

Trouver le caractere en erreur

Afficher le texte sans erreur

=GAUCHE(B2;D2-1)

Formule pour retourner la partie OK

Afficher le texte après l'erreur

=DROITE(B2;NBCAR(B2)-D2)

Affichage de la partie en erreur du texte

Related posts

Extraire les chiffres d’une cellule

Frédéric LE GUEN

C’est quoi #EPARS!

Frédéric LE GUEN

Menu déroulant sans vide

Frédéric LE GUEN

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.