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 :
| Extraire | Formule | Ré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éthode | Nouvelle méthode | Ré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.AVANT → TEXTBEFORE
- TEXTE.APRES → TEXTAFTER
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

