Article principal : Maîtriser Excel pour PME : le guide complet 2026
Ce tutoriel s’inscrit dans la série Excel pour PME. Pour la vue d’ensemble du sujet, lire d’abord le guide principal.
Pourquoi FRACTIONNER.TEXTE rend obsolète l’assistant Convertir
Pendant vingt ans, séparer une colonne de noms complets en deux colonnes Nom et Prénom, ou éclater une chaîne 2026-05-03;Plateau;Riz parfumé en trois cellules distinctes, exigeait l’Assistant Convertir du ruban Données : sélectionner la plage, choisir le délimiteur, valider, voir le résultat figé en place. Une opération destructrice qu’il fallait refaire à chaque arrivée de nouvelles données. Microsoft a livré en août 2022 trois fonctions matricielles qui changent radicalement la donne : FRACTIONNER.TEXTE qui éclate une chaîne en plusieurs cellules, TEXTE.AVANT qui extrait ce qui précède un délimiteur, et TEXTE.APRES qui extrait ce qui suit. Toutes trois sont des formules dynamiques — le résultat se met à jour automatiquement quand la source change.
L’objectif de ce tutoriel est concret. À la fin, vous saurez écrire les trois fonctions avec leurs arguments principaux, gérer plusieurs délimiteurs simultanément, ignorer les cellules vides, choisir entre la sortie en colonnes et en lignes, gérer les cas d’erreur, et combiner ces fonctions avec FILTRE et UNIQUE pour des cas avancés comme l’extraction du domaine de mille adresses email ou la décomposition de codes-barres internes. Le tutoriel suppose Excel pour Microsoft 365 sur le canal Current — les versions perpétuelles 2019, 2021 et 2024 ne reconnaissent pas ces fonctions.
Étape 1 — Vérifier la disponibilité dans votre version
FRACTIONNER.TEXTE, TEXTE.AVANT et TEXTE.APRES sont arrivées en disponibilité générale dans Excel pour Microsoft 365 à partir de la version 2208 (août 2022). Pour vérifier rapidement, taper =FRACTIONNER.TEXTE( dans une cellule vide. Si Excel propose l’autocomplétion avec son aide contextuelle en français, c’est bon. Si la cellule retourne #NOM?, c’est qu’Excel ne reconnaît pas la fonction — soit la version est trop ancienne, soit l’installation n’est pas Microsoft 365.
Note importante : selon les paramètres régionaux, le séparateur d’arguments en français est le point-virgule (;), en anglais c’est la virgule (,). Tous les exemples ci-dessous suivent la convention française. Sur un Excel installé en français, c’est le séparateur naturel.
Étape 2 — TEXTE.AVANT : extraire ce qui précède un délimiteur
Le cas d’usage canonique est de récupérer le prénom dans une colonne Nom complet formatée Diallo Mamadou. La logique : extraire tout ce qui se trouve avant le premier espace. La syntaxe complète est =TEXTE.AVANT(texte ; délimiteur ; [n_ième] ; [casse] ; [correspondance_fin] ; [si_introuvable]), mais en pratique on n’utilise souvent que les deux premiers arguments. Le 5e argument correspondance_fin est un drapeau (0 ou 1) qui indique s’il faut considérer la fin du texte comme un délimiteur valide quand l’occurrence cherchée n’est pas trouvée.
=TEXTE.AVANT(A2 ; " ")
Cette formule renvoie la portion de A2 qui précède le premier espace. Si A2 contient Mamadou Diallo, le résultat est Mamadou. Si A2 contient Mamadou Bachir Diallo, le résultat est encore Mamadou car on s’arrête au premier espace par défaut. Pour aller jusqu’au deuxième espace, on précise l’argument n_ième qui indique l’occurrence du délimiteur.
=TEXTE.AVANT(A2 ; " " ; 2)
Cette formule renvoie tout ce qui précède le deuxième espace. Sur Mamadou Bachir Diallo, le résultat est Mamadou Bachir. Si la chaîne ne contient pas deux espaces, l’argument optionnel si_introuvable permet de retourner une valeur de secours plutôt que l’erreur #N/A par défaut.
=TEXTE.AVANT(A2 ; " " ; 2 ; ; ; A2)
Les points-virgules consécutifs sautent les arguments intermédiaires casse et correspondance_fin. Avec cette formule, si la chaîne ne contient pas deux espaces, on récupère la chaîne complète au lieu de l’erreur. C’est le pattern à retenir pour des données brutes mal nettoyées.
Étape 3 — TEXTE.APRES : extraire ce qui suit un délimiteur
La symétrique de TEXTE.AVANT permet d’isoler tout ce qui se trouve après un délimiteur. Le cas le plus courant est l’extraction du domaine d’une adresse email à partir d’une colonne Email. La logique : prendre tout ce qui se trouve après l’arobase.
=TEXTE.APRES(B2 ; "@")
Sur commercial@itskillscenter.io, la formule renvoie itskillscenter.io. Cette extraction sert massivement aux analyses de provenance des contacts : combien d’adresses gmail dans la base ? quelles entreprises sont les plus représentées ? Une fois le domaine extrait sur toute la colonne, un GROUPER.PAR donne la répartition en quelques secondes.
L’argument n_ième fonctionne aussi avec une valeur négative pour compter en partant de la fin. =TEXTE.APRES("a.b.c.d" ; "." ; -1) renvoie d car on prend ce qui suit le dernier point. C’est l’astuce qui permet d’extraire l’extension d’un nom de fichier sans connaître la longueur du nom.
=TEXTE.APRES("rapport-2026-Q1.xlsx" ; "." ; -1)
Le résultat est xlsx. Pour extraire le nom de fichier sans extension, on combine avec TEXTE.AVANT en chaînant =TEXTE.AVANT(C2 ; "." ; -1) qui renvoie rapport-2026-Q1. Ces deux fonctions, conçues pour fonctionner ensemble, remplacent la combinaison verbeuse GAUCHE/DROITE/CHERCHE qu’on traînait depuis Excel 95.
Étape 4 — FRACTIONNER.TEXTE : éclater en plusieurs cellules
Quand on a besoin de séparer une chaîne en plus de deux morceaux, FRACTIONNER.TEXTE est l’outil. Sa syntaxe complète est =FRACTIONNER.TEXTE(texte ; délimiteur_col ; [délimiteur_ligne] ; [ignorer_vides] ; [casse] ; [remplir_avec]). La fonction renvoie un tableau dynamique qui se déverse dans les cellules voisines.
=FRACTIONNER.TEXTE("Riz parfumé;Boutique Plateau;25000" ; ";")
Cette formule produit trois cellules sur une ligne : Riz parfumé, Boutique Plateau, 25000. Le délimiteur est passé en deuxième argument et peut être un caractère unique ou une chaîne plus longue (par exemple " - " avec les espaces). Pour les CSV avec virgule, on utilise ",". Le résultat est un tableau dynamique référencable par D2# si la formule est en D2.
L’argument délimiteur_ligne permet une fragmentation bidimensionnelle. Si on a une chaîne Riz;Mil;Maïs|Plateau;Cocody;Mermoz, où ; sépare les colonnes et | sépare les lignes, on obtient une matrice de deux lignes sur trois colonnes.
=FRACTIONNER.TEXTE("Riz;Mil;Maïs|Plateau;Cocody;Mermoz" ; ";" ; "|")
Cette double fragmentation est utile pour parser des configurations stockées dans une seule cellule, ou pour décomposer des codes internes structurés. Un cas concret : un classeur de bons de commande où chaque ligne contient en cellule Items une chaîne SKU001:5;SKU002:3;SKU003:1 qu’on veut éclater en lignes (un produit par ligne) et en colonnes (SKU et quantité).
Étape 5 — Plusieurs délimiteurs simultanément
Quand les données arrivent de sources hétérogènes, on rencontre souvent plusieurs séparateurs dans la même colonne — par exemple un point-virgule pour certaines lignes et une virgule pour d’autres. L’argument délimiteur_col accepte un tableau littéral pour fractionner sur plusieurs caractères en une seule passe.
=FRACTIONNER.TEXTE(A2 ; {";"\","\"|"})
Le tableau {";"\","\"|"} liste trois délimiteurs possibles. Le caractère \ sépare les éléments d’un tableau ligne en notation française (en notation anglaise, c’est la virgule). Avec cette formule, qu’A2 contienne a;b;c, a,b,c ou a|b|c, le résultat sera toujours trois cellules a, b, c. Cette robustesse aux variations de format évite des heures de nettoyage manuel sur les imports de données externes.
Étape 6 — Ignorer les cellules vides
Une chaîne mal formée peut contenir des délimiteurs consécutifs comme a;;b;;c. Par défaut, FRACTIONNER.TEXTE produit cinq cellules dont deux vides, ce qui décale les données et casse les analyses en aval. L’argument ignorer_vides en quatrième position règle ce comportement : si on passe VRAI, les délimiteurs consécutifs sont fusionnés.
=FRACTIONNER.TEXTE("Riz;;;Mil;;Maïs" ; ";" ; ; VRAI)
Le résultat est Riz, Mil, Maïs — trois cellules au lieu des sept qu’aurait produit le défaut. Les points-virgules vides en troisième et cinquième arguments sautent délimiteur_ligne qu’on ne veut pas spécifier. Cette gestion propre des vides est essentielle quand on importe depuis des systèmes qui collent des séparateurs sans données entre eux, ce qui arrive régulièrement avec des extractions ERP.
Étape 7 — Combiner avec UNIQUE et FILTRE
Les vrais cas pratiques mélangent plusieurs fonctions. Imaginons une colonne Tags avec des chaînes commerce;export;agro, commerce;textile, tech;saas, qu’on veut transformer en liste plate de tags uniques pour construire un filtre. La pipeline tient en une formule.
=TRIER(UNIQUE(FRACTIONNER.TEXTE(JOINDRE.TEXTE(";";VRAI;A2:A100) ; ";")))
L’idée : JOINDRE.TEXTE concatène toutes les cellules en une seule chaîne avec ; comme séparateur ; FRACTIONNER.TEXTE ré-éclate sur le même séparateur en une grande liste plate ; UNIQUE supprime les doublons ; TRIER ordonne alphabétiquement. Le résultat est la liste triée des tags distincts dans toute la colonne, mise à jour automatiquement à chaque ajout. Sans ces fonctions matricielles, ce résultat aurait demandé une dizaine d’étapes Power Query ou un script VBA dédié.
Étape 8 — Cas concret : décomposer une référence produit
Un cas très courant en gestion de stock est la décomposition de SKU normalisés. Une PME utilise par exemple le format CAT-SUBCAT-COULEUR-TAILLE-NUMERO, par exemple VET-CHE-BLEU-XL-00037. Pour analyser les ventes par catégorie, sous-catégorie ou couleur sans surcharger les écritures, on éclate à la volée.
=FRACTIONNER.TEXTE(A2 ; "-")
La formule en B2 produit cinq cellules : VET, CHE, BLEU, XL, 00037. Pour récupérer une partie précise sans déverser tout le tableau, on encapsule dans INDEX.
=INDEX(FRACTIONNER.TEXTE(A2 ; "-") ; 3)
Cette formule renvoie uniquement le troisième élément, soit la couleur. Étendue sur la colonne, elle produit une nouvelle colonne Couleur directement utilisable dans les analyses GROUPER.PAR ou les tableaux croisés dynamiques. Aucun script, aucun assistant Convertir, aucune étape manuelle — la décomposition vit dans la cellule et se met à jour automatiquement.
Étape 9 — Gérer les cas d’erreur
Sur des données réelles, certaines lignes ne respectent pas le format attendu. Une SKU malformée, une adresse email sans arobase, un nom complet mono-mot. Sans gestion, ces cas produisent des erreurs qui se propagent. La gestion propre passe par l’argument si_introuvable pour TEXTE.AVANT et TEXTE.APRES, et par SIERREUR ou SI.NON.DISP autour de FRACTIONNER.TEXTE.
=SIERREUR(INDEX(FRACTIONNER.TEXTE(A2 ; "-") ; 3) ; "couleur inconnue")
Si la SKU n’a pas trois segments, INDEX renvoie une erreur et SIERREUR la remplace par couleur inconnue. Cette robustesse en aval est ce qui permet d’utiliser ces formules dans des tableaux de bord partagés sans risquer un affichage parsemé de #N/A rouges. La pratique recommandée est d’envelopper systématiquement les FRACTIONNER.TEXTE dans un SIERREUR dès qu’on travaille sur des données externes non maîtrisées.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| #NOM? sur FRACTIONNER.TEXTE | Excel non Microsoft 365 ou version trop ancienne | Mettre à jour vers Microsoft 365 ; ces fonctions n’existent pas en perpétuel |
| #N/A inattendu sur TEXTE.AVANT | Délimiteur absent dans la chaîne | Ajouter l’argument si_introuvable en sixième position |
| #PROPAGATION! sur FRACTIONNER.TEXTE | Cellules en aval non vides | Effacer les cellules qui bloquent le déversement |
| Plusieurs cellules vides dans le résultat | Délimiteurs consécutifs non gérés | Passer VRAI à ignorer_vides en 4e position |
| Le résultat coupe trop tôt | Délimiteur partiel non distinct | Préciser un délimiteur plus long, par exemple " - " avec espaces |
| Casse mal gérée | Argument casse à zéro par défaut | Passer 1 en 5e position pour ignorer la casse |
| Tableau {« ; »\ », »} ne fonctionne pas | Notation française requiert \ pour ligne, virgule pour colonne |
Vérifier les paramètres régionaux Excel et adapter le séparateur de tableau |
Tutoriels associés
- GROUPER.PAR et PIVOTER.PAR : alternative aux tableaux croisés dynamiques
- Python dans Excel : analyser ses données avec pandas et matplotlib
- Copilot dans Excel : générer formules et analyses en langage naturel
Pour aller plus loin
Retour au guide principal : Maîtriser Excel pour PME : le guide complet 2026.
- Microsoft — Fonction FRACTIONNER.TEXTE
- Microsoft — Fonction TEXTE.AVANT
- Microsoft — Fonction TEXTE.APRES
- Microsoft — Fonction JOINDRE.TEXTE
- Microsoft — Fonction UNIQUE
FAQ
Pourquoi mon Excel 2021 ne reconnaît-il pas FRACTIONNER.TEXTE ?
Ces fonctions sont exclusives à Excel pour Microsoft 365. Elles ne sont pas livrées dans les versions perpétuelles 2019, 2021 ou 2024. Pour les utiliser, il faut un abonnement Microsoft 365 (Famille, Personnel, Business ou Enterprise) qui donne accès aux mises à jour de fonctions.
Quelle différence avec l’ancien assistant Convertir du ruban Données ?
L’assistant Convertir effectue une opération destructrice et figée : il transforme la sélection sur place et le résultat ne se met pas à jour si la source change. FRACTIONNER.TEXTE est une formule dynamique : elle vit dans une cellule et recalcule à chaque modification. Pour les imports ponctuels, l’assistant reste pratique ; pour les pipelines récurrents, FRACTIONNER.TEXTE est nettement supérieur.
Peut-on utiliser ces fonctions avec Power Query ?
Oui, mais le couplage le plus efficace est l’inverse : utiliser Power Query pour le nettoyage initial des données, charger une table propre dans Excel, puis appliquer FRACTIONNER.TEXTE pour les transformations légères en cellule. Power Query reste préférable quand le volume dépasse cinquante mille lignes ou quand les transformations s’enchaînent en plus de cinq étapes.
FRACTIONNER.TEXTE accepte-t-il un délimiteur insensible à la casse ?
Oui, via l’argument casse en cinquième position. Passer 1 active la correspondance insensible à la casse — pratique pour fractionner sur le mot SEP qui peut apparaître écrit sep, Sep ou SEP selon les sources. La valeur par défaut 0 respecte la casse exacte.
Comment fractionner sur un saut de ligne dans une cellule ?
Le saut de ligne dans Excel est représenté par CAR(10). La formule devient =FRACTIONNER.TEXTE(A2 ; ; CAR(10)) où l’on passe le saut de ligne comme délimiteur de ligne et on omet le délimiteur de colonne. Le résultat est un tableau vertical d’une cellule de large.
Y a-t-il une limite au nombre d’éléments produits ?
La limite pratique est celle des cellules disponibles dans la plage de déversement — soit plusieurs millions de cellules. Pour des cas réels, c’est largement suffisant. La performance reste bonne jusqu’à dix mille appels FRACTIONNER.TEXTE par feuille ; au-delà, prévoir Power Query qui scale mieux pour les transformations massives.
FRACTIONNER.TEXTE remplace-t-il définitivement GAUCHE, DROITE et STXT ?
Pour les cas avec délimiteur connu, oui. GAUCHE, DROITE et STXT restent utiles pour extraire un nombre fixe de caractères sans délimiteur — par exemple les trois premières lettres d’un code postal, les deux derniers chiffres d’une année, ou une portion centrale par position absolue. Les deux familles de fonctions sont complémentaires plutôt que concurrentes.