formateur informatique

Extraire le texte après le dernier caractère cherché

Accueil  >  Bureautique  >  Excel  >  Excel Astuces  >  Extraire le texte après le dernier caractère cherché
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Dernier texte après symbole

Ce nouveau volet est l'occasion de découvrir une technique précieuse, encore matricielle. Elle offre la possibilité d'extraire la fin d'une chaîne située après un caractère remarquable, pourtant répété à plusieurs reprises dans le texte.

Extraire noms de fichiers des chemins accès par formule Excel

L'exemple illustré par la capture est parfaitement dédié. Des chemins d'accès complets à des fichiers sont listés dans une première colonne du tableau. D'ailleurs, nous aurions très bien pu construire ce listing de fichiers automatiquement grâce à PowerQuery. Dans une seconde colonne, grâce à une formule unique, nous parvenons à extraire seulement les noms des fichiers qui composent ces chaînes. Cela signifie que nous sommes en mesure de ne conserver que la portion de texte située après le dernier antislash.

Classeur Excel à télécharger
Pour développer cette formule matricielle, nous proposons d'appuyer l'étude sur un classeur offrant des chemins d'accès à décortiquer. Nous retrouvons bien le tableau de deux colonnes. La première héberge effectivement des chemins d'accès avec des noms de fichiers en bouts de courses. La seconde est naturellement vide à ce stade. Elle attend la formule d'extraction pour isoler ces noms de fichiers.

Caractère remarquable à utiliser pour découper les chaînes de textes par formule Excel

Au-dessus de la seconde colonne, vous notez la présence du caractère remarquable de l'antislash. Il est plus précisément inscrit en cellule G3. Nous souhaitons naturellement exploiter cette cellule dans la formule. Ainsi, en fonction de la nature des chaînes qu'il aura à traiter, l'utilisateur pourra changer le symbole de séparation à détecter pour isoler ces fragments de textes.

Prélever par la fin
La première astuce de cette formule matricielle consiste à prélever les caractères en partant de la fin de la chaîne. Et pour cela, nous devons exploiter la fonction Excel Droite.
  • Sélectionner la case du premier nom de fichier à extraire en cliquant sur sa cellule F6,
  • Taper le symbole égal (=) pour débuter la construction de la formule matricielle,
  • Inscrire la fonction de découpe par la fin suivie d'une parenthèse, soit : Droite(,
  • Désigner le premier chemin d'accès à analyser en cliquant sur sa cellule B6,
  • Puis, taper un point-virgule (;) pour passer dans l'argument de la longueur de découpe,
Chercher le dernier symbole
Pour déterminer cette longueur de découpe en partant de la fin de la chaîne, nous devons trouver la position du premier antislash qui est en réalité le dernier, si nous étudions la chaîne en partant des premiers caractères. Et pour le débusquer, nous allons exploiter la fonction de recherche Equiv.
  • Inscrire la fonction de recherche de position suivie d'une parenthèse, soit : Equiv(,
Son premier argument concerne la valeur cherchée. Cette valeur cherchée dans la chaîne n'est autre que le symbole de l'antislash. En effet, nous répliquerons cette formule matricielle sur les cellules du dessous. Quand l'analyse doit se déplacer naturellement sur les chemins d'accès (B6 puis B7 etc...), dans le même temps la cellule du symbole à chercher ne doit pas bouger quant à elle. Nous la figeons donc.
  • Taper un point-virgule (;) pour passer dans l'argument du tableau de recherche,
Analyser les caractères individuellement
En guise de tableau de recherche, nous allons lui fournir une matrice des lettres isolées individuellement, en partant du dernier caractère et en remontant jusqu'au premier antislash trouvé. C'est ainsi que la fonction Equiv répondra favorablement pour transmettre la longueur de découpe à la fonction droite. Et pour découper une chaîne lettre à lettre, nous avons besoin de la fonction Stxt.
  • Mais cliquer d'abord sur le petit bouton de l'assistant fonction à gauche de la barre de formule,
Assistant fonction Excel pour construire une formule matricielle de découpe des textes

