Aller au contenu principal

Qu'est-ce que la fonction REGEXREPLACE ?

Définition
La fonction REGEXREPLACE recherche toutes les occurrences d'une expression régulière dans un texte et les remplace par une valeur de substitution. Disponible dans Google Sheets, pas dans Excel natif.

Tu sors REGEXREPLACE dès que SUBSTITUE ne suit plus, quand ce que tu veux corriger n'est pas un texte fixe mais une forme qui varie d'une ligne à l'autre : une suite de chiffres, un séparateur qui change, une casse imprévisible. Elle décrit le motif une seule fois et l'applique à toutes les variantes d'un coup.

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

Clique sur un argument pour aller à son explication.

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".

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

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.

1

texte

: le texte source dans lequel effectuer le remplacement

Tu 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.

2

expression_régulière

: le pattern regex à rechercher

Toutes 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 @.

3

remplacement

: le texte qui remplace chaque occurrence trouvée

Tu 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.

Le savais-tu ?
Les parenthèses de ton motif deviennent des groupes réutilisables dans le remplacement via $1, $2, $3. C'est ce qui te laisse réorganiser à la volée : REGEXREPLACE(A2; "(\\d{2})/(\\d{2})/(\\d{4})"; "$3-$2-$1") transforme une date 15/12/2024 en 2024-12-15.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment supprimer tous les caractères parasites avec la fonction REGEXREPLACE

