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 de la fonction REGEXEXTRACT
=REGEXEXTRACT(texte; expression_régulière)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.
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.
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.
expression_régulière
: le motif (pattern) que tu cherches dans le texteUne 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.
Astuce : Tu n'es pas obligé de maîtriser toutes les regex. Commence avec des motifs simples et copie-colle des patterns courants. Des outils en ligne comme regex101.com te permettent de tester tes motifs sur des exemples réels avant de les utiliser dans Google Sheets.
Exemples pratiques pas à pas
Service client : extraire les emails des messages
Tu travailles au service client et tu reçois des centaines de messages contenant les coordonnées des clients. Tu veux extraire automatiquement toutes les adresses email pour enrichir ta base de contacts CRM, sans avoir à les copier-coller manuellement.
La formule analyse chaque message et identifie le premier motif correspondant à une adresse email standard, quelle que soit sa position dans le texte. Tu tires ensuite la formule vers le bas pour traiter toutes les lignes en quelques secondes. Ce motif regex fonctionne pour la plupart des formats d'emails courants.
| A | B | |
|---|---|---|
| 1 | Message client | Email extrait |
| 2 | Bonjour, vous pouvez me recontacter à marie.dupont@gmail.com | marie.dupont@gmail.com |
| 3 | Contact urgent: jean.martin@entreprise.fr ou par téléphone | jean.martin@entreprise.fr |
| 4 | Ref 12345 - support@ledojo.club - merci | support@ledojo.club |
| 5 | Cordialement, sophie.bernard@outlook.com | sophie.bernard@outlook.com |
=REGEXEXTRACT(A2;"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")Astuce de pro : Enveloppe toujours dans SIERREUR pour les lignes sans email : =SIERREUR(REGEXEXTRACT(A2;"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}");"") affichera une cellule vide au lieu d'une erreur #N/A.
Commercial : isoler les numéros de téléphone des fiches prospects
Tu as récupéré une liste de prospects avec leurs coordonnées mélangées dans une seule cellule. Tu veux extraire uniquement les numéros de téléphone pour pouvoir les appeler ou les importer dans ton système de téléphonie.
Le motif regex s'adapte aux différents formats de numéros français : avec espaces, points ou tirets. L'élément [\s.-]? signifie "zéro ou un séparateur parmi espace, point ou tiret". Cette flexibilité couvre la grande majorité des formats saisis dans un CRM.
| A | B | |
|---|---|---|
| 1 | Fiche prospect | Téléphone |
| 2 | Jean Durand - Paris - Tel: 06 12 34 56 78 | 06 12 34 56 78 |
| 3 | Marie L. - Lyon - 07.89.65.43.21 - Responsable achats | 07.89.65.43.21 |
| 4 | Contact: Pierre M. 0145678901 région IDF | 0145678901 |
| 5 | Sophie Bernard tel 06-78-90-12-34 disponible | 06-78-90-12-34 |
=REGEXEXTRACT(A2;"0[0-9][\s.-]?[0-9]{2}[\s.-]?[0-9]{2}[\s.-]?[0-9]{2}[\s.-]?[0-9]{2}")Comptabilité : extraire les montants des descriptions de transactions
Tu reçois des exports bancaires où les montants sont noyés dans du texte descriptif. Tu veux isoler automatiquement les montants en euros pour faire des calculs et des rapprochements bancaires.
Le motif [0-9 ]+,[0-9]{2} cible les montants au format français : un ou plusieurs chiffres (avec espaces pour les milliers), une virgule, et exactement 2 décimales. Tu peux ensuite convertir le résultat en nombre avec CNUM(SUBSTITUE(résultat;" ";"")) pour les calculs arithmétiques.
| A | B | |
|---|---|---|
| 1 | Description transaction | Montant |
| 2 | Virement FAC-2024-001 montant: 1 250,50€ effectué | 1 250,50 |
| 3 | Règlement client de 3 450,00€ reçu le 15/03 | 3 450,00 |
| 4 | CB Paiement fournisseur: 875,99€ validé | 875,99 |
| 5 | Chèque n°12345 - 2 100,00€ encaissé | 2 100,00 |
=REGEXEXTRACT(A2;"[0-9 ]+,[0-9]{2}")Gestion administrative : extraire les références de factures
Tu dois classer des centaines de factures à partir de notes diverses. Chaque facture a un numéro unique au format FAC-ANNÉE-NUMÉRO intégré dans des emails et des annotations. Tu veux extraire automatiquement ces références pour créer un tableau de suivi sans copier-coller.
Le motif FAC-[0-9]{4}-[0-9]+ cible précisément ce format : le préfixe FAC-, 4 chiffres pour l'année, un tiret, puis un ou plusieurs chiffres pour le numéro. Cette approche fonctionne pour n'importe quel format de référence : adapte simplement le préfixe et la structure à ton système de numérotation.
| A | B | |
|---|---|---|
| 1 | Note / Email | N° facture |
| 2 | Voir facture FAC-2024-1523 pour les détails du projet | FAC-2024-1523 |
| 3 | Paiement de FAC-2024-1524 en attente validation | FAC-2024-1524 |
| 4 | URGENT: FAC-2024-1525 à traiter avant fin de mois | FAC-2024-1525 |
| 5 | Re: FAC-2024-1526 - montant modifié | FAC-2024-1526 |
=REGEXEXTRACT(A2;"FAC-[0-9]{4}-[0-9]+")Astuces avancées avec REGEXEXTRACT
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.
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.
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.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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.
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ère | REGEXEXTRACT | CHERCHE | TROUVE | STXT |
|---|---|---|---|---|
| Disponibilité | Google Sheets uniquement | Excel et Sheets | Excel et Sheets | Excel et Sheets |
| Motifs complexes | Oui (regex) | Non (texte simple) | Non (texte simple) | Non |
| Extraction directe | Oui | Non (retourne position) | Non (retourne position) | Oui (avec position connue) |
| Sensible à la casse | Oui (sauf (?i)) | Non | Oui | N/A |
| Cas d'usage | Extraction flexible sur motif | Trouver position, ignorer casse | Trouver position exacte | Extraire quand position connue |
Questions fréquentes sur la fonction REGEXEXTRACT
REGEXEXTRACT fonctionne-t-elle dans Excel ?
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.
Comment extraire plusieurs correspondances avec REGEXEXTRACT ?
REGEXEXTRACT ne retourne que la première correspondance trouvée. Pour extraire toutes les occurrences, tu dois combiner REGEXREPLACE avec SPLIT, ou appliquer REGEXEXTRACT plusieurs fois sur des portions successives du texte.
Dans la pratique, la plupart des usages métier (extraire l'email d'un message, le téléphone d'une fiche contact) ne nécessitent que la première occurrence.
Que se passe-t-il si aucune correspondance n'est trouvée ?
REGEXEXTRACT retourne l'erreur #N/A quand le motif ne trouve rien. Cela peut casser d'autres formules qui référencent cette cellule.
Utilise toujours SIERREUR pour gérer ce cas : =SIERREUR(REGEXEXTRACT(A1;"motif");"Aucun résultat") affiche un message propre, et =SIERREUR(REGEXEXTRACT(A1;"motif");"") laisse la cellule vide.
Dois-je connaître toutes les regex pour utiliser REGEXEXTRACT ?
Non. Commence avec des motifs simples : [0-9]{5} pour un code postal, \d+ pour des chiffres. Tu peux copier des motifs courants (emails, téléphones) depuis ce guide ou des ressources en ligne et les adapter à ton format.
Des outils comme regex101.com te permettent de tester et comprendre tes motifs interactivement. Avec quelques heures de pratique, tu maîtrises les cas d'usage courants.
REGEXEXTRACT est-elle sensible à la casse ?
Oui, par défaut REGEXEXTRACT distingue majuscules et minuscules. Pour ignorer la casse, ajoute (?i) au début de ton motif : =REGEXEXTRACT(A1;"(?i)facture") trouvera "FACTURE", "Facture" et "facture".
C'est très utile quand tes données sont saisies manuellement et que la casse n'est pas standardisée.
Pour aller plus loin
Les fonctions similaires : REGEXMATCH, REGEXREPLACE, CHERCHE, TROUVE, STXT
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
