Extraire du texte avec une regex dans Excel
Récupère les références ou les numéros noyés dans un texte libre avec une regex, par une fonction de Microsoft 365 ou par notre fonction gratuite à coller dans ton classeur sous Windows.
Tu as peut-être encore une question
Excel pour Microsoft 365 comprend les expressions régulières grâce à trois fonctions natives, REGEX.TEST, REGEX.EXTRAIRE et REGEX.REMPLACER, qui suivent la syntaxe PCRE2 et s’écrivent dans une cellule comme les autres fonctions, alors que les autres versions, Excel 2024 compris, n’en ont aucune d’après l’aide de Microsoft. Dans ces versions, une fonction VBA comme REGEX_EXTRAIRE donne le même accès aux motifs sous Windows, en s’appuyant sur le moteur VBScript du système.
D’après la ligne « S’applique à » de leurs pages d’aide, REGEX.EXTRAIRE, REGEX.TEST et REGEX.REMPLACER ne sont proposées que dans Excel pour Microsoft 365 et Excel pour Microsoft 365 pour Mac, et n’existent donc ni dans Excel 2021 ni dans Excel 2024, ni dans les versions plus anciennes. Dans ces versions, REGEX_EXTRAIRE fait sous Windows le travail de REGEX.EXTRAIRE, et réunit en plus toutes les correspondances dans une cellule.
Dans un Excel en français, la fonction d’extraction s’écrit REGEX.EXTRAIRE, avec des points-virgules entre les arguments, et ses deux voisines deviennent REGEX.TEST et REGEX.REMPLACER, alors que la page de l’aide française de Microsoft consacrée à la fonction garde son nom anglais, du titre à la syntaxe. Le nom anglais tapé dans une cellule renvoie #NOM?, et les deux arguments facultatifs s’appellent mode_renvoi et respect_casse.
La fenêtre Rechercher et remplacer d’Excel ne comprend pas les expressions régulières, puisqu’elle ne connaît que deux caractères génériques, le point d’interrogation pour un caractère et l’astérisque pour une suite de caractères, si bien que CMD-\d{4} n’y trouve rien, alors que CMD-???? trouve la première référence de la colonne. Pour remplacer selon un motif, Microsoft 365 propose REGEX.REMPLACER, qui s’écrit dans une cellule.
Pour extraire tous les nombres d’une cellule, le motif \d+ trouve chaque suite de chiffres, et =REGEX_EXTRAIRE(A6;"\d+") renvoie « 1110, 1112, 1115, 03, 09 » dans une seule cellule, tandis que Microsoft 365 obtient la même liste avec =JOINDRE.TEXTE(", ";VRAI;REGEX.EXTRAIRE(A6;"\d+";1)). Le résultat est du texte, que CNUM convertit en nombre quand la cellule n’en contient qu’un.
Dans une expression régulière, \w désigne un caractère de mot, c’est-à-dire une lettre, un chiffre ou le tiret bas, et \w+ en trouve une suite, comme ref_2026 dans « ref_2026 ok », tandis que le \w de REGEX.EXTRAIRE, dans Microsoft 365, couvre aussi les lettres accentuées. REGEX_EXTRAIRE, qui suit le moteur de VBScript, les laisse de côté, et [A-Za-zÀ-ÿ]+ y garde « Crème » entier.
Pour aller plus loin
Tout ce dont tu as besoin pour faire tourner tes macros et progresser sur Excel se trouve ici.






Comment faire une regex dans Excel, symbole par symbole
Pour faire une regex, tu assembles des symboles qui se lisent de gauche à droite et décrivent chacun un caractère, une position ou une répétition. REGEX.EXTRAIRE et REGEX_EXTRAIRE en partagent l’essentiel, si bien que le tableau ci-dessous donne les plus courants avec un exemple chacun, tiré des messages de la page quand c’est possible. Le résultat est le même dans les deux fonctions, sauf quand la dernière colonne dit le contraire.
Dans une formule d’Excel, l’antislash s’écrit une seule fois, et un guillemet à chercher se double, comme dans tout texte placé entre guillemets. Sur un texte français, préfère [A-Za-zÀ-ÿ]+ à \w+ dans REGEX_EXTRAIRE, dont le moteur coupe les mots à chaque lettre accentuée. « Crème brûlée » y donne ainsi Cr, me, br, l et e. REGEX.EXTRAIRE, elle, compte ces lettres dans \w et rend Crème et brûlée avec l’un comme avec l’autre motif.