Qu'est-ce que la fonction STXT ?
STXT (MID en anglais) te sort de l'impasse dès que GAUCHE et DROITE ne suffisent plus : sitôt que l'info à récupérer se cache au milieu d'un texte, comme un code produit noyé dans une référence ou un numéro planqué dans un matricule, c'est elle que tu sors.
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.

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

Exemples pratiques pas à pas
Comment faire une fonction STXT simple
On te réclame pour demain un tableau des ventes ventilées par catégorie, et ta seule colonne exploitable, ce sont des codes du type PR-ELEC-001 où les quatre lettres du milieu désignent la catégorie. Recopier ça à la main sur des centaines de lignes avant l'échéance est hors de question, il te faut la catégorie seule dans une colonne propre. La fonction STXT l'extrait d'un coup pour alimenter tes filtres et tes rapports.
- 1Dans une cellule, écris
=STXT(. - 2En 1er argument : clique sur la cellule qui contient le code produit,
A2, où figurePR-ELEC-001. C'est le texte dans lequel la fonction va piocher. - 3En 2ᵉ argument : saisis la position du premier caractère à extraire,
4. La catégorie démarre juste après le préfixePR-, et la fonction compte toujours à partir de 1, jamais de 0. - 4En 3ᵉ argument : saisis le nombre de caractères à prendre,
4, soit la longueur de la catégorie. L'extraction s'arrête là, même s'il reste du texte derrière. - 5Ferme la parenthèse et appuie sur Entrée.
=STXT(A2; 4; 4)PR-ELEC-001 et en prend exactement quatre, ce qui isole la catégorie ELEC sans toucher au préfixe PR- ni au numéro. La technique tient tant que tes codes gardent une structure fixe et régulière.Comment extraire du texte entre deux caractères avec les fonctions STXT et TROUVE
Tu récupères un export de commandes juste avant de le charger dans ton outil de suivi, et la ville de livraison est noyée entre deux tirets dans des codes comme CMD-LYON-0087. Comme les noms de villes n'ont pas tous la même longueur, aucune position fixe ne tient la route et tu dois isoler la ville quelle que soit sa taille. Tu combines la fonction STXT avec TROUVE pour repérer les deux tirets et sortir la ville proprement, de LYON à BORDEAUX.
- 1Dans une cellule, écris
=STXT(. - 2En 1er argument : clique sur la cellule qui contient la référence complète,
A2, où figureCMD-LYON-0087. - 3En 2ᵉ argument : écris
TROUVE("-"; A2)+1au lieu d'un chiffre en dur. La fonction TROUVE repère le premier tiret et le+1fait démarrer juste après lui, si bien que l'extraction commence pile sur la première lettre de la ville même si le préfixe change un jour. - 4En 3ᵉ argument : écris
TROUVE("-"; A2; TROUVE("-"; A2)+1)-TROUVE("-"; A2)-1, la distance entre les deux tirets. Le TROUVE le plus à gauche repère le second tiret, dont on retranche la position du premier puis1, ce qui laisse exactement les lettres de la ville. - 5Ferme la parenthèse et appuie sur Entrée.
=STXT(A2; TROUVE("-"; A2)+1; TROUVE("-"; A2; TROUVE("-"; A2)+1)-TROUVE("-"; A2)-1)LYON ou huit comme BORDEAUX.Comment extraire une longueur variable avec les fonctions STXT et NBCAR
Ton fichier d'achats ne contient que des références du type REF-Chaise, et on te demande la liste des produits en clair pour la partager le jour même. Le préfixe REF- est toujours le même, mais le nom qui suit change de longueur à chaque ligne, donc tu ne peux pas couper à un endroit fixe sans tronquer les libellés les plus longs. Tu combines la fonction STXT avec NBCAR, qui mesure la longueur totale de chaque cellule, pour récupérer le nom entier quel qu'il soit.
- 1Dans une cellule, écris
=STXT(. - 2En 1er argument : clique sur la cellule qui contient la référence,
A2, où figureREF-Chaise. - 3En 2ᵉ argument : saisis la position de départ,
5. Le nom du produit commence toujours là, juste après le préfixeREF-qui compte quatre caractères. - 4En 3ᵉ argument : écris
NBCAR(A2)-4plutôt qu'un chiffre fixe, puisque les noms varient. C'est la longueur totale de la cellule moins les quatre caractères du préfixe, donc l'extraction prend le nom jusqu'au bout quelle que soit sa longueur. - 5Ferme la parenthèse et appuie sur Entrée.
=STXT(A2; 5; NBCAR(A2)-4)REF-, puis s'appuie sur NBCAR pour connaître la longueur totale du texte et en retrancher les quatre caractères du préfixe. La fonction STXT extrait ainsi le nom entier, qu'il fasse six lettres comme Chaise ou dix comme TableRonde.
Les 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
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.
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.
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.
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.
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.
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
Continue sur ta lancée après la fonction STXT : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



