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.

In these examples, lets see how to use negative values in the Instance_num. From the sequence « YesterdayTodayTomorrow«  and the hyphen as a delimiter, lets see how it works.

Negative values are used to look for delimiters from the end.

So in the 1st example, we put 1 in Instance_num. Thus, the extracted text is before or after the last delimiter.

In the 2nd example, we put 2 in Instance_num. Thus everything before or after the penultimate dash is extracted.

This can be handy when you want to retrieve an extension or that kind of data.