Il existe deux fonctions très pratiques dans Excel pour extraire une partie de texte à partir d’un séparateur ou d’un caractère précis : TEXTE.AVANT et TEXTE.APRES.

Ces fonctions sont particulièrement utiles pour isoler un nom, un prénom, un domaine d’email, une partie d’adresse ou un code dans une cellule.

Elles sont différentes des fonctions GAUCHE, DROITE ou STXT.

 

Fonction TEXTE.AVANT

La fonction TEXTE.AVANT renvoie tout ce qui se trouve avant un caractère ou un mot précis dans une cellule.

Elle est très pratique pour extraire la partie avant un symbole (@, espace, tiret, point, slash, underscore etc.) un mot, un chiffre ou une lettre pour extraire des domaines d’email, des extensions de fichiers ou sous-codes dans des identifiants.

 

Syntaxe :

= TEXTE.AVANT(texte; délimiteur; [numéro_instance]; [mode_correspondance];[fin_correspondance];[si_introuvable])

 

Détails des arguments 

 

  • Texte :

La cellule contenant le texte

 

  • Délimiteur :

Le caractère qui servira à délimiter le texte , par exemple /, - , _ , @ , ; ,  , . ; e ; Z , 6...

 

  • [numéro_instance] : Facultatif

Si la cellule contient plusieurs fois le caractère délimiteur, cela permet de préciser à partir de quel caractère on extrait le texte.

Par exemple si vous avez un code, une référence ou un numéro de facture avec 4 tirets (Ex : FAC-2026-03-05-127) , et vous voulez extraire le texte à partir du 3ème tiret (05-127).

 

[mode_correspondance] : Facultatif

Si le délimiteur doit respecter la casse ou pas, la casse est si une lettre est en majuscule ou minuscule.

0 Si cela ne respecte pas la casse, 1 si elle doit respecter la casse.

Par exemple si le délimiteur est la lettre E en majuscule, le e minuscule ne sera pas pris en compte comme délimiteur.

Par défaut la fonction ne respecte pas la casse.

 

  • [fin_correspondance] : Facultatif

Indique si la fin du texte est considérée comme un délimiteur.

Par défaut la fin du texte correspond à un délimiteur.

  • [si_introuvable] : Facultatif

Si aucun délimiteur n'est trouvé, la cellule renvoie par défaut l'erreur #N/A (Non disponible).

Cet argument permet de remplacer #N/A par la valeur, le texte ou le caractère de votre choix.

Par exemple, si le délimiteur est un slash "/" mais qu'il n'y a pas de slash dans la cellule.

Mettre le texte ou le caractère entre guillemets.

Exemple simple

La cellule B2 contient une adresse mail : contact@maitrisez-excel.fr

Si vous entrez dans la cellule B2 :

=TEXTE.AVANT(A2;"@")

Excel renverra tout ce qui se trouve avant @ : contact

Note :

N'oubliez pas de mettre le symbole entre guillemets "@". 

Les symboles et caractères spéciaux sont du texte, ils doivent être mis entre "". 

Exemple avec un autre séparateur

La cellule A3 contient : Produit-2026-A

=TEXTE.AVANT(A3;"-") ➜ Produit

  

Résultat

On remarque ici qu'il y a 2 tirets, par défaut Excel renvoie tout le texte avant le 1er tiret.

 

Exemple avec 2 séparateurs

Comment faire si je veux extraire les caractères avant le 2ème tiret ?

Si vous souhaitez extraire tout le texte avant le deuxième tiret :

Vous ajoutez le chiffre 2 en 3ème argument [no_instance]:

 

 

 

=TEXTE.AVANT(A3;"-";2) Produit-2026

Excel affichera le texte avant le 2ème tiret.

Le troisième argument [numéro_instance] permet de choisir avant quelle occurrence du séparateur extraire le texte.

 

 

 

 

Exemple avec une extension de fichier

La cellule A4 contient :

rapport_budget_12_2025.xlsx

=TEXTE.AVANT(A4;".") ➜ rapport_budget_12_2025

 

Remarque : Dans ces exemples simples, on aurait pu aussi utiliser la fonction TEXTE.APRES.

 

Fonction TEXTE.APRES

La fonction TEXTE.APRES fait l’inverse : elle renvoie tout ce qui se trouve après un caractère ou un mot précis.

