Cet article va vous expliquer comment extraire les derniers mots d'une cellule à partir d'un caractère précis.
MISE A JOUR pour Excel 365
Si vous travaillez avec Excel 365, il est plus simple d'utiliser les fonctions TEXTE.AVANT et TEXTE.APRES
Si vous n'avez pas ces fonctions sur votre version d'Excel, la technique suivante vous permet de le réaliser.
Les fonctions Textes élémentaires dans Excel
Excel possède un grand nombre de fonctions pour travailler les chaînes de caractères, comme GAUCHE, DROITE, STXT.
Il existe également les fonctions CHERCHE ou TROUVE qui retournent la position d'un caractère depuis le début d'une chaîne de caractères. La différence entre ces 2 fonctions c'est que l'un respecte la casse (majuscule / minuscule) et pas l'autre.
En combinant ces fonctions les unes avec les autres, il est possible d'extraire une partie d'une chaîne de caractères sans trop de difficultés comme nous l'avons vu dans cet exemple.
Mais il n'y a pas de fonction pour extraire les derniers mots depuis une chaîne de caractères
Trouver la dernière position d'un caractère spécifique
Nous avons détaillé dans cet article comment trouver la dernière position d'un caractère spécifique. avec la formule suivante.
=CHERCHE("µ";SUBSTITUE(A2;"\";"µ";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"\";""))))
Nous allons repartir de l'étape qui nous a permis de remplacer uniquement le dernier "\" et nous allons voir comment utiliser ce résultat pour extraire les derniers caractères
Nombre de caractères entre le caractère de rupture et la fin de chaîne
Cette étape peut sembler complexe mais en fait il n'en est rien. En fait, il suffit de retrancher de la longueur totale de la chaîne, la position trouvée à l'étape précédente.
=NBCAR(B2)-CHERCHE("µ";B2)
Extraire les derniers mots de chaîne de caractères
Il ne reste plus qu'à utiliser cette valeur dans la fonction DROITE pour obtenir les derniers caractères avec la formule suivante
=DROITE(B2;NBCAR(B2)-CHERCHE("µ";B2))
Ecriture de toutes les étapes dans une seule formule
Pour éviter de découper votre extraction sur plusieurs colonnes, vous pouvez utiliser la formule suivante qui regroupe toutes les étapes précédentes
=DROITE(A2;NBCAR(A2)-CHERCHE("µ";SUBSTITUE(A2;"\";"µ";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"\";"")))))
Si vous utilisez Microsoft 365, vous pouvez écrire votre formule dans une fonction personnalisée pour sécuriser l'écriture de votre formule. Ici, nous avons construits la formule qui a besoin de 2 paramètres ; le texte et le séparateur.
=LAMBDA(text;separateur;LET(lngtext;NBCAR(text);DROITE(text;lngtext-CHERCHE("µ";SUBSTITUE(text;separateur;"µ";lngtext-NBCAR(SUBSTITUE(text;separateur;"")))))))