Les numéros de téléphone arrivent de ton formulaire dans tous les formats imaginables : avec des espaces, des tirets, des points, parfois des parenthèses. L'outil qui doit les appeler, lui, n'accepte qu'une suite de chiffres collés. Tu veux normaliser la colonne entière d'un coup plutôt que de reprendre chaque ligne à la main, et la fonction REGEXREPLACE efface tout ce qui n'est pas un chiffre, quel que soit le format d'origine.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXREPLACE(.
  2. 2
    En 1er argument : clique sur la cellule qui contient le texte à nettoyer, A2. C'est le numéro tel qu'il a été saisi, avec ses espaces, ses tirets et ses parenthèses.
  3. 3
    En 2ᵉ argument : écris entre guillemets ce que tu veux attraper, "[^0-9]". Les crochets définissent un ensemble de caractères et le ^ placé en tête le retourne, si bien que tu vises tout caractère qui n'est pas un chiffre.
  4. 4
    En 3ᵉ argument : écris une chaîne vide, "", qui remplace chaque caractère attrapé par rien. Remplacer par rien revient à supprimer.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=REGEXREPLACE(A2; "[^0-9]"; "")
Explication
Le ^ placé juste après le crochet ouvrant inverse la sélection : [^0-9] ne désigne pas les chiffres, mais tout ce qui n'en est pas un. Comme le remplacement est une chaîne vide, chaque espace, tiret, point et parenthèse disparaît en une seule passe, et les quatre formats de départ retombent sur le même numéro.
Exemple 2

Comment réorganiser une date avec les groupes de capture de la fonction REGEXREPLACE

Tes dates de campagne sont écrites à la française, en jour/mois/année, alors que l'outil d'analyse qui va les avaler exige l'ordre international année-mois-jour. Tu veux convertir la colonne entière sans la ressaisir. La fonction REGEXREPLACE sait découper la date en trois morceaux et les recoller dans l'ordre qui t'arrange.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXREPLACE(.
  2. 2
    En 1er argument : clique sur la cellule qui porte la date à convertir, A2. Elle est écrite à la française, dans l'ordre jour, mois, année.
  3. 3
    En 2ᵉ argument : écris entre guillemets un motif qui isole les trois morceaux entre parenthèses, "(\d{2})/(\d{2})/(\d{4})". Il capture deux chiffres pour le jour, deux pour le mois et quatre pour l'année, les / servant de repères sans être capturés.
  4. 4
    En 3ᵉ argument : écris entre guillemets la forme de sortie, "$3-$2-$1". Les rappels $3, $2 et $1 remettent l'année, le mois puis le jour, séparés par des tirets.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=REGEXREPLACE(A2; "(\d{2})/(\d{2})/(\d{4})"; "$3-$2-$1")
Explication
Chaque paire de parenthèses met un morceau de côté : le jour, puis le mois, puis l'année. Dans le remplacement, $1, $2 et $3 rappellent ces morceaux dans l'ordre que tu choisis, la numérotation suivant les parenthèses ouvrantes de gauche à droite. Passer à un autre format ne demande donc que de bouger les $.

Attention : Ce cas ne fonctionne que si la colonne A contient bien du texte. Si tu tapes 15/12/2024 dans une feuille réglée sur la France, Google Sheets en fait une vraie date, et la fonction REGEXREPLACE renvoie alors l'erreur #VALUE! parce qu'elle attend du texte. Passe la colonne en texte brut (menu Format, puis Nombre, puis Texte brut) ou fais précéder ta saisie d'une apostrophe : '15/12/2024.

Exemple 3

Comment rendre un montant calculable avec les fonctions REGEXREPLACE et CNUM

Ton relevé arrive en une seule colonne où les montants sont noyés dans du texte libre, et tu ne peux rien en faire tant qu'ils restent des phrases. Tu veux une colonne de vrais nombres, sur laquelle une somme ou une moyenne fonctionne du premier coup. La fonction REGEXREPLACE fait le tri des caractères, mais elle rend toujours du texte, alors c'est la fonction CNUM qui termine le travail.

Les étapes
  1. 1
    Dans une cellule, écris =CNUM(.
  2. 2
    En 1er argument : écris le nettoyage à convertir et referme-le, REGEXREPLACE(A2; "[^0-9,]"; ""). Ce motif vise tout ce qui n'est ni un chiffre ni la virgule décimale et le remplace par rien, mais le résultat reste du texte, et c'est la fonction CNUM qui le transforme en nombre calculable.
  3. 3
    Ferme la parenthèse de la fonction CNUM et appuie sur Entrée. Celle de REGEXREPLACE a déjà été refermée à l'étape précédente.
Une fois les morceaux assemblés, ta formule donne ça :=CNUM(REGEXREPLACE(A2; "[^0-9,]"; ""))
Explication
Le ménage se fait d'abord : [^0-9,] vise tout ce qui n'est ni un chiffre ni une virgule, et le remplacement par une chaîne vide efface le libellé comme l'unité. Ce qui en sort reste du texte, d'où la fonction CNUM par-dessus, qui le convertit en nombre. C'est pour ça que 3 450,00 s'affiche désormais 3450 et se laisse enfin additionner.

Attention : Ce motif ramasse tous les chiffres de la ligne, sans distinction. Si tes libellés contiennent déjà un numéro, du type Virement FAC-2024-001 montant 1 250,50 EUR, ses chiffres se retrouveront collés au montant et le résultat n'aura plus aucun sens. Teste la formule sur tes vraies lignes avant de la recopier sur toute la colonne.

Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec REGEXREPLACE

1Astuce

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.

2Astuce

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.

3Astuce

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.

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

Les 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.

L’erreur fatale
Dans Google Sheets, l'antislash est avalé avant même d'atteindre le moteur regex : tu dois donc le doubler. Un chiffre \d s'écrit "\\d" dans ta formule, sinon tu récoltes une erreur Invalid regular expression ou un texte qui ne bouge pas.
Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreREGEXREPLACESUBSTITUERechercher/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 uniquementExcel + Google SheetsExcel + Google Sheets
Facilité d'utilisation⭐⭐ Intermédiaire (regex à apprendre)⭐⭐⭐ Simple⭐⭐⭐ Simple
Cas d'usage idéalNettoyage complexe, reformatage, patternsRemplacement de texte exactCorrection ponctuelle non automatisée
FAQ

Questions fréquentes

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.

Ressources

Pour aller plus loin

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

Tout voir