Cet article va vous montrer comment trouver les lettres différentes entre deux chaines Excel avec une formule. Pour faire ce travail, nous allons avoir besoin de la fonction SEQUENCE de Microsoft 365.
Comparer le contenu de 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. Nous allons afficher la position et le caractère où l'erreur a été observée.
Pour vous montrer comment faire, nous allons comparer deux listes d'emails pour retourner
- A quelle position a été détecté l'erreur ?
- Quelle est la lettre en erreur ?
Pour réaliser cela, nous allons
- Extraire chaque caractère des deux cellules
- Les comparer
- Afficher les écarts
Ce travail peu sembler compliqué, mais grâce à l'utilisation de la fonction SEQUENCE, le travail sera assez simple.
Étape 1 : Extraire chaque caractère de la cellule.
Pour découper le premier mail, nous allons utiliser la fonction suivante.
=STXT(A2;SEQUENCE(NBCAR(A2));1)
Explication :
- La formule va lire chaque caractère de la cellule grâce à la fonction STXT sur une longueur de 1.
- L’accroissement de la position est obtenu par la fonction SEQUENCE
- Nous lisons tous les caractères de la cellules grâce à l'instruction NBCAR.
En écrivant la formule dans une cellule, nous voyons le détail du résultat. Mais nous n'avons pas besoin d'afficher le résultat dans une feuille de calcul pour la suite du travail.
Et bien sûr, il faut faire la même chose pour la seconde cellule à comparer.
Étape 2 : Comparer les deux résultats
Ensuite, il suffit de comparer les 2 tableaux de lettres pour trouver les lettres identiques et les lettres différentes. Ici nous allons faire un test Différent de, et donc, le résultat sera VRAI quand des lettres différentes seront constatées entre les deux chaînes de caractères.
=D2#<>E2#
L'utilisation du symbole # indique que nous allons lire tous les caractères retournés par la formule précédente.
Étape 3 : Gérer l'erreur sur la longueur
Dans le cas où les deux chaînes de caractères ne sont pas de même longueur, la formule retourne l'erreur #N/A.
Pour corriger le problème, nous allons inclure le test précédent dans la fonction SIERREUR et renvoyer VRAI en cas d'erreur (c'est ce que nous recherchons).
=SIERREUR(D2#<>E2#;VRAI)
Étape 4 : Retourner la position du premier VRAI
La fonction EQUIV permet de trouver la position d'un élément dans un tableau de valeur. Ici, nous voulons savoir quand nous trouverons le premier VRAI. Nous écrivons alors la formule suivante :
=EQUIV(VRAI;SIERREUR(D2#<>E2#;VRAI);0)
Nous pouvons maintenant écrire chaque élément dans une seule formule. Ce qui donne :
Affichez le texte où vous avez constaté une différence entre les deux chaînes.
Maintenant que nous avons trouvé la position de la différence entre les 2 cellules Excel, nous pouvons améliorer le résultat.
- Caractère avec 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.