Dans Excel, vous souhaitez extraire une partie d’un texte de manière dynamique ? Ne vous embêtez plus avec les fonctions GAUCHE et DROITE.
Dans Excel, pour extraire du texte d’une chaîne il existe plusieurs fonctions et combinaisons (plus ou moins faciles à utiliser). Au sein de Microsoft 365, de nouvelles fonctions simplifient la tâche.
Fonctions TEXTE.AVANT et TEXTE.APRES
Les fonctions TEXTE.AVANT et TEXTE.APRES permettent d’extraire une chaîne de caractère avant ou après un délimiteur. Ce dernier peut être un symbole comme un texte. Ces fonctions fonctionnent de la manière suivante :
=TEXTE.AVANT(texte; délimiteur; [instance_num]; [match_mode]; [match_end]; [if_not_found))
=TEXTE.APRES(texte; délimiteur; [instance_num]; [match_mode]; [match_end]; [if_not_found))
- Le texte : est le texte entier duquel on souhaite extraire une partie. Cela peut être un texte (mis en guillemet) ou une référence de cellule
- Le délimiteur : est l’élément qui distingue le texte que l’on veut prélever.
- Instance_num : si le délimiteur apparaît plusieurs fois, il est possible de spécifier s’il faut prendre, le 1er et le Nième (argument facultatif).
- match_mode : préciser si la casse doit être respectée (majuscule/minuscule) et ainsi le texte reporté portera la même casse que l’original (argument facultatif, 0 par défaut).
- 0 : si la casse doit être respectée
- 1 : si la casse n’a pas d’importance
- Match_end : Traite la fin du texte comme un délimiteur. Par défaut, le texte correspond exactement. (argument facultatif).
- 0 : Ne pas faire correspondre le délimiteur à la fin du texte.
- 1 : Faire correspondre le délimiteur à la fin du texte.
- if_not_found : valeur à faire apparaître si aucune valeur n’est trouvée. (argument facultatif, N/A par défaut).
Exemples d’utilisation
A partir d’exemples, regardons comment fonctionnent ces 2 fonctions.
Dans les 1ers exemples, nous utiliserons uniquement les arguments obligatoires (les 2 premiers).
Le texte dans lequel nous souhaitons extraire une partie est en colonne A.
Nous utilisons les fonctions Texte.Avant et Texte.Après pour voir la différence.
Dans le 1er exemple, le délimiteur est le symbole @. On peut voir que la fonction Texte.Avant récupère tout le texte avant le @. La fonction Texte.Après récupère tout le texte après le @.
Dans le 2e exemple, le délimiteur est le symbole – entouré d’espaces. Ainsi dans la formule, on fera attentions de mettre les espaces également.
Dans le 3e exemple, le délimiteur est le mot aux. Dans la formule, nous avons omis de mettre les espaces dans le délimiteur, ainsi on peut voir que le résultat du Texte.Après comporte un espace avant le mot framboises. Le mot Cake est suivi d’un espace mais nous ne pouvons pas le voir à l’oeil nu.
Ces exemples nous montrent que le délimiteur peut être de plusieurs natures différentes. Cela pourrait être également plusieurs mots ou autre.
Dans ces exemples-ci, nous utilisons l’Instance_num. A partir de la suite « Hier-Aujourd’hui-Demain » nous allons extraire une partie du texte. Le symbole – est le délimiteur. Dans ce texte ce délimiteur apparaît plusieurs fois. Nous pouvoir choisir lequel prendre.
Dans le 1er exemple, nous n’avons pas renseigné Instance_num. Par défaut le 1er est utilisé.
Dans le 2e exemple, nous avons mis 2 dans Instance_num. Ainsi on extrait tout ce qui est avant ou après le 2e tiret.
Dans ces exemples, voyons comment utiliser des valeurs négatives dans l’argument Instance_num.
À partir de la suite « Hier–Aujourd’hui–Demain » et du trait d’union comme délimiteur, voyons comment cela fonctionne.
Les valeurs négatives sont utilisées pour rechercher des délimiteurs à partir de la fin.
Donc, dans le 1er exemple, on met –1 dans Instance_num. Ainsi, le texte extrait se trouve avant ou après le dernier délimiteur.
Dans le 2ème exemple, on met –2 dans Instance_num. Ainsi, tout ce qui précède ou suit l’avant–dernier tiret est extrait.
Cela peut être pratique lorsque vous souhaitez récupérer une extension ou ce type de données.