Fonction TEXTE.AVANTExtraire le texte avant un délimiteur – Guide 2026
TEXTE.AVANT (TEXTBEFORE en anglais) est une fonction Excel 365 qui extrait automatiquement le texte situé avant un délimiteur spécifié. Elle simplifie radicalement des tâches qui nécessitaient auparavant des combinaisons complexes de GAUCHE et CHERCHE. Idéale pour isoler des prénoms, des domaines d'email, des codes de département ou des références produit, cette fonction te permet de gagner un temps considérable dans le traitement de données textuelles.
Syntaxe
TEXTE.AVANT(texte; délimiteur; [correspondance_instance]; [mode_correspondance]; [si_non_trouvé])texte : Le texte source dans lequel tu veux chercher
délimiteur : Le caractère ou la chaîne qui marque la limite d'extraction
correspondance_instance (optionnel) : Quelle occurrence du délimiteur utiliser (1 par défaut, négatif pour compter depuis la fin)
mode_correspondance (optionnel) : 0 = sensible à la casse (défaut), 1 = insensible à la casse
si_non_trouvé (optionnel) : Valeur à retourner si le délimiteur n'est pas trouvé (évite l'erreur #N/A)
Astuce : Tu peux utiliser un tableau de délimiteurs pour chercher plusieurs séparateurs en même temps. Par exemple : =TEXTE.AVANT(A1; {"-";"_";"."}) retournera le texte avant le premier délimiteur trouvé.
Comprendre chaque paramètre
texte
(obligatoire)Le texte source contient les données que tu veux analyser. Il peut s'agir d'une référence de cellule (A1), d'une chaîne de texte entre guillemets ("Jean Dupont"), ou du résultat d'une autre formule. C'est dans ce texte que la fonction va chercher le délimiteur pour savoir où couper.
délimiteur
(obligatoire)Le délimiteur est le caractère ou la séquence de caractères qui marque la fin de l'extraction. Les délimiteurs les plus courants sont l'espace (" "), le tiret ("-"), l'arobase ("@"), le point (".") ou la virgule (","). Tu peux aussi spécifier plusieurs délimiteurs sous forme de tableau pour plus de flexibilité.
correspondance_instance
(optionnel)Ce paramètre optionnel définit quelle occurrence du délimiteur utiliser. Par défaut, c'est 1 (le premier délimiteur trouvé). Si tu mets 2, la fonction extraira le texte avant le deuxième délimiteur. Une astuce puissante : utilise un nombre négatif (-1) pour compter depuis la fin du texte !
=TEXTE.AVANT("A-B-C"; "-"; -1) → "A-B" (compte depuis la fin)
mode_correspondance
(optionnel)Le mode de correspondance détermine si la recherche du délimiteur respecte la casse (majuscules/minuscules). Par défaut (0), la recherche est sensible à la casse. Si tu mets 1, la fonction ignorera les différences de casse. C'est très utile quand tu traites des données saisies manuellement avec des incohérences.
Exemples pratiques en contexte professionnel
1. Extraction de prénoms dans une base RH
Tu gères une base de données RH avec des noms complets et tu as besoin d'isoler les prénoms pour créer des emails ou personnaliser des communications. TEXTE.AVANT extrait automatiquement tout ce qui précède le premier espace.
L'espace sert de séparateur naturel entre le prénom et le nom de famille.
| A | B | C | |
|---|---|---|---|
| 1 | Nom complet | Prénom | Formule |
| 2 | Jean Dupont | Jean | =TEXTE.AVANT(A2; " ") |
| 3 | Marie-Claire Martin | Marie-Claire | =TEXTE.AVANT(A3; " ") |
| 4 | Luc De La Fontaine | Luc | =TEXTE.AVANT(A4; " ") |
=TEXTE.AVANT(A2; " ")2. Extraction d'identifiants d'emails professionnels
Dans un CRM, tu dois extraire les identifiants d'adresses email pour créer des noms d'utilisateur ou analyser les conventions de nommage de tes contacts. TEXTE.AVANT isole tout ce qui précède l'arobase en une seule formule.
Idéal pour créer des listes d'identifiants uniques à partir d'adresses email.
| A | B | C | |
|---|---|---|---|
| 1 | Identifiant | Formule | |
| 2 | contact@entreprise.fr | contact | =TEXTE.AVANT(A2; "@") |
| 3 | jean.dupont@ledojo.club | jean.dupont | =TEXTE.AVANT(A3; "@") |
| 4 | support@client.com | support | =TEXTE.AVANT(A4; "@") |
=TEXTE.AVANT(A2; "@")3. Analyse de références produit par département
Tes références produit suivent le format "DÉPARTEMENT-ANNÉE-NUMÉRO" et tu veux regrouper les ventes par département. TEXTE.AVANT extrait uniquement le code département avant le premier tiret pour faciliter tes analyses.
Parfait pour créer des filtres et tableaux croisés dynamiques par département.
| A | B | C | |
|---|---|---|---|
| 1 | Référence produit | Département | Formule |
| 2 | VENTE-2024-001 | VENTE | =TEXTE.AVANT(A2; "-") |
| 3 | SUPPORT-2024-042 | SUPPORT | =TEXTE.AVANT(A3; "-") |
| 4 | MARKETING-2024-128 | MARKETING | =TEXTE.AVANT(A4; "-") |
=TEXTE.AVANT(A2; "-")4. Découpage de numéros de commande complexes
Dans un système de gestion des commandes, tu dois extraire le code client des numéros de commande au format "CLIENT-REGION-COMMANDE". En utilisant le paramètre correspondance_instance, tu peux extraire jusqu'au deuxième tiret pour obtenir "CLIENT-REGION".
Le paramètre 2 indique qu'on veut tout le texte avant le 2ème tiret.
| A | B | C | |
|---|---|---|---|
| 1 | N° Commande | Client-Région | Formule |
| 2 | FR001-IDF-20240315 | FR001-IDF | =TEXTE.AVANT(A2; "-"; 2) |
| 3 | BE042-BRX-20240316 | BE042-BRX | =TEXTE.AVANT(A3; "-"; 2) |
| 4 | CH088-GEN-20240317 | CH088-GEN | =TEXTE.AVANT(A4; "-"; 2) |
=TEXTE.AVANT(A2; "-"; 2)Astuce avancée : gérer les erreurs proprement
Plutôt que d'obtenir #N/A quand le délimiteur n'existe pas, utilise le 5ème paramètre pour définir une valeur par défaut :
Cette formule retournera "Pas d'email" si le texte ne contient pas d'arobase, plutôt qu'une erreur.
Comparaison avec les fonctions similaires
| Fonction | Usage principal | Avantages | Limites |
|---|---|---|---|
| TEXTE.AVANT | Extraire avant un délimiteur | Automatique, flexible, plusieurs occurrences | Excel 365 uniquement |
| TEXTE.APRES | Extraire après un délimiteur | Complémentaire, même flexibilité | Excel 365 uniquement |
| GAUCHE | Extraire N premiers caractères | Compatible toutes versions | Nécessite de connaître le nombre de caractères |
| STXT | Extraire au milieu du texte | Précis, compatible toutes versions | Nécessite position et longueur exactes |
| CHERCHE / TROUVE | Trouver la position d'un texte | Utile combiné avec GAUCHE | Ne fait que trouver, pas extraire |
Avant Excel 365 : Pour obtenir le même résultat que TEXTE.AVANT, tu devais combiner GAUCHE et CHERCHE : =GAUCHE(A1; CHERCHE("@"; A1)-1). TEXTE.AVANT simplifie tout ça en une seule fonction !
Erreurs fréquentes et solutions
Erreur #N/A - Délimiteur introuvable
Cette erreur apparaît quand le délimiteur que tu cherches n'existe pas dans le texte source.
Problème :
=TEXTE.AVANT("Jean Dupont"; "@") → #N/ASolution :
=TEXTE.AVANT("Jean Dupont"; "@"; 1; 0; "Pas d'email")Erreur #NOM? - Fonction non disponible
TEXTE.AVANT nécessite Microsoft 365 ou Excel 2021+. Si tu as une version antérieure, cette fonction n'existe pas.
Alternative pour versions antérieures :
=GAUCHE(A1; CHERCHE(" "; A1)-1)Cette combinaison GAUCHE + CHERCHE donne le même résultat mais est plus complexe à écrire.
Erreur #VALEUR! - Type de données incorrect
Cette erreur se produit quand tu fournis un type de données incompatible, comme un nombre là où un texte est attendu.
Solution :
=TEXTE.AVANT(TEXTE(A1; "0"); "-")Utilise la fonction TEXTE() pour convertir les nombres en texte.
Attention aux espaces invisibles
Les données importées contiennent souvent des espaces en début ou fin de cellule qui peuvent fausser tes résultats.
Bonne pratique :
=TEXTE.AVANT(SUPPRESPACE(A1); "@")SUPPRESPACE() nettoie les espaces superflus avant le traitement.
Questions fréquentes
TEXTE.AVANT fonctionne-t-elle avec plusieurs délimiteurs ?
Oui, tu peux spécifier un tableau de délimiteurs. Excel retournera le texte avant le premier délimiteur trouvé parmi tous ceux que tu as indiqués. C'est très pratique quand tu travailles avec des formats de données variés.
Que se passe-t-il si le délimiteur n'est pas trouvé ?
Par défaut, TEXTE.AVANT retourne l'erreur #N/A. Pour éviter cela, tu peux utiliser le 5ème paramètre si_non_trouvé pour définir une valeur par défaut, comme un texte vide ou un message personnalisé.
Comment extraire avant la 2ème occurrence d'un délimiteur ?
Utilise le 3ème paramètre correspondance_instance : =TEXTE.AVANT(A1; "-"; 2) pour extraire tout le texte avant le 2ème tiret. Tu peux aussi utiliser un nombre négatif pour compter depuis la fin.
TEXTE.AVANT est-elle sensible à la casse ?
Par défaut, oui. Mais tu peux utiliser le 4ème paramètre mode_correspondance avec la valeur 1 pour rendre la recherche insensible à la casse. Très utile pour traiter des données saisies manuellement.
Quelle est la différence entre TEXTE.AVANT et GAUCHE ?
TEXTE.AVANT cherche automatiquement un délimiteur et extrait tout ce qui est avant, tandis que GAUCHE nécessite de connaître le nombre exact de caractères à extraire. TEXTE.AVANT est donc plus flexible pour les données de longueur variable.
Fonctions similaires à explorer
Deviens un pro d'Excel avec Le Dojo Club
Rejoins notre communauté pour maîtriser toutes les fonctions Excel, partager tes astuces et progresser rapidement dans ton utilisation quotidienne.
Essayer pendant 30 jours