Aller au contenu principal

Qu'est-ce que la fonction REGEXEXTRACT ?

Définition
La fonction REGEXEXTRACT analyse une chaîne de texte et retourne la première portion qui correspond au motif (expression régulière) spécifié. Elle est exclusive à Google Sheets et retourne l'erreur #N/A si aucune correspondance n'est trouvée.

REGEXEXTRACT est une fonction puissante de Google Sheets qui te permet d'extraire automatiquement des informations structurées enfouies dans du texte. Emails, numéros de téléphone, codes postaux, références de factures, montants... tu décris le motif une fois sous forme d'expression régulière, et Google Sheets fait le tri tout seul sur des centaines de lignes.

C'est la fonction de prédilection pour nettoyer des exports bancaires, enrichir un CRM à partir de messages clients ou standardiser des données récupérées depuis des sources hétérogènes. Elle remplace des dizaines de formules CHERCHE/TROUVE/STXT imbriquées par une seule expression.

Syntaxe

Clique sur un argument pour aller à son explication.

REGEXEXTRACT ne retourne que la première correspondance trouvée, même si le texte en contient plusieurs. Pour gérer les cas où aucune correspondance n'existe, enveloppe toujours la fonction dans SIERREUR : =SIERREUR(REGEXEXTRACT(A1;"motif");""). Dans Excel, cette fonction n'existe pas : utilise des combinaisons de CHERCHE, TROUVE et STXT, ou Power Query pour des besoins avancés.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction REGEXEXTRACT

REGEXEXTRACT attend ses deux arguments dans un ordre précis : d'abord le texte à fouiller, ensuite le motif à y chercher. Les deux sont obligatoires, donc aucun n'est à omettre, mais c'est le second qui demande toute ton attention car c'est là que se joue ce que tu vas réellement récupérer.

1

texte

: la chaîne de caractères dans laquelle tu veux chercher et extraire une information

Ça peut être une référence de cellule (A2), une chaîne directe entre guillemets ("Contact: marie@gmail.com"), ou même le résultat d'une autre fonction comme CONCATENER(A2;" ";B2).

Si le texte est vide ou contient uniquement des espaces, REGEXEXTRACT retournera #N/A car il n'y a rien à analyser.

2

expression_régulière

: le motif (pattern) que tu cherches dans le texte

Une expression régulière décrit un format : par exemple, [0-9]{5} signifie "exactement 5 chiffres consécutifs" (parfait pour un code postal français).

Tu peux utiliser des motifs simples comme \d+ (un ou plusieurs chiffres) ou complexes comme [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} (une adresse email). Les parenthèses créent des groupes de capture pour retourner uniquement une portion spécifique du motif.

Le savais-tu ?
Mets une portion de ton motif entre parenthèses et REGEXEXTRACT ne te renvoie que ce groupe capturé, pas toute la correspondance. Par exemple REGEXEXTRACT(A2; "Email: ([^ ]+)") sort l'adresse seule, sans le libellé qui la précède.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment extraire une référence de facture avec la fonction REGEXEXTRACT

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 REGEXEXTRACT reconnaît la forme de la référence et te la ressort, où qu'elle se trouve dans la phrase.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXEXTRACT(.
  2. 2
    En 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.
  3. 3
    En 2ᵉ argument : écris entre guillemets le motif à retrouver, "FAC-\d{4}-\d+". Il se lit « le texte FAC-, 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.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=REGEXEXTRACT(A2; "FAC-\d{4}-\d+")
Explication
La fonction parcourt la note et s'arrête sur le premier passage qui a la forme décrite : le texte 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.
Exemple 2

Comment ne récupérer qu'une partie du motif avec la fonction REGEXEXTRACT

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 REGEXEXTRACT sait viser un repère dans le texte tout en ne renvoyant que la portion qui t'intéresse.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXEXTRACT(.
  2. 2
    En 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.
  3. 3
    En 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 la suite de caractères sans espace qui le suit, c'est-à-dire l'adresse.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=REGEXEXTRACT(A2; "Email : (\S+)")
Explication
Les parenthèses changent tout : sans elles, la cellule afficherait aussi le libellé Email : collé devant l'adresse. En capturant \S+, tu dis à la fonction de repérer le libellé pour se placer, mais de ne ressortir que la suite de caractères sans espace qui vient après.
Exemple 3

Comment gérer l'erreur #N/A de la fonction REGEXEXTRACT avec 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.

