Qu'est-ce que la fonction TEXTE. APRES ?
TEXTE.APRES (TEXTAFTER en anglais) te sert quand tu dois isoler la partie d'un texte qui suit un repère précis (une arobase, un tiret, un espace) sans compter de caractères à la main ni composer une formule à rallonge avec DROITE et CHERCHE.
Concrètement, c'est elle qui isole le domaine d'une adresse email pour un segment marketing, extrait le nom de famille après le dernier espace dans un publipostage, récupère l'extension d'un fichier après le dernier point, ou découpe une référence produit structurée du type CATEGORIE-FAMILLE-REFERENCE. Combine-la avec TEXTE.AVANT pour extraire n'importe quel segment d'une chaîne complexe.
Syntaxe
=TEXTE.APRES(texte; délimiteur; [numéro_instance]; [mode_correspondance]; [mode_fin]; [si_introuvable])Clique sur un argument pour aller à son explication.
Si le délimiteur est introuvable et que si_introuvable est omis, TEXTE.APRES renvoie #N/A. Utilise le paramètre si_introuvable plutôt que d'envelopper la formule avec SIERREUR : c'est plus performant et plus lisible sur des milliers de lignes.

Comprendre chaque paramètre de la fonction TEXTE.APRES
TEXTE.APRES attend d'abord le texte à fouiller, puis le délimiteur après lequel couper : ces deux-là sont obligatoires. Viennent ensuite quatre réglages facultatifs dans cet ordre figé : quelle occurrence du délimiteur viser, faut-il ignorer la casse, la fin du texte compte-t-elle comme un délimiteur, et quoi renvoyer si le délimiteur manque.
Comme ils sont positionnels, tu sautes ceux que tu n'utilises pas avec des points-virgules vides. La valeur de secours étant le sixième argument, il faut bien quatre points-virgules après le délimiteur pour l'atteindre : =TEXTE.APRES(A1;"@";;;;"Aucun domaine") saute le numéro d'instance, le mode de casse et le mode de fin. Un point-virgule oublié fait atterrir ton texte de secours sur mode_fin, qui attend un nombre, et la formule renvoie #VALEUR!.
texte
: la chaîne de caractères dans laquelle effectuer la recherchePeut être une référence de cellule, une formule qui renvoie du texte, ou directement une chaîne entre guillemets.
délimiteur
: le caractère ou la suite de caractères qui marque le point de séparationTEXTE.APRES renvoie tout ce qui se trouve après ce délimiteur. Il peut s'agir d'un espace " ", d'une arobase "@", d'un tiret "-", d'une virgule ou même d'un mot complet.
Par défaut, la recherche est sensible à la casse : "A" et "a" sont des délimiteurs différents. Utilise le paramètre mode_correspondance pour ignorer la casse.
[numéro_instance]
: quelle occurrence du délimiteur utiliser(facultatif)Par défaut 1 (la première). Mets 2 pour la deuxième, 3 pour la troisième, etc. La valeur -1 désigne la dernière occurrence, quelle que soit sa position dans le texte.
Exemple : sur "Dossier-Projet-2024" avec le délimiteur "-", numéro_instance=1 renvoie "Projet-2024", tandis que numéro_instance=-1 renvoie "2024".
[mode_correspondance]
: contrôle la sensibilité à la casse(facultatif)0 (défaut) : "A" et "a" sont différents. 1 : la casse est ignorée, "Mot", "MOT" et "mot" sont traités comme le même délimiteur.
Utile quand les données ont été saisies manuellement et que la casse n'est pas uniforme.
[mode_fin]
: décide si la fin du texte doit compter comme un délimiteur(facultatif)0 (défaut) : non, et un délimiteur absent déclenche #N/A. 1 : oui, la fin du texte fait office de délimiteur, si bien que =TEXTE.APRES(A1; "x"; 1; 0; 1) renvoie une chaîne vide sur "Sophie Martin" au lieu de l'erreur.
C'est le paramètre le plus souvent oublié, et c'est lui qui casse les formules : il occupe la cinquième position, juste avant si_introuvable. Comme il attend un nombre, y placer un texte de secours par erreur renvoie #VALEUR!. Note aussi que mode_fin à 1 rend si_introuvable inopérant, puisque le délimiteur est alors toujours trouvé.
[si_introuvable]
: la valeur à renvoyer si le délimiteur est absent du texte(facultatif)Par défaut, TEXTE.APRES renvoie #N/A. Ce paramètre te permet de spécifier un message personnalisé, une chaîne vide, ou n'importe quelle valeur de substitution pour rendre la formule robuste.
C'est le sixième et dernier argument. Pense à compter tes points-virgules quand tu sautes les réglages qui le précèdent, sinon ta valeur de secours atterrit sur mode_fin.