Il va nous livrer quelques précieuses indications servant à simplifier la compréhension du mécanisme.
  • Cliquer dans la zone Tableau_recherche pour l'activer,
  • Inscrire la fonction de découpe suivie d'une parenthèse, soit : Stxt(,
  • Désigner de nouveau le premier chemin d'accès en cliquant sur sa cellule B6,
  • Puis, taper un point-virgule (;) pour passer dans l'argument de la position de départ,
Pour passer chaque lettre en revue en partant de la dernière, nous devons créer une matrice virtuelle de numéros pour retrancher la position en cours au nombre total de caractères dans la chaîne. Cette matrice doit partir du chiffre 1 et poursuivre sur un nombre assez grand d'occurrences pour être sûr de croiser l'antislash. Pour créer cette matrice virtuelle de nombres, nous avons besoin de la fonction Ligne. Le nombre total de caractères peut quant à lui être renvoyé par la fonction NbCar. Le dernier caractère ne sera donc pas analysé (NbCar -1 pour le premier traitement récursif). Nous partons logiquement du principe qu'un délimiteur ne se trouve jamais en dernière position.
  • Inscrire la fonction pour le nombre de caractères, suivie d'une parenthèse, soit : NbCar(,
  • Désigner de nouveau le premier chemin d'accès en cliquant sur sa cellule B6,
  • Fermer alors la parenthèse de la fonction NbCar,
  • Taper le symbole moins (-) pour annoncer le retranchement à suivre,
  • Construire alors la matrice virtuelle de nombres suivante : Ligne($1:$200),
Les dollars sont importants pour que ces bornes ne varient pas avec la réplication de la formule. Dans ce traitement récursif, au nombre total de caractères, nous allons d'abord retrancher une unité puis deux et ainsi de suite jusqu'à atteindre les deux cents. Nous remontons donc dans les caractères à analyser. Et précisément, nous devons les étudier un à un pour débusquer la présence de l'antislash. C'est justement ce que nous permet de définir le troisième et dernier argument de la fonction Stxt. Il concerne la longueur de découpe.
  • Taper un point-virgule (;) pour passer dans l'argument de la longueur de découpe,
  • Taper le chiffre 1 pour analyser les caractères individuellement et tour à tour,
  • Puis, fermer la parenthèse de la fonction Stxt,
Analyser les lettres de la cellule Excel une à une par formule matricielle

Comme vous pouvez le voir, l'assistant fonction réagit par une matrice en regard de la zone Tableau_recherche. Nous y trouvons chaque caractère du chemin d'accès en partant de l'avant dernier et en remontant sur 200 positions, tel que nous l'avons défini. C'est ainsi que nous allons finir par croiser le chemin du dernier antislash.
  • Cliquer dans la zone Type de l'assistant fonction pour l'activer,
  • Puis, saisir le chiffre 0 pour réaliser une recherche exacte,
Cette fois, l'assistant pour la fonction Equiv répond par la position trouvée pour l'occurrence de l'antislash. Rappelons-le, c'est bien sur ce symbole que nous avons engagé la recherche.

Trouver la dernière position d-un caractère ou d-une lettre dans une cellule Excel par formule

Si vous analysez le premier chemin d'accès, il s'agit effectivement de l'emplacement précis du dernier antislash.
  • Dans la barre de formule, cliquer à la toute fin de la syntaxe,
  • Fermer la parenthèse de la fonction Droite,
  • Puis, valider la formule matricielle par le raccourci clavier CTRL + MAJ + Entrée,
Comme vous pouvez le voir, le premier nom de fichier tombe. Il a parfaitement été isolé par le calcul matriciel.
  • Double cliquer sur la poignée du résultat pour répliquer la logique sur la hauteur du tableau,
Nous obtenons tous les noms de fichiers des fins de chaînes, parfaitement isolés dans leurs cellules. Maintenant, vous pouvez tester cette fabuleuse formule matricielle en remplaçant en G3 l'antislash par un tiret (-) ou un point (.).

Extraire les lettres après le dernier caractère spécial par formule matricielle Excel

Dans le premier cas, nous obtenons la chaîne placée après le dernier tiret. Dans le second cas, nous livrons toutes les extensions de chaque fichier. La syntaxe complète de la formule matricielle que nous avons construite est la suivante :

=DROITE(B6; EQUIV($G$3; STXT(B6; NBCAR(B6)-LIGNE($1:$200); 1); 0))

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn