jeudi 21 mars 2019

EXCEL - Formule pour trouver la dernière occurrence d'un caractère

Voici une formule pour Excel permettant de récupérer les derniers caractères, à partir de la dernière occurrence d'un caractère ("/" pour illustrer l'exercice):
Par exemple:

"AA/BB/CC/DD" donne le résultat "DD".

Voici donc la formule:


=SIERREUR(DROITE(A1;NBCAR(A1)-TROUVE("\";SUBSTITUE(SUBSTITUE(A1;"\";" ");"/";"\";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"/";"")))));"")



On utilise la possibilité de la fonction Excel SUBSTITUE de remplacer une seule occurrence, en particulier la dernière occurrence. Pour cela on récupère le nombre d'occurrence du caractère "/", à l'aide de la formule:

=NBCAR(A1)-NBCAR(SUBSTITUE(A1;"/";""))


Ensuite il suffit de remplacer cette dernière occurrence de "/" par un caractère unique (par exemple "\"), pour déterminer la position du dernier "/", en recherchant ensuite la position du caractère unique "\"). Pour garantir l'unicité e "\", il faut aussi remplacer la totalité des "\" par des espaces par exemple).

Formule pour la position de la dernière occurrence:

=TROUVE("\";SUBSTITUE(SUBSTITUE(A1;"\";" ");"/";"\";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"/";""))))

Ce genre de formule serait plus simple à réaliser en VBA, mais l'exécution en VBA d'une formule peut être très coûteux en temps d’exécution, et de surcroît oblige à autoriser le VBA. Donc malgré la complexité de cette formule, elle est indispensable dans certain cas.

Aucun commentaire: