Help and Support

Numéro d'article: 463924 - Dernière mise à jour: mardi 23 août 2005 - Version: 1.3

Position dernière occurrence d'une chaîne dans une autre

Ancien nº de publication de cet article : F13924
Agrandir tout | Réduire tout

Symptômes


Je souhaite calculer la position de la dernière occurrence d'un texte
dans une chaîne de texte.

Comment dois-je procéder ?


Résolution


Il suffit d'écrire la formule suivante (à valider en technique
matricielle, c'est à dire en appuyant simultanément sur les 3 touches
CTRL+MAJ+ENTREE).

=MAX(SI(ESTERREUR(CHERCHE(texte_cherché;texte;LIGNE(DECALER(INDIRECT("A1"
)
;;;NBCAR(texte)))));0;CHERCHE(texte_cherché;texte;LIGNE(DECALER(INDIRECT(
"
A1");;;NBCAR(texte))))))

où :
- texte_cherché : texte que vous recherchez.
- texte : texte dans lequel s'effectue la recherche.


EXEMPLE :

Cherchons à extraire le nom d'un fichier dans son chemin d'accès complet,
en se basant sur la dernière position du caractère "\" (sous Windows).

Soient :
- texte contient : "C:\DOCUMENT\EXEMPLES\TEST.XLS" (sans les guillemets)
- texte_cherché : "\" (sans les guillemets)

La formule citée précédemment revoie la valeur 21, qui est bien la
dernière occurrence du caractère "\" dans la chaîne de texte
"C:\DOCUMENT\EXEMPLES\TEST.XLS".

Pour extraire le nom du fichier, il suffit de compléter la fonction avec
la fonction STXT comme ci-dessous :

=STXT(texte;MAX(SI(ESTERREUR(CHERCHE(texte_cherché;texte;LIGNE(DECALER(IN
D
IRECT("A1");;;NBCAR(texte)))));0;CHERCHE(texte_cherché;texte;LIGNE(DECALE
R
(INDIRECT("A1");;;NBCAR(texte))))))+NBCAR(texte_cherché);NBCAR(texte))


REMARQUES :

1. Cette formule renvoie 0 si texte_cherché n'est pas dans texte.
2. Ces formules sont à valider en technique matricielle, c'est à dire en
appuyant simultanément sur les 3 touches CTRL+MAJ+ENTREE.


INFORMATIONS COMPLEMENTAIRES :

La formule repose sur les principes suivants :
- La fonction CHERCHE renvoie le numéro du caractère au niveau duquel un
caractère spécifique ou une chaîne de texte est initialement
reconnu(e) lors d'une lecture de gauche à droite.
- Ainsi, la dernière occurrence d'un texte sera celle dont le numéro
sera le plus grand. CHERCHE renvoie la position de la première
occurrence trouvée à partir du caractère de départ. Il faut faire
varier ce numéro de caractère sur le nombre de caractères possibles de
la chaîne (soit NBCAR).
- Pour obtenir une matrice de chiffres de 1 au nombre de caractères de
texte, nous utilisons:
LIGNE(DECALER(INDIRECT("A1");;;NBCAR(texte)))
- Si texte_cherché n'est pas trouvé, la fonction CHERCHE renvoie
#VALEUR, c'est pourquoi nous sommes obligés de tester son retour avec
ESTERREUR et de renvoyer 0 dans ce cas.
- La fonction MAX nous renvoie alors la dernière occurrence de
texte_cherché dans texte.


Références


Pour plus de renseignements veuillez vous référer à :

- L'aide en ligne de Microsoft Excel, aux rubriques des fonctions
susmentionnées.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 5.0 pour Macintosh
  • Microsoft Visual Basic pour Applications 1.0
  • Microsoft Excel 95 Standard
  • Microsoft Excel 5.0 Standard
  • Microsoft Excel 5.0c
Mots-clés : 
util KB463924
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.