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 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é. 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é.

É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.



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



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#



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.



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)



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.



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.



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)



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ée l'erreur
=STXT(B2;D2;1)



Afficher le texte sans erreur
=GAUCHE(B2;D2-1)



Afficher le texte après l'erreur
=DROITE(B2;NBCAR(B2)-D2)



Vous trouverez des informations complémentaires sur les fonctions SIERREUR et EQUIV sur le site de Microsoft.