📍 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)renvoie04532-VALIDEE(texte après la 2e occurrence du tiret).TEXTE.AVANT(...;"-")renvoie04532(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
- GROUPER.PAR et PIVOTER.PAR — autres fonctions matricielles modernes.
- Python dans Excel — pandas
str.splitet regex pour des cas complexes. - Copilot dans Excel — générer ces formules en langage naturel.
Références officielles
- 🔝 Retour au guide de référence
- Fonction TEXTSPLIT / FRACTIONNER.TEXTE
- Fonction TEXTBEFORE / TEXTE.AVANT
- Fonction TEXTAFTER / TEXTE.APRES
- Tableaux dynamiques et plages déversantes
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