Qu'est-ce que la fonction REGEX. REMPLACER ?
REGEX.REMPLACER (REGEXREPLACE en anglais) prend le relais 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, comme une suite de chiffres, un séparateur qui change ou une casse imprévisible. Tu décris le motif une seule fois et Excel l'applique à toutes les variantes d'un coup.
Concrètement, c'est elle qui normalise des numéros de téléphone saisis dans des formats différents, anonymise des adresses email pour un export RGPD, reformate des références produits avant un import ou réorganise des dates d'un format vers un autre. Elle est réservée à Excel pour Microsoft 365 et remplace des heures de copier-coller à la main.
Syntaxe
=REGEX.REMPLACER(texte; modèle; remplacement; [occurrence]; [respect_casse])REGEX.REMPLACER 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.REMPLACER
Les trois premiers arguments s'enchaînent dans un ordre logique, le texte où chercher, le motif qui décrit ce que tu traques, puis ce par quoi tu remplaces chaque correspondance. Le remplacement accepte une chaîne vide "" quand ton but est simplement de supprimer ce que le motif attrape.
Les deux derniers sont facultatifs. L'occurrence choisit laquelle des correspondances remplacer, et le respect de la casse décide si bonjour attrape aussi BONJOUR.
texte
: le texte dans lequel effectuer le remplacementTu peux passer une référence de cellule (A1), un texte entre guillemets ("Réf 2024 lot 7") ou le résultat d'une autre formule.
Si le texte ne contient aucune correspondance, la fonction le renvoie tel quel, sans erreur. Le résultat est toujours du texte, même quand il ne reste que des chiffres.
modèle
: l'expression régulière à rechercherLes expressions régulières décrivent des structures, comme une suite de chiffres, un format d'email, des espaces multiples ou un début de texte.
Parmi les motifs courants, [0-9]+ désigne un ou plusieurs chiffres, \s+ une suite d'espaces, [^a-zA-Z0-9] tout caractère qui n'est ni une lettre ni un chiffre, et ^[^@]+ tout ce qui précède le @. L'antislash s'écrit une seule fois dans Excel.
remplacement
: le texte qui remplace chaque correspondance trouvéeTu peux y rappeler les groupes capturés entre parenthèses dans le motif avec $1, $2, $3, ce qui permet de réorganiser et de reformater des données.
Utilise "" (chaîne vide) pour supprimer ce que le motif attrape sans rien mettre à la place. Par exemple, =REGEX.REMPLACER(A1; "[0-9]"; "") supprime tous les chiffres du texte.
[occurrence]
: le rang de la correspondance à remplacer(facultatif)0, la valeur par défaut, les remplace toutes. 1 ne remplace que la première, 2 la deuxième, et un nombre négatif compte depuis la fin, si bien que -1 vise la dernière.
Sur 06-12-34-56-78, =REGEX.REMPLACER(A2; "-"; " "; 1) renvoie 06 12-34-56-78, et le même appel avec -1 renvoie 06-12-34-56 78.
[respect_casse]
: `0`, la valeur par défaut, distingue les majuscules des minuscules(facultatif)1 les confond, si bien que bonjour remplace aussi Bonjour et BONJOUR.
Pour régler la casse sans choisir d'occurrence, laisse le quatrième argument vide entre deux points-virgules, comme dans =REGEX.REMPLACER(A1; "bonjour"; "Salut"; ; 1). Le préfixe (?i) placé en tête du motif produit le même effet.

