REGEXREPLACE est la fonction de nettoyage de données la plus puissante de Google Sheets. Elle recherche toutes les occurrences d'un pattern (expression régulière) dans un texte et les remplace par une nouvelle valeur. Là où SUBSTITUE ne peut remplacer qu'une chaîne exacte, REGEXREPLACE décrit des patterns : "toute séquence de chiffres", "tout ce qui précède le @", "les espaces multiples".
Concrètement, c'est elle qui normalise des numéros de téléphone dans des dizaines de formats différents en un seul appel de fonction, anonymise des emails pour un export RGPD, reformate des références produits brutes pour les importer dans un ERP, ou réorganise des dates d'un format vers un autre. Elle remplace des heures de copier-coller manuel.
Syntaxe de la fonction REGEXREPLACE
=REGEXREPLACE(texte; expression_régulière; remplacement)REGEXREPLACE n'existe pas dans Excel. Sur Excel, utilise SUBSTITUE pour les remplacements simples, ou Power Query / VBA pour les expressions régulières. Dans Google Sheets, l'antislash doit être doublé dans les chaînes : \d s'écrit "\\d".
Comprendre chaque paramètre de la fonction REGEXREPLACE
Les trois arguments s'enchaînent dans un ordre logique : d'abord le texte où chercher, ensuite le pattern qui décrit ce qu'on traque, enfin ce par quoi on remplace chaque occurrence trouvée. Les trois sont obligatoires, mais le remplacement accepte une chaîne vide "" quand ton but est juste de supprimer ce que le pattern attrape.
C'est le pattern du milieu qui fait tout le travail : c'est lui qui transforme un simple remplacer en un nettoyage qui s'adapte à des dizaines de formats d'un coup.
texte
: le texte source dans lequel effectuer le remplacementTu peux passer une référence de cellule (A1), une chaîne littérale ("Bonjour 123"), ou le résultat d'une autre formule.
Si la cellule est vide, REGEXREPLACE renvoie une chaîne vide. Si le texte ne contient aucune correspondance avec l'expression régulière, il est retourné tel quel sans modification ni erreur.
expression_régulière
: le pattern regex à rechercherToutes les portions de texte correspondant à ce pattern sont remplacées. Les expressions régulières permettent de décrire des structures : séquences de chiffres, formats d'email, espaces multiples, débuts/fins de chaîne.
Patterns courants : "[0-9]+" pour un ou plusieurs chiffres, "\\s+" pour des espaces multiples, "[^a-zA-Z0-9]" pour tout caractère non alphanumérique, "^[^@]+" pour tout ce qui précède le @.
Astuce : Pour tester tes expressions régulières avant de les saisir dans Google Sheets, utilise regex101.com. Tu y verras en temps réel ce que ton pattern capture, avec des explications détaillées de chaque partie.
remplacement
: le texte qui remplace chaque occurrence trouvéeTu peux utiliser $1, $2, $3... pour référencer les groupes capturés entre parenthèses dans l'expression régulière. C'est ce qui permet de réorganiser et reformater des données.
Utilise "" (chaîne vide) pour supprimer le pattern trouvé sans le remplacer. Par exemple, =REGEXREPLACE(A1; "[0-9]"; "") supprime tous les chiffres du texte.
Astuce : Les groupes non capturants (?:...) sont plus rapides sur de gros volumes que les groupes capturants (...) si tu n'as pas besoin de référencer la capture dans le remplacement.
Exemples pratiques pas à pas
Service client : normaliser les numéros de téléphone
Tu es responsable du service client et tu reçois des numéros de téléphone dans des formats très variés depuis ton formulaire de contact. Pour les importer dans ton CRM, tu dois les uniformiser en supprimant tous les caractères non numériques.
| A | B | |
|---|---|---|
| 1 | Numéro saisi | Numéro normalisé |
| 2 | 01 23 45 67 89 | 0123456789 |
| 3 | 01-23-45-67-89 | 0123456789 |
| 4 | (01) 23.45.67.89 | 0123456789 |
| 5 | +33 1 23 45 67 89 | +33123456789 |
=REGEXREPLACE(A2; "[^0-9+]"; "")Ici, la fonction ne garde que les chiffres et le signe + (pour les numéros internationaux). Le pattern [^0-9+] signifie : tout caractère qui n'est PAS un chiffre ni le signe +. Résultat : tous les espaces, tirets, parenthèses et points sont supprimés en une seule passe.
DPO : anonymiser des adresses email pour un export RGPD
Tu es Data Protection Officer et tu dois préparer un export de données clients pour une analyse externe. Pour respecter le RGPD, tu dois masquer l'identité dans les emails en remplaçant tout ce qui précède le @ par "***", tout en gardant le domaine visible pour l'analyse.
| A | B | |
|---|---|---|
| 1 | Email original | Email anonymisé |
| 2 | jean.dupont@example.com | ***@example.com |
| 3 | marie.martin@company.fr | ***@company.fr |
| 4 | support@startup.io | ***@startup.io |
| 5 | p.bernard@entreprise.net | ***@entreprise.net |
=REGEXREPLACE(A2; "^[^@]+"; "***")Le pattern ^[^@]+ se décompose : ^ ancre au début de la chaîne, [^@] désigne tout caractère sauf le @, et + signifie « répété une ou plusieurs fois ». Tout ce qui précède le @ est remplacé par ***, et le domaine après le @ n'est pas touché.
Gestionnaire de stock : formater des références produit pour l'ERP
Tu es gestionnaire de stock et tes références produit arrivent sans tirets depuis le scanner ("PRD20240015"). Ton ERP exige le format "PRD-2024-0015". Les groupes de capture permettent de réorganiser et d'insérer les tirets automatiquement.
| A | B | |
|---|---|---|
| 1 | Référence scannée | Référence ERP |
| 2 | PRD20240015 | PRD-2024-0015 |
| 3 | PRD20240156 | PRD-2024-0156 |
| 4 | PRD20250001 | PRD-2025-0001 |
| 5 | MAT20241234 | MAT-2024-1234 |
=REGEXREPLACE(A2; "([A-Z]+)(\d{4})(\d+)"; "$1-$2-$3")Le pattern capture trois groupes : ([A-Z]+) pour les lettres, (\\d{4}) pour les 4 chiffres de l'année, (\\d+) pour le numéro séquentiel. Le remplacement "$1-$2-$3" réassemble les trois parties avec des tirets. Les groupes sont numérotés de gauche à droite selon l'ordre des parenthèses ouvrantes.
Astuce de pro : Pour vérifier que ton pattern ne capte que ce que tu veux, teste-le sur regex101.com avant de le déployer sur des milliers de lignes. Tu peux y voir exactement quels groupes sont capturés sur chaque exemple.
Analyste marketing : convertir des dates FR en format ISO
Tu es analyste marketing et tu dois importer des dates de campagnes dans ton outil d'analyse. Tes dates sont au format français "JJ/MM/AAAA" mais l'outil exige le format ISO "AAAA-MM-JJ". REGEXREPLACE peut inverser l'ordre des groupes en une seule formule.
| A | B | |
|---|---|---|
| 1 | Date campagne (FR) | Date ISO |
| 2 | 15/12/2024 | 2024-12-15 |
| 3 | 01/01/2025 | 2025-01-01 |
| 4 | 28/02/2024 | 2024-02-28 |
| 5 | 31/03/2025 | 2025-03-31 |
=REGEXREPLACE(A2; "(\d{2})/(\d{2})/(\d{4})"; "$3-$2-$1")Le pattern capture trois groupes : (\\d{2}) pour le jour, (\\d{2}) pour le mois, (\\d{4}) pour l'année. Le remplacement "$3-$2-$1" les réassemble dans l'ordre inversé (année-mois-jour). Cette technique s'adapte à tout changement de format en modifiant simplement l'ordre des références.
Astuces avancées avec REGEXREPLACE
Nettoie les espaces multiples et les espaces de début/fin
Deux patterns couvrent les cas les plus fréquents de nettoyage d'espaces. =REGEXREPLACE(A1; "\\s+"; " ") remplace toute séquence d'espaces (y compris tabulations et sauts de ligne) par un seul espace. =REGEXREPLACE(A1; "^\\s+|\\s+$"; "") supprime les espaces en début et en fin, comme SUPPRESPACE mais en gérant aussi les tabulations.
Tu peux imbriquer les deux en une seule formule pour tout nettoyer en une passe.
Utilise le flag (?i) pour ignorer la casse
Par défaut, REGEXREPLACE est sensible à la casse. Ajoute (?i) au début de ton pattern pour rendre la recherche insensible : =REGEXREPLACE(A1; "(?i)bonjour"; "Salut") remplace "Bonjour", "BONJOUR" et "bonjour" indifféremment. Le flag (?i) ne compte pas dans les groupes de capture, il s'applique à tout le pattern.
Utile sur des données saisies manuellement où la casse est aléatoire.
Remplace plusieurs séparateurs différents en un seul appel
Les crochets [] définissent un ensemble de caractères. =REGEXREPLACE(A1; "[.,;]"; "-") remplace les points, virgules et points-virgules par des tirets en une seule formule, sans avoir à imbriquer trois SUBSTITUE. L'ensemble peut contenir autant de caractères que tu veux.
Ce pattern évite d'écrire =SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;".";"-");",";"-");";"; "-") qui devient illisible dès le troisième niveau.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction REGEXREPLACE
Avec REGEXREPLACE, presque tous les ratés se jouent dans le pattern, pas dans les données. L'antislash en est la source numéro un : Google Sheets l'avale avant le moteur regex, donc \d doit toujours s'écrire "\\d", sinon tu récoltes une Invalid regular expression ou un texte qui ne bouge pas.
Les deux autres pièges classiques : un pattern en minuscules qui ne colle pas à des données en majuscules (le flag (?i) règle ça), et des $1 qui s'affichent tels quels parce que tu as oublié les parenthèses de capture dans le pattern.
Erreur "Invalid regular expression"
Ton expression régulière contient une erreur de syntaxe : parenthèse non fermée, caractère spécial mal échappé, classe de caractères invalide, ou quantificateur mal placé. Google Sheets refuse d'exécuter la formule.
Solution : Vérifie que tous les caractères spéciaux sont bien échappés avec un double antislash. Pour rechercher un point littéral, écris "\\." et non "." (qui signifie "n'importe quel caractère"). Vérifie aussi que toutes les parenthèses sont fermées et teste ton pattern sur regex101.com.
Le texte ne change pas malgré une correspondance attendue
Ton pattern ne trouve aucune correspondance, souvent à cause d'une casse incorrecte (le pattern est en minuscules mais les données en majuscules) ou d'un pattern trop spécifique qui ne colle pas aux données réelles.
Solution : Ajoute le flag (?i) au début du pattern pour ignorer la casse. Ou teste ton pattern sur regex101.com en collant une de tes vraies valeurs pour voir exactement ce qu'il capture et où il échoue.
Problème avec les antislash dans les patterns
L'antislash est un caractère d'échappement en regex. Dans Google Sheets, il faut le doubler dans les chaînes de formule : \d (un chiffre) s'écrit "\\d". Un seul antislash est interprété par Google Sheets avant même d'atteindre le moteur regex.
Solution : Utilise "\\" pour représenter un antislash littéral, "\\d" pour un chiffre, "\\s" pour un espace. Si tu copies un pattern depuis regex101.com, double tous les antislash en les collant dans Google Sheets.
Les groupes de capture affichent littéralement $1 au lieu de la valeur capturée
Tu utilises $1, $2 dans le remplacement mais les parenthèses manquent dans l'expression régulière, ou les parenthèses sont présentes dans des groupes non capturants (?:...).
Solution : Assure-toi que ton pattern contient des parenthèses ouvrantes ( autour des parties à capturer. Exemple : =REGEXREPLACE("Jean Dupont"; "(\\w+) (\\w+)"; "$2, $1") fonctionne car les deux groupes sont entre parenthèses.
REGEXREPLACE vs SUBSTITUE vs Rechercher/Remplacer
Tant que tu remplaces une chaîne exacte que tu connais à l'avance, SUBSTITUE suffit et marche aussi dans Excel. Dès que tu dois décrire une forme plutôt qu'un texte précis (une séquence de chiffres, tout ce qui précède le @) ou réorganiser des morceaux avec $1, $2, seul REGEXREPLACE le fait, mais elle reste réservée à Google Sheets.
Rechercher/Remplacer du menu n'entre en jeu que pour une correction ponctuelle à la main : aucune formule n'est conservée, donc rien n'est rejouable sur tes prochaines lignes.
| Critère | REGEXREPLACE | SUBSTITUE | Rechercher/Remplacer |
|---|---|---|---|
| Patterns complexes | ✅ Oui (regex) | ❌ Texte exact uniquement | ⚠️ Basique (regex optionnel dans certains outils) |
| Groupes de capture | ✅ Oui ($1, $2...) | ❌ Non | ❌ Non |
| Formule réutilisable | ✅ Oui | ✅ Oui | ❌ Manuel (non reproductible) |
| Disponibilité | Google Sheets uniquement | Excel + Google Sheets | Excel + Google Sheets |
| Facilité d'utilisation | ⭐⭐ Intermédiaire (regex à apprendre) | ⭐⭐⭐ Simple | ⭐⭐⭐ Simple |
| Cas d'usage idéal | Nettoyage complexe, reformatage, patterns | Remplacement de texte exact | Correction ponctuelle non automatisée |
Questions fréquentes sur la fonction REGEXREPLACE
REGEXREPLACE fonctionne-t-elle dans Excel ?
Non. REGEXREPLACE est spécifique à Google Sheets. Excel ne possède pas de fonction native pour les expressions régulières. Sur Excel, utilise SUBSTITUE pour les remplacements simples. Pour des patterns complexes, Power Query propose une interface de transformation, et VBA permet les regex via la bibliothèque Microsoft VBScript Regular Expressions.
Comment remplacer uniquement la première occurrence ?
REGEXREPLACE remplace toutes les occurrences par défaut. Pour ne remplacer que la première, utilise un pattern plus spécifique avec des anchors (^ pour le début de chaîne) qui ne peut correspondre qu'une fois. Pour des cas plus complexes, combine avec REGEXEXTRACT ou construis un pattern qui ne matche qu'une fois.
Quels sont les caractères spéciaux à échapper dans une regex ?
Les caractères . * + ? ^ $ { } [ ] ( ) | \ ont une signification spéciale en regex. Pour les rechercher littéralement, écris \\. pour un point, \\* pour un astérisque, etc. N'oublie pas de doubler l'antislash dans Google Sheets : ce que le moteur regex voit comme \. s'écrit "\\." dans la formule.
Comment utiliser des groupes de capture dans le remplacement ?
Entoure les parties à réutiliser de parenthèses dans le pattern, puis référence-les avec $1, $2, etc. dans le remplacement. Exemple : =REGEXREPLACE("Jean Dupont"; "(\\w+) (\\w+)"; "$2, $1") retourne "Dupont, Jean". Les groupes sont numérotés de gauche à droite selon l'ordre des parenthèses ouvrantes.
REGEXREPLACE est-elle sensible à la casse ?
Oui, par défaut. Pour ignorer la casse, ajoute le flag (?i) au début du pattern : =REGEXREPLACE(A1; "(?i)bonjour"; "Salut") remplace "Bonjour", "BONJOUR", "bonjour"... Tu peux aussi utiliser (?-i) en cours de pattern pour réactiver la sensibilité à la casse sur une partie seulement.
Pour aller plus loin
Les fonctions similaires : REGEXEXTRACT, REGEXMATCH, SUBSTITUE, GAUCHE, DROITE
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
