Bureautique & Productivité

FRACTIONNER.TEXTE, TEXTE.AVANT et TEXTE.APRES dans Excel : tutoriel pas à pas

7 min de lecture

📍 Article principal : Excel pour PME : tableaux structurés, fonctions dynamiques, Copilot et Python
Ce tutoriel utilise FRACTIONNER.TEXTE, TEXTE.AVANT et TEXTE.APRES pour extraire et découper des chaînes de caractères, en remplacement des compositions historiques GAUCHE/DROITE/CHERCHE/NBCAR.

Objectif

Maîtriser les trois fonctions de manipulation de texte modernes pour : extraire un identifiant client d’un libellé, séparer un nom complet en prénom et nom, découper une adresse en composants (rue / ville / code postal), parser un horodatage textuel.

Disponibilité officielle

Source : support.microsoft.com — Fonction TEXTSPLIT.

  • Excel pour Microsoft 365 (Windows, Mac).
  • Excel 2024, Excel 2024 pour Mac.
  • Excel pour le web.

TEXTBEFORE (TEXTE.AVANT) et TEXTAFTER (TEXTE.APRES) partagent la même disponibilité (pages support officielles correspondantes).

Prérequis

  • Excel pour Microsoft 365, Excel 2024, Excel 2024 Mac, ou Excel pour le web.
  • Excel 2019 et Excel 2021 : ces fonctions ne sont pas disponibles — utiliser GAUCHE / DROITE / CHERCHE / NBCAR.
  • Niveau : intermédiaire — fonctions Excel et tableaux dynamiques.
  • Temps : 45 minutes.

Syntaxe officielle

FRACTIONNER.TEXTE

=FRACTIONNER.TEXTE(texte; séparateur_col; [séparateur_lig]; [ignorer_vides]; [respect_casse]; [valeur_si_introuvable])

TEXTE.AVANT

=TEXTE.AVANT(texte; délimiteur; [n_occurrence]; [respect_casse]; [si_introuvable])

TEXTE.APRES

=TEXTE.APRES(texte; délimiteur; [n_occurrence]; [respect_casse]; [si_introuvable])

Arguments optionnels :

  • n_occurrence : numéro d’occurrence du délimiteur. Positif = depuis le début, négatif = depuis la fin. Par défaut 1.
  • respect_casse : 0 = casse ignorée (défaut), 1 = casse respectée.
  • si_introuvable : valeur retournée si le délimiteur n’est pas présent. Par défaut #N/A.

Cas 1 — Extraire un identifiant d’un libellé

La cellule A2 contient FACTURE-2026-04532-VALIDEE. Pour extraire le numéro 04532 :

=TEXTE.AVANT(TEXTE.APRES(A2;"-";2);"-")

Décomposition :

  • TEXTE.APRES(A2;"-";2) renvoie 04532-VALIDEE (texte après la 2e occurrence du tiret).
  • TEXTE.AVANT(...;"-") renvoie 04532 (texte avant le 1er tiret de cette portion).

Alternative en une seule formule avec FRACTIONNER.TEXTE et INDEX :

=INDEX(FRACTIONNER.TEXTE(A2;"-");3)

Découpe la chaîne sur les tirets en plusieurs colonnes, prend la 3e (l’identifiant numérique).

Cas 2 — Séparer prénom et nom

La cellule B2 contient Aminata Sow. Pour séparer en deux colonnes :

=FRACTIONNER.TEXTE(B2;" ")

La formule renvoie un tableau qui se déverse sur deux cellules adjacentes : Aminata | Sow.

Pour les noms composés du type Marie Anne Diop, on souhaite que Marie Anne soit le prénom et Diop le nom — utiliser TEXTE.AVANT et TEXTE.APRES avec n_occurrence négatif :

Prénom : =TEXTE.AVANT(B2;" ";-1)
Nom    : =TEXTE.APRES(B2;" ";-1)

n_occurrence = -1 = dernière occurrence du délimiteur. Le nom est ce qui est après la dernière espace ; le prénom est tout ce qui précède.

Cas 3 — Découper une adresse en composants

La cellule C2 contient 12 rue des Champs, 75008 Paris, France. Pour découper en 3 colonnes :

=FRACTIONNER.TEXTE(C2;", ")

Sortie : 12 rue des Champs | 75008 Paris | France.

Pour extraire séparément le code postal et la ville depuis la 2e portion :

Code postal : =TEXTE.AVANT(INDEX(FRACTIONNER.TEXTE(C2;", ");2);" ")
Ville       : =TEXTE.APRES(INDEX(FRACTIONNER.TEXTE(C2;", ");2);" ")

Cas 4 — Découpage 2D (lignes et colonnes)

La cellule D2 contient une suite de paires clé-valeur :

nom=Diop;prenom=Aminata;email=aminata@exemple.com;tel=+221 77 123 45 67

Pour produire un tableau 2 colonnes (clé, valeur) :

=FRACTIONNER.TEXTE(D2;"=";";")

Le 2e séparateur (;) découpe en lignes, le 1er (=) découpe chaque ligne en 2 colonnes. La sortie est un tableau 4×2.

