Qu'est-ce que la fonction REGEX. EXTRAIRE ?
REGEX.EXTRAIRE (REGEXEXTRACT en anglais) te sert à récupérer dans un texte l'information qui a une forme reconnaissable, comme une référence de facture, une adresse email, un code postal ou un montant. Tu décris cette forme une seule fois avec une expression régulière, et Excel va la chercher dans chaque cellule, où qu'elle se trouve dans la phrase.
C'est la fonction qu'il te faut pour nettoyer un export bancaire, isoler l'adresse d'un contact noyée dans une ligne de texte ou rassembler toutes les références citées dans un message. Elle remplace des dizaines de formules CHERCHE, TROUVE et STXT imbriquées par une seule expression, à condition d'avoir Excel pour Microsoft 365.
Syntaxe
=REGEX.EXTRAIRE(texte; modèle; [mode_renvoi]; [respect_casse])REGEX.EXTRAIRE est réservée à Excel pour Microsoft 365, sur Windows comme sur Mac. Dans un Excel en français, son nom anglais n'est pas reconnu et renvoie #NOM?.

Comprendre chaque paramètre de la fonction REGEX.EXTRAIRE
Seuls les deux premiers arguments sont obligatoires, le texte à fouiller puis le motif à y chercher. C'est le motif qui décide de ce que tu récupères, et c'est là que se jouent presque toutes les surprises.
Les deux derniers règlent la forme de la réponse. Le mode choisit entre la première correspondance, toutes les correspondances ou les seuls groupes entre parenthèses, et le respect de la casse décide si urgent trouve aussi URGENT.
texte
: le texte dans lequel chercherÇa peut être une référence de cellule (A2), un texte entre guillemets ("Contact marie@gmail.com") ou le résultat d'une autre fonction, comme SUPPRESPACE(A2).
Une cellule qui contient un nombre est lue comme du texte, si bien que =REGEX.EXTRAIRE(B2; "\d{2}") renvoie 12 quand B2 contient 12345. Le résultat, lui, est toujours du texte.
modèle
: l'expression régulière qui décrit ce que tu cherches[0-9]{5} signifie « exactement cinq chiffres consécutifs », parfait pour un code postal français, et \d+ signifie « un ou plusieurs chiffres ».
L'antislash s'écrit une seule fois, car Excel transmet le motif tel quel au moteur des expressions régulières. Les parenthèses créent des groupes de capture, que seul le mode 2 renvoie à part.
[mode_renvoi]
: ce que la fonction renvoie(facultatif)0, la valeur par défaut, donne la première correspondance. 1 donne toutes les correspondances, chacune dans sa cellule, déversées vers la droite. 2 donne les groupes entre parenthèses de la première correspondance, un par cellule, eux aussi vers la droite.
Les modes 1 et 2 ont besoin de cellules vides à droite de la formule. Si l'une d'elles est occupée, Excel renvoie #PROPAGATION!.
[respect_casse]
: `0`, la valeur par défaut, distingue les majuscules des minuscules, si bien que `urgent` ne trouve pas `URGENT`(facultatif)1 les confond.
Pour régler la casse sans toucher au mode, laisse le troisième argument vide entre deux points-virgules, comme dans =REGEX.EXTRAIRE(A2; "urgent"; ; 1). Le préfixe (?i) placé en tête du motif produit le même effet.