La syntaxe est exactement la même.

 

Syntaxe :

= TEXTE.AVANT(texte; délimiteur; [numéro_instance]; [mode_correspondance];[fin_correspondance];[si_introuvable])

 

Exemple simple

Reprenons l'exemple avec l'adresse mail dans la cellule A2 :

contact@maitrisez-excel.fr

 

Formule :

=TEXTE.APRES(A2;"@")

Excel renvoie : maitrisez-excel.fr

 

 

Exemple avec plusieurs délimiteurs

La cellule A5 contient :

France/Réunion/Saint-Pierre/97410

On veut extraire le texte après le 2ème slash (/), soit la ville et le code postal.

=TEXTE.APRES(A5;"/";2) ➜ Saint-Pierre/97410

 

Si on veut extraire uniquement le code postal, soit le texte après le 3ème slash (/).

=TEXTE.APRES(A5;"/";3) ➜ 97410

 

Vous pouvez cibler exactement la position du séparateur voulu grâce à l’argument [no_instance].

 

Notes : On aurait pu aussi utiliser la fonction TEXTE.AVANT.

On peut aussi extraire dans certains cas les éléments en utilisant les fonctions DROITE, GAUCHE et STXT  pour extraire des éléments.

Dans cet exemple, le code postal est situé complètement à droite, on pouvait donc aussi utiliser la fonction DROITE.

=DROITE(A5;5)

Pour en savoir plus sur les fonctions DROITE et GAUCHE, l'article est ici.

 

Exemple combiné : avant et après un séparateur

On a vu précédemment comment extraire des données avec TEXTE.AVANT et TEXTE.APRES

Par exemple avec contact@maitrisez-excel.fr :

ExtraireFormuleRésultat
Avant le @=TEXTE.AVANT(A2;"@")contact
Après le @=TEXTE.APRES(A2;"@")maitrisez-excel.fr

 

Comment extraire le texte entre l'@ et le .  ?

Si vous voulez extraire ce qu’il y a après @ mais avant le .fr donc ramener uniquement maitrisez-excel il faut combiner TEXTE.AVANT et TEXTE.APRES :

=TEXTE.AVANT(TEXTE.APRES(B3;"@");".")

 

Vous pouvez aussi écrire :

=TEXTE.APRES(TEXTE.AVANT(B3;".");"@")

Dans ce cas , vous mettez d’abord le point puis l’@.

 

 

Comparatif avec les anciennes fonctions

Ancienne méthodeNouvelle méthodeRésultat
=GAUCHE(A2;CHERCHE("@";A2)-1)=TEXTE.AVANT(A2;"@")contact
=DROITE(A2;NBCAR(A2)-CHERCHE("@";A2))=TEXTE.APRES(A2;"@")Maitrisez-excel

 

Les nouvelles fonctions sont plus simples, plus lisibles, et ne nécessitent plus de combinaisons compliquées avec CHERCHE ou NBCAR.

 

En anglais :

  • TEXTE.AVANTTEXTBEFORE
  • TEXTE.APRESTEXTAFTER

 

Les fonctions TEXTE.AVANT() et TEXTE.APRES() s’utilisent souvent avec :

  • FRACTIONNER.TEXTE() → pour séparer un texte dans plusieurs cellules
  • SUBSTITUE() → pour nettoyer le fichier après extraction
  • CONCAT() ou JOINDRE.TEXTE() → pour reconstruire après découpage

 

Cet article sur les fonctions TEXTE.AVANT et TEXTE.APRES est terminé.

Pour recevoir des exercices supplémentaires corrigés sur les fonctions combinées, vous pouvez vous abonner au blog si ce n’est pas encore fait, et recevoir en plus du contenu exclusif réservé aux membres.

Il vous suffit de renseigner votre prénom et votre adresse mail dans le formulaire ci-dessous ou dans la pop-up qui s’affiche parfois.

À bientôt sur le blog Maîtrisez Excel.

Steeve

Inscris toi au blog pour maitriser Excel

Inscris toi au blog pour maitriser Excel

 

Abonne toi au blog et reçois des articles, des vidéos et des formations gratuites pour enfin maitriser Excel

Vous êtes inscrit au blog Maitrisez Excel