STXT (MID en anglais) est la plus flexible des fonctions de texte d'Excel : elle extrait exactement le nombre de caractères que tu veux, à partir de la position que tu choisis. Là où GAUCHE et DROITE se contentent du début ou de la fin, STXT te donne un contrôle total sur le milieu du texte.
C'est elle qui te sauve quand tu nettoies des données importées : isoler un code produit au milieu d'une référence, sortir le mois d'un identifiant, récupérer un numéro de département dans un matricule. Fini les manipulations à la main, ligne par ligne.
Syntaxe de la fonction STXT
=STXT(texte; no_départ; nb_car)Comprendre chaque paramètre de la fonction STXT
texte
: le texte source depuis lequel tu veux extraire des caractèresÇa peut être une chaîne directe comme "Bonjour", une référence de cellule comme A1, ou même le résultat d'une autre fonction.
Si tu passes un nombre, Excel le convertit automatiquement en texte avant l'extraction. C'est pratique pour découper un identifiant numérique, mais souviens-toi que le résultat sortira toujours sous forme de texte.
no_départ
: la position du premier caractère à extraireLe premier caractère est à la position 1, pas 0 comme dans certains langages de programmation. Si tu indiques 5, l'extraction commence au cinquième caractère.
Cette position peut être calculée par une autre fonction, par exemple CHERCHE ou TROUVE, pour repérer dynamiquement un séparateur. Si no_départ est inférieur à 1, STXT renvoie l'erreur #VALEUR!.
Astuce : Pour repérer automatiquement où commencer, combine STXT avec CHERCHE : =STXT(A1; CHERCHE("-"; A1)+1; 4) démarre juste après le premier tiret, quelle que soit sa position.
nb_car
: le nombre de caractères à extraire depuis la position de départSi tu indiques 3, STXT extrait exactement 3 caractères. Si nb_car dépasse la longueur restante du texte, STXT renvoie simplement tous les caractères disponibles, sans erreur.
Si nb_car est négatif, tu obtiens l'erreur #VALEUR!. Pense à protéger les calculs qui peuvent devenir négatifs avec MAX(0; ...).
Astuce : Pour extraire tout le texte à partir d'une position jusqu'à la fin, mets un grand nombre dans nb_car : =STXT(A1; 5; 999). Excel s'arrête automatiquement à la fin du texte sans renvoyer d'erreur.
Pas envie d'écrire la formule STXT à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Gestionnaire de stock : extraire la catégorie d'un code produit
Tu es gestionnaire de stock et tous tes produits portent un code comme PRD-ELEC-001 ou PRD-MEUB-042. Tu veux extraire automatiquement la catégorie (les quatre lettres au milieu) pour créer des filtres et des rapports par catégorie, sans recopier quoi que ce soit à la main.
| A | B | |
|---|---|---|
| 1 | Code Produit | Catégorie |
| 2 | PRD-ELEC-001 | ELEC |
| 3 | PRD-MEUB-042 | MEUB |
| 4 | PRD-INFO-128 | INFO |
| 5 | PRD-JARD-055 | JARD |
| 6 | PRD-OUTIL-009 | OUTIL |
=STXT(A2; 5; 4)La fonction démarre à la position 5 (juste après PRD-, qui fait quatre caractères) et extrait les 4 caractères de la catégorie. Cette technique fonctionne tant que tes codes ont une structure fixe et prévisible.
Analyste RH : extraire le département depuis un matricule
Tu travailles aux ressources humaines et les matricules de tes employés sont structurés comme 2024-75-00123, où 75 représente le département. Tu dois extraire ce code pour analyser la répartition géographique de tes équipes.
| A | B | |
|---|---|---|
| 1 | Matricule | Département |
| 2 | 2024-75-00123 | 75 |
| 3 | 2024-69-00456 | 69 |
| 4 | 2024-13-00789 | 13 |
| 5 | 2024-44-00234 | 44 |
=STXT(A2; 6; 2)Ici, la fonction démarre à la position 6 (juste après 2024-, qui fait cinq caractères) puis prend les 2 chiffres du département. Une fois ce code extrait, tu peux créer des tableaux croisés dynamiques pour visualiser combien d'employés travaillent dans chaque région.
Comptable : isoler le mois dans une référence de facture
Tu es comptable et tes factures sont numérotées FACT-2024-03-1045, où 03 représente le mois. Tu veux extraire ce mois pour analyser ton chiffre d'affaires mensuel et repérer les tendances saisonnières.
| A | B | C | |
|---|---|---|---|
| 1 | N° Facture | Mois | Montant |
| 2 | FACT-2024-03-1045 | 03 | 2 500 € |
| 3 | FACT-2024-03-1046 | 03 | 1 800 € |
| 4 | FACT-2024-04-1047 | 04 | 3 200 € |
| 5 | FACT-2024-04-1048 | 04 | 950 € |
=STXT(A2; 11; 2)La fonction démarre à la position 11 (juste après FACT-2024-, qui fait dix caractères) pour récupérer les deux chiffres du mois. Tu peux ensuite combiner avec SOMME.SI pour calculer le total par mois et obtenir le chiffre d'affaires de mars.
Responsable marketing : extraire le canal depuis un code UTM
Tu travailles en marketing digital et tes codes de tracking sont formatés comme UTM_EMAIL_PROMO_Q1 ou UTM_SOCMED_BRAND_Q2. Tu veux extraire automatiquement le canal (EMAIL, SOCMED, etc.) pour analyser les performances de chaque source, même si les canaux n'ont pas tous la même longueur.
| A | B | C | |
|---|---|---|---|
| 1 | Code UTM | Canal | Clics |
| 2 | UTM_EMAIL_PROMO_Q1 | 1 240 | |
| 3 | UTM_SOCMED_BRAND_Q1 | SOCMED | 3 580 |
| 4 | UTM_SEARCH_CONV_Q2 | SEARCH | 890 |
| 5 | UTM_EMAIL_NEWS_Q2 | 2 100 |
=STXT(A2; 5; CHERCHE("_"; A2; 5)-5)La formule démarre à la position 5 pour sauter UTM_, puis CHERCHE repère le prochain _ afin de calculer la longueur exacte à extraire. Elle s'adapte donc seule à des canaux de tailles variables (EMAIL fait cinq lettres, SOCMED six).
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction STXT
Position de départ inférieure à 1
STXT renvoie #VALEUR! quand no_départ est inférieur à 1 ou négatif : Excel refuse d'extraire depuis une position qui n'existe pas. Ça arrive souvent quand tu calcules no_départ avec une formule qui retourne 0 ou un nombre négatif.
Solution : Solution : vérifie ta formule de calcul de no_départ et garantis un minimum de 1 avec MAX : =STXT(A1; MAX(1; formule); 5). Excel utilisera alors au minimum la position 1.
Nombre de caractères négatif
Si nb_car est négatif, STXT renvoie #VALEUR!. Ça se produit quand tu calcules nb_car avec une formule qui peut donner un résultat négatif, par exemple en soustrayant deux positions trouvées avec CHERCHE.
Solution : Solution : protège le calcul avec MAX(0; ...) pour que nb_car ne descende jamais sous 0 : =STXT(A1; 5; MAX(0; calcul)). Si le calcul donne -2, Excel utilise 0 et renvoie une chaîne vide plutôt qu'une erreur.
Le résultat est du texte au lieu d'un nombre
Quand tu extrais des chiffres avec STXT (un code postal, un département, un mois), le résultat est du texte, pas un nombre. Si tu essaies de faire des calculs dessus, Excel peut renvoyer des résultats incohérents ou des erreurs.
Solution : Solution : convertis le résultat en nombre avec CNUM : =CNUM(STXT(A1; 5; 2)). Tu peux aussi multiplier par 1 : =STXT(A1; 5; 2)*1. Les deux méthodes forcent Excel à traiter le résultat comme un nombre.
Position de départ décalée d'un cran
L'erreur la plus courante consiste à oublier que le premier caractère est à la position 1, pas 0. Si tu penses « sauter les 4 premiers caractères », tu dois utiliser la position 5, pas 4 : sinon tout est décalé d'un cran.
Solution : Solution : compte manuellement sur un exemple simple. Pour "ABCDE", la position 1 = A, la position 2 = B, etc. Pour démarrer sur C, c'est la position 3. Une fois le bon chiffre trouvé, applique-le à toute ta colonne.
STXT vs GAUCHE vs DROITE
GAUCHE et DROITE sont plus rapides à écrire mais figées aux extrémités du texte. STXT est la seule des trois à te laisser choisir librement le point de départ.
| Critère | STXT | GAUCHE | DROITE |
|---|---|---|---|
| Position de départ | Flexible (tu choisis) | Toujours au début | Toujours à la fin |
| Nombre de paramètres | 3 (texte, départ, nb) | 2 (texte, nb) | 2 (texte, nb) |
| Flexibilité | Maximale | Limitée au début | Limitée à la fin |
| Cas d'usage typique | Codes structurés, extraction au milieu | Préfixes, initiales | Extensions, suffixes |
| Rapidité d'écriture | Plus longue | Rapide | Rapide |
Questions fréquentes sur la fonction STXT
Quelle est la différence entre STXT, GAUCHE et DROITE ?
GAUCHE extrait depuis le début du texte, DROITE depuis la fin, alors que STXT extrait depuis n'importe quelle position que tu choisis.
STXT est la plus flexible des trois car tu contrôles exactement où commencer et combien de caractères prendre. En contrepartie, elle demande un paramètre de plus à renseigner.
Comment extraire un mot au milieu d'une phrase ?
Combine STXT avec CHERCHE pour trouver automatiquement la position du mot. CHERCHE repère un séparateur (souvent l'espace) et fournit à STXT le point de départ et la longueur à extraire.
Par exemple, =STXT(A1; CHERCHE(" "; A1)+1; CHERCHE(" "; A1; CHERCHE(" "; A1)+1)-CHERCHE(" "; A1)-1) extrait le deuxième mot d'une phrase, quelle que soit la longueur du premier.
Que se passe-t-il si le nombre de caractères dépasse la longueur du texte ?
Aucun problème : STXT renvoie simplement tous les caractères disponibles à partir de la position de départ, sans générer d'erreur.
Si tu demandes 10 caractères mais qu'il n'en reste que 5, tu obtiens ces 5 caractères. C'est pourquoi mettre un grand nombre comme 999 est une astuce sûre pour aller jusqu'à la fin du texte.
STXT fonctionne-t-elle avec des nombres ?
Oui. Excel convertit automatiquement le nombre en texte avant l'extraction. Par exemple, =STXT(12345; 2; 3) renvoie "234".
Attention toutefois : le résultat sera du texte, pas un nombre exploitable directement dans des calculs. Encadre-le avec CNUM si tu dois ensuite l'additionner ou le comparer numériquement.
Peut-on combiner STXT avec d'autres fonctions texte ?
Absolument, et c'est même très courant. Tu peux associer STXT à CHERCHE, TROUVE, NBCAR, SUBSTITUE ou SUPPRESPACE pour bâtir des formules d'extraction et de nettoyage de données.
C'est la base du data cleaning sous Excel : repérer un séparateur, calculer une longueur, puis isoler exactement la portion de texte dont tu as besoin.
Comment extraire les derniers caractères d'un texte de longueur variable ?
Combine STXT avec NBCAR pour calculer dynamiquement la position de départ depuis la fin. NBCAR te donne la longueur totale, ce qui te permet de reculer du bon nombre de caractères.
Par exemple, =STXT(A1; NBCAR(A1)-2; 3) extrait les trois derniers caractères, quelle que soit la longueur du texte. Cette approche reste valable même si tes cellules n'ont pas toutes la même taille.
Pour aller plus loin
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