Exemples pratiques pas à pas
Comment extraire le texte après un caractère avec la fonction TEXTE.APRES
Une campagne B2B part la semaine prochaine et tu veux la cibler entreprise par entreprise plutôt que d'arroser toute ta base d'un seul message. Ton fichier client liste le segment, la région et l'adresse email de chaque contact, et c'est le domaine placé après l'arobase qui trahit l'entreprise. La fonction TEXTE.APRES va chercher ce qui suit l'arobase et remplit la colonne Domaine sur toute la liste, sans que tu retapes une seule adresse.
- 1Dans une cellule, écris
=TEXTE.APRES(. - 2En 1er argument : clique sur la cellule qui contient l'adresse email,
D2. C'est à l'intérieur de cette chaîne que la fonction ira chercher son point de découpe. - 3En 2ᵉ argument : saisis le caractère qui marque la coupure, l'arobase
"@"entre guillemets parce qu'il s'agit de texte. La fonction renvoie alors tout ce qui suit ce délimiteur, autrement dit le domaine. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour remplir toute la colonne Domaine.
=TEXTE.APRES(D2; "@")m.dubois@abc.fr et e.petit@corp.com passent par la même formule recopiée sur toute la colonne Domaine.Comment viser le dernier délimiteur et éviter l'erreur #N/A avec la fonction TEXTE.APRES
Le publipostage part demain et chaque courrier doit s'ouvrir sur « Madame Martin », pas sur le nom complet du contact. Tes fiches sont saisies dans une seule colonne, avec des prénoms composés, parfois un deuxième prénom, et une ligne où le prénom manque carrément : le nom de famille n'est donc jamais au même rang. La fonction TEXTE.APRES sait viser le dernier espace de chaque ligne et sortir le nom de famille seul, même sur les fiches incomplètes.
- 1Dans une cellule, écris
=TEXTE.APRES(. - 2En 1er argument : clique sur la cellule qui contient le nom complet,
A2. C'est la chaîne dans laquelle la fonction va chercher. - 3En 2ᵉ argument : saisis le caractère qui marque la coupure, un simple espace
" "entre guillemets. C'est lui qui sépare le prénom du nom de famille. - 4En 3ᵉ argument : saisis l'occurrence à viser,
-1, pour désigner le dernier espace de la ligne sans compter combien il y en a.Marie Claire Duponten contient deux,Sophie Martinun seul, et la formule tombe juste dans les deux cas. - 5En 4ᵉ argument : écris seulement le point-virgule qui suit, ce qui laisse vide le réglage de casse, sans objet pour un espace.
- 6En 5ᵉ argument : écris de même le point-virgule suivant sans rien avant lui, ce qui saute le réglage décidant si la fin du texte fait office de délimiteur. Ces deux positions laissées vides coup sur coup expliquent les trois points-virgules qui se suivent, et n'en mettre que deux ferait glisser ta valeur de secours sur ce réglage, qui attend un nombre, au point que toute la colonne renverrait
#VALEUR!. - 7En 6ᵉ argument : saisis la valeur de secours,
"Nom à compléter", affichée quand le délimiteur manque. La ficheBernardn'a pas d'espace et déclencherait l'erreur#N/Asans elle. - 8Ferme la parenthèse et appuie sur Entrée, puis recopie la formule sur toute la colonne.
=TEXTE.APRES(A2; " "; -1; ; ; "Nom à compléter")-1 fait viser le dernier espace de la ligne plutôt que le premier : Marie Claire Dupont renvoie Dupont, là où la première occurrence aurait donné Claire Dupont. Le dernier argument couvre la fiche Bernard, saisie sans espace, qui afficherait l'erreur #N/A sans lui.
Les erreurs fréquentes avec la fonction TEXTE.APRES
Presque tous les ennuis avec TEXTE.APRES finissent par un #N/A, et derrière ce code se cache la même question : le délimiteur que tu cherches existe-t-il vraiment, écrit exactement comme ça, dans ta cellule ? Un "@" absent, une 3ème occurrence demandée alors qu'il n'y en a que deux, ou un "Fichier" cherché en "fichier" (la casse compte par défaut) : à chaque fois, rien n'est trouvé et la formule rend #N/A.
Les deux autres pièges sont plus sournois car ils ne plantent pas : un espace invisible collé en tête de résultat, et le #NOM? qui trahit une version d'Excel antérieure à 2021 où la fonction n'existe pas encore.
Erreur #N/A : délimiteur introuvable dans le texte
TEXTE.APRES renvoie #N/A quand le délimiteur spécifié n'existe pas dans la chaîne source. Par exemple, chercher "@" dans "jean.dupont.gmail.com" (sans arobase) ne trouve rien.
Solution : Utilise le paramètre si_introuvable pour définir une valeur de remplacement : =TEXTE.APRES(A1; "@"; ; ; ; "Email invalide"). Compte bien les quatre points-virgules après le délimiteur, car si_introuvable est le sixième argument. C'est plus efficace qu'entourer avec SIERREUR sur de grandes plages.
Erreur #N/A : occurrence demandée inexistante
Si tu demandes la 3ème occurrence d'un délimiteur alors qu'il n'apparaît que 2 fois dans le texte, TEXTE.APRES renvoie #N/A. Les données ne sont pas toujours uniformes.
Solution : Utilise -1 pour cibler la dernière occurrence, ce qui est robuste quelle que soit la structure de la chaîne. Ou utilise si_introuvable pour gérer les cas sans assez d'occurrences.
Mauvais résultat à cause de la casse du délimiteur
Par défaut, TEXTE.APRES distingue majuscules et minuscules. Chercher "fichier" ne trouvera pas "Fichier" ou "FICHIER" dans le texte, et la formule renvoie #N/A.
Espaces résiduels en début de résultat
Les données importées contiennent souvent des espaces invisibles. Si le texte est "Sophie Martin" (double espace), extraire après le premier espace renvoie " Martin" avec un espace en tête.
Solution : Nettoie les données en amont avec SUPPRESPACE : =TEXTE.APRES(SUPPRESPACE(A1); " "). SUPPRESPACE supprime les espaces en tête, en queue et réduit les espaces multiples internes à un seul.
Erreur #NOM? : version d'Excel incompatible
TEXTE.APRES n'est pas reconnue par les versions antérieures à Excel 2021. Les versions 2016 et 2019 affichent #NOM?.
Solution : Sur les versions plus anciennes, reproduis le comportement avec les fonctions classiques : =DROITE(A1; NBCAR(A1)-CHERCHE("@";A1)) extrait le domaine d'un email. C'est plus complexe mais compatible avec toutes les versions.

TEXTE.APRES vs DROITE vs STXT vs CHERCHE
Choisis TEXTE.APRES dès que le point de découpe est un caractère ou un mot, pas une position fixe : c'est la seule des quatre à savoir viser la dernière occurrence d'un délimiteur (numéro_instance=-1), à ignorer la casse au besoin et à renvoyer une valeur de secours plutôt qu'une erreur. DROITE et STXT, elles, comptent un nombre de caractères ou partent d'une position figée, ce qui les rend parfaites quand la longueur ne bouge jamais et inutilisables sur un domaine email ou une extension de fichier de longueur variable.
CHERCHE ne fait que te donner la position du délimiteur, jamais le texte ; tu devrais la combiner avec DROITE pour obtenir ce que TEXTE.APRES sort d'un coup. Le vrai arbitrage reste la disponibilité : TEXTE.APRES exige Excel 365 ou 2021, alors que les trois autres tournent sur toutes les versions.
| Critère | TEXTE.APRES | DROITE | STXT | CHERCHE |
|---|---|---|---|---|
| Extraction par délimiteur | Oui, native | Non (nombre de car. fixe) | Non (position fixe) | Non (trouve la position seulement) |
| Dernière occurrence | Oui (numéro_instance=-1) | Non applicable | Non applicable | Combinaison complexe requise |
| Gestion casse | Oui (mode_correspondance) | Non | Non | Insensible à la casse |
| Valeur par défaut si absent | Oui (si_introuvable) | Non | Non | Non (retourne #VALEUR!) |
| Disponibilité | Excel 365 / 2021+ | Toutes versions | Toutes versions | Toutes versions |
Questions fréquentes
TEXTE.APRES renvoie #N/A si le délimiteur est absent du texte source. Pour éviter cette erreur, utilise le sixième paramètre si_introuvable : =TEXTE.APRES(A1; "@"; ; ; ; "Aucun email") renvoie "Aucun email" au lieu de l'erreur. Attention au comptage des points-virgules : avec un seul de moins, ton message atterrit sur mode_fin et la formule renvoie #VALEUR!.
Utilise numéro_instance=-1 : =TEXTE.APRES(A1; " "; -1) renvoie tout ce qui se trouve après le dernier espace. Très utile pour le nom de famille dans un nom complet avec prénom composé, ou pour l'extension d'un fichier avec plusieurs points.
Non, TEXTE.APRES n'accepte qu'un seul délimiteur. Pour gérer plusieurs séparateurs possibles (espace ou tiret selon les cas), normalise d'abord tes données avec SUBSTITUE pour remplacer tous les délimiteurs variables par un seul, puis applique TEXTE.APRES.
Mets le paramètre mode_correspondance à 1 : =TEXTE.APRES(A1; "mot"; 1; 1) trouve "mot", "Mot" ou "MOT". Particulièrement utile pour des données saisies manuellement par des utilisateurs.
Imbrique les deux fonctions : =TEXTE.AVANT(TEXTE.APRES(A1; "-"; 1); "-"; 1) extrait le segment entre le premier et le deuxième tiret dans CATEGORIE-FAMILLE-REFERENCE. Commence par TEXTE.APRES pour te positionner après le premier délimiteur, puis TEXTE.AVANT pour t'arrêter avant le suivant.
Pour aller plus loin
Continue sur ta lancée après la fonction TEXTE.APRES : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