Comment utiliser REGEX.REMPLACER
Comment supprimer tous les caractères parasites avec la fonction REGEX.REMPLACER
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 REGEX.REMPLACER efface tout ce qui n'est pas un chiffre, quel que soit le format d'origine.
- 1Dans une cellule, écris
=REGEX.REMPLACER(. - 2En 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. - 3En 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. - 4En 3ᵉ argument : écris une chaîne vide,
"", qui remplace chaque caractère attrapé par rien. Remplacer par rien revient à supprimer. - 5Ferme la parenthèse et appuie sur Entrée.
=REGEX.REMPLACER(A2; "[^0-9]"; "")^ placé juste après le crochet ouvrant inverse la sélection, si bien que [^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. Le résultat reste du texte, ce qui garde le zéro de tête.Comment réorganiser une date avec les groupes de capture de la fonction REGEX.REMPLACER
Tes dates de campagne sont écrites à la française, en jour/mois/année, alors que l'outil d'analyse qui va les recevoir exige l'ordre international année-mois-jour. Tu veux convertir la colonne entière sans la ressaisir. La fonction REGEX.REMPLACER sait découper la date en trois morceaux et les recoller dans l'ordre qui t'arrange.
- 1Dans une cellule, écris
=REGEX.REMPLACER(. - 2En 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. - 3En 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. - 4En 3ᵉ argument : écris entre guillemets la forme de sortie,
"$3-$2-$1". Les rappels$3,$2et$1remettent l'année, le mois puis le jour, séparés par des tirets. - 5Ferme la parenthèse et appuie sur Entrée.
=REGEX.REMPLACER(A2; "(\d{2})/(\d{2})/(\d{4})"; "$3-$2-$1")$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 déplacer les $.Attention : Ce cas ne fonctionne que si la colonne A contient bien du texte. Si tu tapes 15/12/2024 dans un Excel réglé en français, Excel en fait une vraie date, rangée sous son numéro de série 45641. La fonction REGEX.REMPLACER travaille alors sur ce nombre, ne trouve aucune barre oblique et te renvoie 45641. Formate la colonne en Texte avant la saisie, ou fais précéder la date d'une apostrophe, comme '15/12/2024.
Comment rendre un montant calculable avec les fonctions REGEX.REMPLACER 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 REGEX.REMPLACER fait le tri des caractères, mais elle rend toujours du texte, alors c'est la fonction CNUM qui termine le travail.
- 1Dans une cellule, écris
=CNUM(. - 2En 1er argument : écris le nettoyage à convertir et referme-le,
REGEX.REMPLACER(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. - 3Ferme la parenthèse de la fonction CNUM et appuie sur Entrée. Celle de REGEX.REMPLACER a déjà été refermée à l'étape précédente.
=CNUM(REGEX.REMPLACER(A2; "[^0-9,]"; ""))[^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 reste est encore 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 un libellé contient déjà un numéro, comme Virement FAC-2024-001 montant 1 250,50 EUR, ses chiffres se collent au montant. Le nettoyage produit 20240011250,50, et la fonction CNUM en fait un nombre qui n'a plus aucun sens. Regarde tes vraies lignes avant de recopier la formule sur toute la colonne.

Astuces avancées avec REGEX.REMPLACER
Nettoie les espaces multiples et les espaces de début et de fin
Deux motifs couvrent les cas les plus fréquents. =REGEX.REMPLACER(A1; "\s+"; " ") remplace toute suite d'espaces, tabulations et sauts de ligne compris, par un seul espace. =REGEX.REMPLACER(A1; "^\s+|\s+$"; "") supprime les espaces en début et en fin de texte, comme SUPPRESPACE, mais en retirant aussi les tabulations que SUPPRESPACE laisse en place.
Tu peux imbriquer les deux pour tout nettoyer en une seule formule.
Anonymise une adresse email en gardant son domaine
Le motif ^[^@]+ attrape tout ce qui précède l'arobase, et seulement ça. =REGEX.REMPLACER(A1; "^[^@]+"; "***") transforme jean.dupont@gmail.com en ***@gmail.com.
Tu gardes ainsi le domaine, utile pour compter les adresses par fournisseur, sans exposer la personne dans un export partagé.
Remplace plusieurs séparateurs différents en un seul appel
Les crochets [] définissent un ensemble de caractères. =REGEX.REMPLACER(A1; "[.,;]"; "-") remplace les points, les virgules et les 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 motif évite d'écrire =SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;".";"-");",";"-");";";"-"), qui devient illisible dès le troisième niveau.

Les erreurs fréquentes avec la fonction REGEX.REMPLACER
Avec REGEX.REMPLACER, presque tous les ratés se jouent dans le motif, pas dans les données. Un crochet ou une parenthèse jamais refermé fait renvoyer #VALEUR!, et un point oublié sans antislash remplace n'importe quel caractère.
Les deux autres pièges classiques sont un motif en minuscules qui ne colle pas à des données en majuscules, et un $1 qui rappelle un groupe absent du motif, ce qui renvoie lui aussi #VALEUR!.
Erreur #VALEUR! à cause d'un motif mal formé
L'expression régulière contient une erreur de syntaxe, par exemple une parenthèse ou un crochet jamais refermé. Excel ne peut pas l'appliquer et renvoie #VALEUR!, comme =REGEX.REMPLACER(A1; "(abc"; "x").
Solution : Vérifie que chaque parenthèse et chaque crochet a sa fermeture, et échappe les caractères spéciaux avec un antislash. Pour un point littéral, écris \., et =REGEX.REMPLACER("v1.2.3"; "\."; "-") renvoie v1-2-3, alors que "." remplace chaque caractère et renvoie ------.
Le texte ne change pas malgré une correspondance attendue
Le motif ne trouve aucune correspondance, le plus souvent à cause de la casse (le motif est en minuscules et les données en majuscules) ou d'un motif trop précis qui ne colle pas aux données réelles. La fonction renvoie alors le texte tel quel, sans erreur.
Solution : Passe 1 en cinquième argument, ou ajoute (?i) au début du motif, pour ignorer la casse. Si rien ne bouge encore, reprends le motif morceau par morceau sur une de tes vraies valeurs, pour voir où il décroche.
Doubler l'antislash comme dans un langage de programmation
Dans beaucoup de langages, l'antislash se double à l'intérieur d'une chaîne, et les motifs recopiés depuis du code s'écrivent \\d au lieu de \d. Excel, lui, transmet le motif tel quel, si bien que \\d cherche un antislash suivi de la lettre d, et plus aucun chiffre.
Solution : Écris un seul antislash dans Excel, \d pour un chiffre, \s pour un espace, \. pour un point. =REGEX.REMPLACER("Réf 2024"; "\d"; "#") renvoie Réf ####.
Rappeler un groupe que le motif ne capture pas
Tu utilises $1, $2 dans le remplacement, mais les parenthèses de capture manquent dans le motif, ou elles sont non capturantes, sous la forme (?:...). Excel refuse alors de rappeler un groupe qui n'existe pas, si bien que =REGEX.REMPLACER("Jean Dupont"; "\w+ \w+"; "$2, $1") renvoie #VALEUR!.
Solution : Entoure de parenthèses simples chaque partie à rappeler. =REGEX.REMPLACER("Jean Dupont"; "(\w+) (\w+)"; "$2, $1") fonctionne, car les deux groupes sont entre parenthèses, et renvoie Dupont, Jean.

REGEX.REMPLACER vs SUBSTITUE vs Rechercher/Remplacer
Tant que tu remplaces une chaîne exacte que tu connais à l'avance, SUBSTITUE suffit et marche dans toutes les versions d'Excel. Dès que tu dois décrire une forme plutôt qu'un texte précis (une suite de chiffres, tout ce qui précède le @) ou réorganiser des morceaux avec $1, $2, seule REGEX.REMPLACER le fait, à condition d'avoir Microsoft 365.
La fenêtre Rechercher et remplacer 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, et elle ne connaît que les jokers * et ?, pas les expressions régulières.
| Critère | REGEX.REMPLACER | SUBSTITUE | Rechercher/Remplacer |
|---|---|---|---|
| Motifs complexes | ✅ Oui (regex) | ❌ Texte exact uniquement | ⚠️ Jokers * et ? seulement |
| Groupes de capture | ✅ Oui ($1, $2...) | ❌ Non | ❌ Non |
| Une seule occurrence | ✅ Oui (4ᵉ argument) | ✅ Oui (4ᵉ argument) | ❌ Non |
| Formule réutilisable | ✅ Oui | ✅ Oui | ❌ Manuel (non reproductible) |
| Disponibilité | Excel pour Microsoft 365 | Toutes les versions | Toutes les versions |
| Facilité d'utilisation | ⭐⭐ Intermédiaire (regex à apprendre) | ⭐⭐⭐ Simple | ⭐⭐⭐ Simple |
| Cas d'usage idéal | Nettoyage complexe, reformatage, motifs | Remplacement de texte exact | Correction ponctuelle non automatisée |
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.REMPLACER, et son nom anglais y renvoie #NOM?.
Elle va même plus loin que sa cousine de Google Sheets, avec deux arguments facultatifs pour choisir la correspondance à remplacer et pour ignorer la casse.
Passe 1 en quatrième argument. Sur 06-12-34-56-78, =REGEX.REMPLACER(A2; "-"; " "; 1) renvoie 06 12-34-56-78, seul le premier tiret ayant changé.
Le même argument vise n'importe quel rang, 2 pour la deuxième correspondance, -1 pour la dernière. Laissé à 0 ou omis, il remplace toutes les correspondances.
Les caractères . * + ? ^ $ { } [ ] ( ) | \ ont une signification spéciale dans une expression régulière. Pour les chercher au sens littéral, précède-les d'un antislash, comme \. pour un point ou \* pour un astérisque.
Dans Excel, cet antislash s'écrit une seule fois, car le motif est transmis tel quel au moteur des expressions régulières.
Entoure de parenthèses les parties à réutiliser dans le motif, puis rappelle-les avec $1, $2 et ainsi de suite dans le remplacement. =REGEX.REMPLACER("Jean Dupont"; "(\w+) (\w+)"; "$2, $1") renvoie Dupont, Jean.
Les groupes sont numérotés de gauche à droite, dans l'ordre de leurs parenthèses ouvrantes. Un rappel vers un groupe absent, comme $2 quand le motif ne capture qu'un groupe, renvoie #VALEUR!.
Oui, par défaut. Pour ignorer la casse, passe 1 en cinquième argument ou ajoute (?i) au début du motif. =REGEX.REMPLACER(A1; "(?i)bonjour"; "Salut") remplace alors Bonjour, BONJOUR et bonjour sans distinction.
C'est le réglage à prendre sur des données saisies à la main, où la casse change d'une ligne à l'autre.
REGEX.REMPLACER devient REGEXREPLACE. Excel traduit le nom des fonctions selon la langue de son interface, donc tu tapes =REGEX.REMPLACER( dans un Excel français et =REGEXREPLACE( 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 REGEXREPLACE à 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.REMPLACER se trouve ici.








