Aller au contenu principal

Qu'est-ce que la fonction TEXTE.APRES ?

Définition
La fonction TEXTE.APRES renvoie le texte situé après la première (ou Nème) occurrence d'un délimiteur dans une chaîne. Elle est disponible dans Excel 365 et Excel 2021 uniquement.

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

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.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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!.

1

texte

: la chaîne de caractères dans laquelle effectuer la recherche

Peut être une référence de cellule, une formule qui renvoie du texte, ou directement une chaîne entre guillemets.

2

délimiteur

: le caractère ou la suite de caractères qui marque le point de séparation

TEXTE.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.

3

[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".

4

[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.

5

[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é.

6

[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.

Le savais-tu ?
Pour attraper ce qui suit le dernier délimiteur, mets le numéro d'instance à -1 : Excel vise la dernière occurrence sans que tu comptes combien il y en a. C'est ce qui fait ressortir le nom de famille après un prénom composé, ou l'extension après le dernier point d'un nom de fichier.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans une cellule, écris =TEXTE.APRES(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour remplir toute la colonne Domaine.
Au final, ta formule devrait ressembler à ça :=TEXTE.APRES(D2; "@")
Explication
La fonction TEXTE.APRES repère l'arobase dans l'adresse et renvoie tout ce qui la suit, quelle que soit la longueur du domaine. Aucun comptage de caractères n'entre en jeu (c'est le délimiteur qui décide où couper), donc m.dubois@abc.fr et e.petit@corp.com passent par la même formule recopiée sur toute la colonne Domaine.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =TEXTE.APRES(.
  2. 2
    En 1er argument : clique sur la cellule qui contient le nom complet, A2. C'est la chaîne dans laquelle la fonction va chercher.
  3. 3
    En 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.
  4. 4
    En 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 Dupont en contient deux, Sophie Martin un seul, et la formule tombe juste dans les deux cas.
  5. 5
    En 4ᵉ argument : écris seulement le point-virgule qui suit, ce qui laisse vide le réglage de casse, sans objet pour un espace.
  6. 6
    En 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!.
  7. 7
    En 6ᵉ argument : saisis la valeur de secours, "Nom à compléter", affichée quand le délimiteur manque. La fiche Bernard n'a pas d'espace et déclencherait l'erreur #N/A sans elle.
  8. 8
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule sur toute la colonne.
Voici la formule que tu obtiens à la fin :=TEXTE.APRES(A2; " "; -1; ; ; "Nom à compléter")
Explication
Le -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.
Le combo gagnant
TEXTE.APRES avec un espace te donne le nom de famille, TEXTE.AVANT avec le même espace te donne le prénom. Les deux côte à côte scindent un nom complet en deux colonnes propres, prêtes pour un publipostage.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Solution : Passe mode_correspondance à 1 pour ignorer la casse : =TEXTE.APRES(A1; "fichier"; 1; 1). Ou normalise tes données en amont avec MINUSCULE ou MAJUSCULE.

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.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreTEXTE.APRESDROITESTXTCHERCHE
Extraction par délimiteurOui, nativeNon (nombre de car. fixe)Non (position fixe)Non (trouve la position seulement)
Dernière occurrenceOui (numéro_instance=-1)Non applicableNon applicableCombinaison complexe requise
Gestion casseOui (mode_correspondance)NonNonInsensible à la casse
Valeur par défaut si absentOui (si_introuvable)NonNonNon (retourne #VALEUR!)
DisponibilitéExcel 365 / 2021+Toutes versionsToutes versionsToutes versions
FAQ

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!.

Ressources

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