Pour récupérer une valeur précise (par exemple l’email) sur une autre cellule :

=RECHERCHEX("email";INDEX(FRACTIONNER.TEXTE(D2;"=";";");;1);INDEX(FRACTIONNER.TEXTE(D2;"=";";");;2))

Cherche email dans la 1re colonne du résultat, retourne la valeur en 2e colonne.

Cas 5 — Parser un horodatage textuel

La cellule E2 contient 2026-05-04T14:30:22Z (format ISO 8601). Pour extraire la date et l’heure :

Date  : =TEXTE.AVANT(E2;"T")
Heure : =TEXTE.AVANT(TEXTE.APRES(E2;"T");"Z")

Convertir en types Excel natifs :

Date Excel  : =DATEVAL(TEXTE.AVANT(E2;"T"))
Heure Excel : =TEMPSVAL(TEXTE.AVANT(TEXTE.APRES(E2;"T");"Z"))

Cas 6 — Gestion d’un délimiteur absent

La cellule F2 contient parfois un email avec @, parfois un libellé sans @. Pour ne pas casser quand @ est absent :

=TEXTE.AVANT(F2;"@";1;0;F2)

Le 5e argument F2 = valeur retournée si @ introuvable (ici on retourne le contenu original). Sans cet argument, la formule renvoie #N/A.

Cas 7 — Migration depuis l’ancienne syntaxe

Ancien (Excel 2019 et antérieurs) Nouveau
=GAUCHE(A2;CHERCHE("-";A2)-1) =TEXTE.AVANT(A2;"-")
=DROITE(A2;NBCAR(A2)-CHERCHE("-";A2)) =TEXTE.APRES(A2;"-")
=STXT(A2;CHERCHE("-";A2)+1;CHERCHE("-";A2;CHERCHE("-";A2)+1)-CHERCHE("-";A2)-1) =INDEX(FRACTIONNER.TEXTE(A2;"-");2)

Vérification

  • Tester sur quelques cas représentatifs avant de déployer la formule sur 1 000 lignes.
  • Vérifier le comportement avec valeur vide, espace en trop, accent dans le délimiteur.
  • Pour FRACTIONNER.TEXTE, vérifier que la plage adjacente est libre — sinon erreur #DÉVERSEMENT!.

Erreurs fréquentes

Erreur Cause Solution
#NOM? Excel 2019/2021 desktop sans Microsoft 365 FRACTIONNER.TEXTE / TEXTE.AVANT / TEXTE.APRES ne sont pas disponibles sur Excel 2021 selon la page Applies To officielle. Migrer vers Microsoft 365, Excel 2024 ou Excel pour le web
#N/A Délimiteur absent Utiliser le 5e argument si_introuvable
#DÉVERSEMENT! Cellules adjacentes occupées Libérer les cellules au-dessous/à droite
Espaces parasites Délimiteur entre des espaces Combiner avec SUPPRESPACE() sur le résultat
Casse non respectée Argument respect_casse à 0 par défaut Passer respect_casse à 1
Date stockée comme texte après extraction FRACTIONNER.TEXTE renvoie du texte Combiner avec DATEVAL() ou CNUM()

Tutoriels associés

Références officielles

FAQ

Différence FRACTIONNER.TEXTE vs Convertir du ruban Données ?
La commande Données → Convertir est une transformation ponctuelle qui produit des valeurs statiques. FRACTIONNER.TEXTE est une formule dynamique qui se met à jour automatiquement quand la source change.

Comment ignorer les délimiteurs vides consécutifs ?
4e argument ignorer_vides à 1 (par défaut 0). Utile quand la chaîne contient aa,,bb,,cc et qu’on veut juste aa | bb | cc.

Multi-délimiteurs ?
FRACTIONNER.TEXTE accepte un tableau de délimiteurs : FRACTIONNER.TEXTE(A2;{","|";"|" "}) découpe sur virgule, point-virgule ou espace.

Compatible avec Excel pour le web ?
Oui. Les trois fonctions sont disponibles dans Excel pour le web sur les plans Microsoft 365 commerciaux.

Différence avec les regex ?
FRACTIONNER.TEXTE ne fait pas de regex — uniquement du découpage par délimiteur littéral. Pour des patterns regex, utiliser Power Query (langage M) ou Python in Excel (module re).

Performance sur grosses tables ?
Très bonne — ces fonctions sont implémentées nativement et plus rapides que les compositions GAUCHE/DROITE/CHERCHE équivalentes.

Tutoriel Excel adapté aux PME et professionnels du Sénégal, Côte d’Ivoire, Mali, Burkina Faso, Niger, Togo, Bénin, Guinée et Mauritanie. Devise FCFA, plan comptable SYSCOHADA, contexte ouest-africain.

📊 Modèles Excel prêts à l’emploi pour PME

Tableau de bord commercial, suivi de trésorerie, gestion de stock, fichier de paie SYSCOHADA — des fichiers construits pour le contexte des PME d’Afrique de l’Ouest.

À partir de 30 000 FCFA · Livraison sous 48 à 72 h après brief

📧 E-mail💬 WhatsApp

Partager