Comment utiliser REGEX.EXTRAIRE
Comment extraire une référence de facture avec la fonction REGEX.EXTRAIRE
Tu dois rapprocher des centaines de factures à partir de notes de suivi saisies à la volée, et chacune cache quelque part une référence au format FAC-ANNÉE-NUMÉRO. Tu veux récupérer cette référence seule, dans une colonne propre, pour la trier et la comparer à ton export comptable. La fonction REGEX.EXTRAIRE reconnaît la forme de la référence et te la renvoie, où qu'elle se trouve dans la phrase.
- 1Dans une cellule, écris
=REGEX.EXTRAIRE(. - 2En 1er argument : clique sur la cellule qui contient le texte à fouiller,
A2. C'est la note de suivi entière, et la fonction ira y chercher la référence où qu'elle se trouve dans la phrase. - 3En 2ᵉ argument : écris entre guillemets le motif à retrouver,
"FAC-\d{4}-\d+". Il se lit « le texteFAC-, puis exactement quatre chiffres, un tiret, puis au moins un chiffre », et c'est lui seul qui décide de ce que tu récupères. - 4Ferme la parenthèse et appuie sur Entrée.
=REGEX.EXTRAIRE(A2; "FAC-\d{4}-\d+")FAC-, quatre chiffres, un tiret, puis des chiffres. Tout le reste de la phrase est ignoré, donc la place de la référence dans le texte n'a aucune importance.Comment ne récupérer qu'une partie du motif avec la fonction REGEX.EXTRAIRE
Tes fiches de contact arrivent sur une seule ligne, avec le nom et l'adresse séparés par un libellé toujours identique. Tu veux l'adresse seule, prête à être collée dans ton outil d'emailing, sans le Email : qui la précède. La fonction REGEX.EXTRAIRE sait viser un repère dans le texte tout en ne renvoyant que la portion qui t'intéresse.
- 1Dans une cellule, écris
=REGEX.EXTRAIRE(. - 2En 1er argument : clique sur la cellule qui porte la ligne de contact complète,
A2. Le nom et l'adresse y tiennent sur une seule ligne, séparés par un libellé toujours identique. - 3En 2ᵉ argument : écris le motif en entourant de parenthèses la seule partie à récupérer,
"Email : (\S+)". Le libelléEmail :sert de repère et reste en dehors des parenthèses, tandis que le groupe(\S+)capture l'adresse, une suite de caractères sans espace. - 4En 3ᵉ argument : saisis le mode qui renvoie les groupes entre parenthèses,
2. Sans lui, Excel ignore les parenthèses et te rend la correspondance entière, libellé compris. - 5Ferme la parenthèse et appuie sur Entrée.
=REGEX.EXTRAIRE(A2; "Email : (\S+)"; 2)2 travaillent ensemble. Le libellé Email : sert de repère pour trouver le bon endroit, et le mode 2 ne renvoie que ce que capture le groupe (\S+), la suite de caractères sans espace qui le suit. Sans ce 2, la cellule afficherait Email : marie.dupont@gmail.com, libellé compris.Comment gérer l'erreur #N/A avec les fonctions REGEX.EXTRAIRE et SIERREUR
En vrai, toutes tes notes ne mentionnent pas une facture, certaines parlent d'un devis ou d'un simple point d'étape. Dès qu'une ligne ne contient aucune référence, ta colonne se couvre d'erreurs #N/A qui contaminent ensuite tout ce qui la référence. Tu veux un tableau propre, où l'absence de référence se lit comme une information et non comme une panne.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris l'extraction à surveiller et referme-la,
REGEX.EXTRAIRE(A2; "FAC-\d{4}-\d+"). C'est elle que SIERREUR évalue en premier, et c'est elle qui renvoie#N/Adès que la note ne mentionne aucune facture. - 3En 2ᵉ argument : écris ce que la cellule doit afficher quand l'extraction échoue,
"À compléter". Remplace-le par""si tu préfères laisser la cellule vide. - 4Ferme la parenthèse de la fonction SIERREUR et appuie sur Entrée. Celle de REGEX.EXTRAIRE a déjà été refermée à l'étape précédente.
=SIERREUR(REGEX.EXTRAIRE(A2; "FAC-\d{4}-\d+"); "À compléter")#N/A. La fonction SIERREUR intercepte cette erreur et écrit À compléter à la place, ce qui garde la colonne lisible et évite que l'erreur ne se propage dans les calculs qui s'appuient dessus.
Astuces avancées avec REGEX.EXTRAIRE
Rassemble toutes les correspondances dans une seule cellule
Avec 1 en troisième argument, REGEX.EXTRAIRE renvoie toutes les correspondances au lieu de la première, chacune dans sa cellule vers la droite. Pour les réunir dans une seule cellule, enveloppe-la dans JOINDRE.TEXTE, comme dans =JOINDRE.TEXTE(", "; VRAI; REGEX.EXTRAIRE(A2; "FAC-\d{4}-\d+"; 1)). Sur une note qui cite trois factures, la cellule affiche FAC-2024-1523, FAC-2024-1524, FAC-2025-0087.
C'est la bonne parade quand tu ne sais pas combien de références chaque ligne contient.
Convertis le résultat en nombre avec CNUM
REGEX.EXTRAIRE renvoie toujours du texte, même quand elle extrait des chiffres, et ce texte ne se laisse pas additionner. Enveloppe-la dans CNUM pour obtenir un vrai nombre, comme dans =CNUM(REGEX.EXTRAIRE(A2; "\d+")), qui renvoie 125 sur Prix : 125 EUR.
Le réflexe vaut pour tous les montants, quantités et numéros que tu extrais d'un texte.
Crée une bibliothèque de motifs dans un onglet dédié
Dans un onglet séparé de ton classeur, tiens une liste de tes regex les plus utiles (emails, téléphones, codes postaux, références) avec des exemples et des notes. Tu pourras les copier-coller rapidement au lieu de les réécrire à chaque fois.
Avec le temps, cette bibliothèque devient un actif réutilisable d'un projet à l'autre.

Les erreurs fréquentes avec la fonction REGEX.EXTRAIRE
Avec REGEX.EXTRAIRE, la moitié des ennuis viennent du motif lui-même, un point qu'on n'a pas échappé et qui accepte n'importe quel caractère, ou un .* trop gourmand qui avale plus de texte que prévu.
L'autre moitié vient de ce que la fonction renvoie. Elle affiche #N/A dès qu'elle ne trouve rien et #VALEUR! quand le motif est mal formé, et elle rend la correspondance entière tant que tu ne lui demandes pas les groupes avec le mode 2, un piège fréquent quand on arrive de Google Sheets.
Oublier d'échapper les caractères spéciaux
Les caractères comme ., +, *, ( et ) ont une signification spéciale dans une expression régulière. Un point sans antislash veut dire « n'importe quel caractère » et non un point littéral, si bien que sur Total 12X50 puis 12.50, =REGEX.EXTRAIRE(A2; "[0-9]+.[0-9]{2}") renvoie 12X50.
Solution : Échappe le caractère avec un antislash quand tu le cherches au sens littéral. =REGEX.EXTRAIRE(A2; "[0-9]+\.[0-9]{2}") renvoie bien 12.50, et un seul antislash suffit dans Excel.
Erreur #N/A non gérée qui casse les formules en aval
Si REGEX.EXTRAIRE ne trouve aucune correspondance, elle renvoie #N/A. Toute formule qui référence cette cellule hérite de l'erreur, et le tableau devient illisible.
Solution : Enveloppe REGEX.EXTRAIRE dans SIERREUR, avec =SIERREUR(REGEX.EXTRAIRE(A2; "motif"); "") pour une cellule vide ou =SIERREUR(REGEX.EXTRAIRE(A2; "motif"); "Non trouvé") pour un message explicite.
Récupérer le libellé avec le groupe entre parenthèses
Dans Google Sheets, un motif qui contient des parenthèses renvoie le contenu du groupe. Dans Excel, le mode par défaut renvoie la correspondance entière, si bien que =REGEX.EXTRAIRE(A2; "Email : (\S+)") affiche Email : marie.dupont@gmail.com.
Solution : Ajoute 2 en troisième argument pour ne garder que le groupe. Tu peux aussi écrire le repère en regard arrière, qui n'entre pas dans la correspondance, comme dans =REGEX.EXTRAIRE(A2; "(?<=Email : )\S+").
Erreur #VALEUR! à cause d'un motif mal formé
Un crochet ou une parenthèse jamais refermé rend le motif illisible, et Excel renvoie #VALEUR!. =REGEX.EXTRAIRE(A2; "[0-9") en est l'exemple type.
Solution : Vérifie que chaque crochet et chaque parenthèse a sa fermeture. En cas de doute, simplifie le motif jusqu'à une version qui fonctionne, puis ajoute les contraintes une à une.
Erreur #NOM? à la saisie de la formule
Dans un Excel en français, le nom anglais de la fonction n'est pas reconnu et la cellule affiche #NOM?. Une version d'Excel sans Microsoft 365, qui ne connaît pas la fonction, réagit de la même façon.
Solution : Écris le nom français, REGEX.EXTRAIRE. Sans Microsoft 365, reviens à CHERCHE, TROUVE et STXT, qui savent extraire un texte dont tu connais le repère et la longueur.
Motif trop gourmand qui capture trop de texte
Les quantificateurs * et + prennent le plus de texte possible. Sur Réf. A12 (urgent) et (normal), =REGEX.EXTRAIRE(A2; "\(.*\)") renvoie (urgent) et (normal), de la première parenthèse ouvrante à la dernière fermante.
Solution : Ajoute un ? après le quantificateur pour qu'il s'arrête au plus tôt. =REGEX.EXTRAIRE(A2; "\(.*?\)") renvoie alors (urgent).

REGEX.EXTRAIRE vs CHERCHE vs TROUVE vs STXT
Tu prends REGEX.EXTRAIRE quand tu cherches une forme plutôt qu'un mot fixe (un email, un numéro, une référence) et que tu veux récupérer directement la valeur, pas sa position. Sans Microsoft 365, CHERCHE et TROUVE te donnent la position d'un texte connu, et STXT découpe à partir de cette position.
Cette combinaison tient tant que l'information garde une longueur fixe. =STXT(A2; CHERCHE("FAC-"; A2); 13) renvoie la même référence FAC-2024-1523 que l'Exemple 1, mais un numéro plus long serait coupé net.
| Critère | REGEX.EXTRAIRE | CHERCHE | TROUVE | STXT |
|---|---|---|---|---|
| Disponibilité | Excel pour Microsoft 365 | Toutes les versions | Toutes les versions | Toutes les versions |
| Motifs complexes | Oui (regex) | Non (jokers ? et * seulement) | Non (texte exact) | Non |
| Extraction directe | Oui | Non (renvoie une position) | Non (renvoie une position) | Oui (avec une position connue) |
| Plusieurs correspondances | Oui (mode 1) | Non | Non | Non |
| Sensible à la casse | Oui, sauf respect_casse à 1 | Non | Oui | Sans objet |
| Cas d'usage | Extraction flexible sur motif | Trouver une position, casse ignorée | Trouver une position exacte | Extraire quand la position est connue |
Tu as peut-être encore une question
Oui, dans Excel pour Microsoft 365, sur Windows comme sur Mac. Dans un Excel en français, elle s'appelle REGEX.EXTRAIRE, et son nom anglais y renvoie #NOM?.
L'aide de Microsoft ne la cite pour aucune version sans abonnement, Excel 2024 compris. Sur ces versions, il faut revenir à CHERCHE, TROUVE et STXT.
Passe 1 en troisième argument. La fonction renvoie alors toutes les correspondances, chacune dans sa cellule, déversées vers la droite de la formule.
Pour les réunir dans une seule cellule, enveloppe le tout dans JOINDRE.TEXTE avec le séparateur de ton choix. Garde des cellules vides à droite de la formule, sinon Excel renvoie #PROPAGATION!.
REGEX.EXTRAIRE renvoie l'erreur #N/A quand le motif ne trouve rien, et cette erreur casse les formules qui référencent la cellule.
Pour afficher un message propre, enveloppe la fonction dans SIERREUR, comme =SIERREUR(REGEX.EXTRAIRE(A1; "motif"); "Aucun résultat"), ou remplace le message par "" pour laisser la cellule vide.
La version de Google Sheets n'a que deux arguments et renvoie le contenu des parenthèses dès que le motif en contient. Celle d'Excel attend le mode 2 pour le faire et offre en plus le mode 1, qui rend toutes les correspondances.
Les moteurs diffèrent aussi (RE2 chez Google, PCRE2 chez Microsoft), et Google Sheets refuse les nombres en entrée.
Non. Commence avec des motifs simples, [0-9]{5} pour un code postal ou \d+ pour une suite de chiffres, puis copie des motifs courants (emails, téléphones) et adapte-les à ton format.
Un site comme regex101.com te montre ce que capture chaque partie d'un motif. Choisis-y la saveur PCRE2, celle qu'utilise Excel.
Oui, par défaut elle distingue les majuscules des minuscules. Pour ignorer la casse, passe 1 en quatrième argument, comme dans =REGEX.EXTRAIRE(A1; "facture"; ; 1), ou ajoute (?i) au début du motif.
Les deux trouvent alors FACTURE, Facture et facture, ce qui sert sur des données saisies à la main.
REGEX.EXTRAIRE devient REGEXEXTRACT. Excel traduit le nom des fonctions selon la langue de son interface, donc tu tapes =REGEX.EXTRAIRE( dans un Excel français et =REGEXEXTRACT( dans un Excel anglais. Le classeur, lui, ne bouge pas. Un fichier écrit en français s'ouvre sans erreur dans un Excel anglais, qui affiche simplement REGEXEXTRACT à la place. Les autres fonctions sont dans la table français / anglais.
Pour aller plus loin
Tout ce dont tu as besoin pour maîtriser la fonction REGEX.EXTRAIRE se trouve ici.