Les étapes
  1. 1
    Dans une cellule, écris =SIERREUR(.
  2. 2
    En 1er argument : écris l'extraction à surveiller et referme-la, REGEXEXTRACT(A2; "FAC-\d{4}-\d+"). C'est elle que SIERREUR évalue en premier, et c'est elle qui renvoie #N/A dès que la note ne mentionne aucune facture.
  3. 3
    En 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.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=SIERREUR(REGEXEXTRACT(A2; "FAC-\d{4}-\d+"); "À compléter")
Explication
Sur les deux notes qui ne portent aucune référence, l'extraction ne trouve rien et renvoie l'erreur #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.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec REGEXEXTRACT

1Astuce

Utilise les parenthèses pour n'extraire qu'une portion du motif

Les parenthèses créent des groupes de capture : REGEXEXTRACT retourne uniquement le contenu entre parenthèses plutôt que la correspondance complète. =REGEXEXTRACT(A2;"Email: ([^ ]+)") retourne uniquement l'adresse email sans le label "Email:" qui précède.
C'est très pratique pour nettoyer les extractions quand le motif complet inclut un contexte que tu ne veux pas conserver.

2Astuce

Ignore la casse avec (?i) au début du motif

Par défaut REGEXEXTRACT distingue majuscules et minuscules. Ajoute (?i) au début de ton motif pour rendre la recherche insensible à la casse : =REGEXEXTRACT(A2;"(?i)urgent") trouvera "URGENT", "Urgent" et "urgent".
C'est indispensable quand tes données sont saisies manuellement et que la casse n'est pas standardisée.

3Astuce

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.

Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction REGEXEXTRACT

Avec REGEXEXTRACT, la moitié des ennuis viennent du motif lui-même : un point qu'on n'a pas échappé et qui capture n'importe quoi, ou un .* trop gourmand qui avale plus de texte que prévu. L'autre moitié vient de deux malentendus tenaces : elle ne renvoie que la première correspondance, et elle crache #N/A dès qu'elle ne trouve rien, ce qui contamine toutes les formules en aval. Et si tu la lances dans Excel, c'est #NOM? direct : elle n'y existe pas.

Oublier d'échapper les caractères spéciaux

Les caractères comme ., +, *, (, ) ont une signification spéciale en regex. Un point sans backslash signifie "n'importe quel caractère" et non un point littéral. =REGEXEXTRACT(A2;"[0-9]+.[0-9]{2}") capturera "12X50" autant que "12.50".

Solution : Échappe les caractères spéciaux avec un backslash quand tu veux les chercher au sens littéral. Pour un point décimal, utilise \. : =REGEXEXTRACT(A2;"[0-9]+\\.[0-9]{2}").

Erreur #N/A non gérée qui casse les formules en aval

Si REGEXEXTRACT ne trouve aucune correspondance, elle retourne #N/A. Toute formule qui référence cette cellule héritera de l'erreur, rendant le tableau illisible.

Solution : Enveloppe toujours REGEXEXTRACT dans SIERREUR : =SIERREUR(REGEXEXTRACT(A2;"motif");"") pour une cellule vide, ou =SIERREUR(REGEXEXTRACT(A2;"motif");"Non trouvé") pour un message explicite.

Croire que REGEXEXTRACT retourne toutes les correspondances

REGEXEXTRACT ne retourne que la première correspondance trouvée. Si ton texte contient 3 emails, seul le premier sera extrait. Les autres sont ignorés silencieusement.

Solution : Pour extraire toutes les occurrences, utilise des techniques avancées avec SPLIT et REGEXREPLACE, ou applique REGEXEXTRACT sur des portions successives du texte. Pour la majorité des usages métier, une seule correspondance suffit.

Utiliser REGEXEXTRACT dans Excel

REGEXEXTRACT est exclusive à Google Sheets. Dans Excel, elle déclenche l'erreur #NOM? car la fonction n'existe pas.

Solution : Dans Excel, utilise des combinaisons de CHERCHE, TROUVE, STXT et NBCAR pour extraire du texte. Pour des besoins avancés, passe par Power Query (Données > Obtenir des données) ou crée des fonctions personnalisées en VBA.

Motif trop permissif qui capture trop de texte

Un motif trop large comme .* capture tout ce qui suit jusqu'à la fin du texte. Des quantificateurs gourmands (+, *) sans contrainte précise absorbent plus que prévu.

Solution : Teste ton motif sur plusieurs exemples réels avant de l'appliquer. Commence par un motif simple et affine-le progressivement. Des outils comme regex101.com montrent exactement ce qui est capturé à chaque étape.

Le conseil du pro
REGEXEXTRACT renvoie l'erreur #N/A dès qu'elle ne trouve aucune correspondance, et cette erreur contamine toutes les formules qui la référencent. Prends le réflexe de l'envelopper dans SIERREUR, du type SIERREUR(REGEXEXTRACT(A2; "motif"); ""), pour obtenir une cellule vide à la place.
Lucas, la mascotte du Dojo, compare deux fonctions Excel

REGEXEXTRACT vs CHERCHE vs TROUVE vs STXT

Tu prends REGEXEXTRACT quand tu cherches un format 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. Si tu es dans Excel, oublie-la : elle n'existe que dans Sheets, alors CHERCHE et TROUVE te donnent la position d'un texte connu, et STXT découpe à partir de cette position. Et quand tu sais déjà à quel endroit fixe se trouve l'info, STXT seul fait le travail sans regex.

CritèreREGEXEXTRACTCHERCHETROUVESTXT
DisponibilitéGoogle Sheets uniquementExcel et SheetsExcel et SheetsExcel et Sheets
Motifs complexesOui (regex)Non (texte simple)Non (texte simple)Non
Extraction directeOuiNon (retourne position)Non (retourne position)Oui (avec position connue)
Sensible à la casseOui (sauf (?i))NonOuiN/A
Cas d'usageExtraction flexible sur motifTrouver position, ignorer casseTrouver position exacteExtraire quand position connue
FAQ

Questions fréquentes

Non, REGEXEXTRACT est exclusive à Google Sheets. Dans Excel, tu obtiendras une erreur #NOM? car la fonction n'est pas reconnue. Pour des extractions équivalentes dans Excel, combien CHERCHE, TROUVE, STXT et NBCAR. Pour des besoins avancés, Power Query ou VBA sont les alternatives les plus efficaces.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction REGEXEXTRACT : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir