Aller au contenu principal

Qu'est-ce que la fonction REGEX.TEST ?

Définition
La fonction REGEX.TEST vérifie si un texte contient au moins une correspondance avec une expression régulière, et renvoie VRAI si le motif est trouvé, FAUX sinon. Réservée à Excel pour Microsoft 365, elle a pour équivalent REGEXMATCH dans Google Sheets.

Tu prends REGEX.TEST (REGEXTEST en anglais) quand les jokers classiques (*, ?) ou une simple fonction CHERCHE ne suffisent plus à garantir qu'un texte respecte un format strict, comme exactement cinq chiffres, pas une lettre en trop ou une structure précise. Elle te permet de repérer en un coup d'œil les emails mal saisis, les numéros de téléphone incomplets ou les références produit qui s'écartent du gabarit, sans empiler une cascade de conditions.

Les expressions régulières (regex) sont un langage de description de motifs qu'on retrouve dans la plupart des langages de programmation. REGEX.TEST les apporte dans Excel pour Microsoft 365, sans macro ni complément. Dans Google Sheets, le même test passe par REGEXMATCH.

Syntaxe

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

Comprendre chaque paramètre de la fonction REGEX.TEST

Les deux premiers arguments vont toujours dans le même ordre, d'abord le texte à examiner, ensuite le motif qui décrit ce que tu cherches. C'est le motif qui fait tout le travail, et c'est aussi là que se cachent la plupart des pièges, comme un point non échappé ou des ancres oubliées.

Le troisième, facultatif, règle la casse. Laissé vide, il distingue les majuscules des minuscules, et à 1 il les confond.

1

texte

: le texte ou la référence de cellule à analyser, par exemple `A1` ou le texte `"contact@example.com"` écrit entre guillemets. REGEX.TEST parcourt l'intégralité du texte et renvoie VRAI dès qu'une partie correspond au motif

Pour vérifier que le texte entier correspond, et pas seulement une portion, ancre ton expression avec ^ au début et $ à la fin.

2

modèle

: le motif à rechercher

Les éléments les plus courants sont [0-9] ou \d (un chiffre), [a-z] (une lettre minuscule), [A-Z] (une lettre majuscule), . (n'importe quel caractère), + (une fois ou plus), * (zéro fois ou plus), {n} (exactement n fois), ^ (début du texte) et $ (fin du texte).

Le motif est sensible à la casse par défaut. Pour l'ignorer, ajoute (?i) au début de l'expression ou passe le troisième argument à 1.

Attention : Les caractères spéciaux comme ., *, +, ?, [, ], (, ), {, }, ^, $ et \ doivent être précédés d'un antislash pour être lus au sens littéral. Pour chercher un vrai point, écris \. et non ., qui signifie « n'importe quel caractère ». Dans Excel, cet antislash s'écrit une seule fois.

3

[respect_casse]

: `0`, la valeur par défaut, distingue les majuscules des minuscules(facultatif)

1 les confond, si bien que =REGEX.TEST("BONJOUR"; "bonjour"; 1) renvoie VRAI, alors que sans ce 1 la réponse est FAUX.

Le préfixe (?i) placé en tête du motif produit le même effet. Il reste utile quand le motif vient d'une autre cellule et que tu ne veux pas toucher à la formule.

Le savais-tu ?
Attention au nommage. Excel pour Microsoft 365 a trois fonctions regex, qui s'appellent REGEX.TEST, REGEX.EXTRAIRE et REGEX.REMPLACER dans un Excel en français, où leurs noms anglais renvoient #NOM?. Dans Google Sheets, le test d'un motif passe par une autre fonction, REGEXMATCH.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Comment utiliser REGEX.TEST

Exemple 1

Comment valider une adresse email avec la fonction REGEX.TEST

Ta prochaine campagne part lundi, et ta base CRM contient des adresses saisies à la main, dont certaines n'ont rien d'une adresse. Tu veux les repérer avant l'envoi, pour ne pas payer des rebonds ni abîmer la réputation de ton domaine d'envoi. La fonction REGEX.TEST vérifie la forme de chaque adresse et te répond par VRAI ou FAUX.

Les étapes
  1. 1
    Dans une cellule, écris =REGEX.TEST(.
  2. 2
    En 1er argument : clique sur la cellule qui contient l'adresse à tester, A2. C'est l'email tel qu'il a été saisi dans ta base, et la fonction va vérifier qu'il a bien la forme d'une adresse.
  3. 3
    En 2ᵉ argument : écris entre guillemets le motif d'une adresse valide, "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}". Il réclame des caractères autorisés, puis un @, un nom de domaine, un point et une extension d'au moins deux lettres.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=REGEX.TEST(A2; "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
Explication
Le motif réclame dans l'ordre au moins un caractère autorisé avant le @, le @ lui-même, un nom de domaine, un point échappé par \. et une extension d'au moins deux lettres. invalide n'a pas d'arobase et @manque.fr n'a rien devant, d'où leurs deux FAUX. La formule recopiée sur toute la colonne valide ta liste d'un coup.
Exemple 2

Comment vérifier le format d'un numéro de téléphone avec la fonction REGEX.TEST

Les numéros laissés dans ton formulaire de contact doivent partir chez un prestataire d'envoi de SMS, qui refuse tout ce qui n'est pas un mobile français à dix chiffres commençant par 06 ou 07. Tu veux repérer les numéros fautifs avant l'export, plutôt que de découvrir les refus un par un. La fonction REGEX.TEST compare chaque numéro au format attendu.

Les étapes
  1. 1
    Dans une cellule, écris =REGEX.TEST(.
  2. 2
    En 1er argument : clique sur la cellule qui contient le numéro à vérifier, A2. C'est le téléphone saisi dans le formulaire, que tu veux limiter aux mobiles français.
  3. 3
    En 2ᵉ argument : écris entre guillemets le format attendu, "^0[67][0-9]{8}$". Il se lit « début de cellule, un 0, un chiffre 6 ou 7, puis exactement huit chiffres, fin de cellule ». Sans le ^ et le $, un numéro de quatorze chiffres contenant un mobile passerait à tort.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=REGEX.TEST(A2; "^0[67][0-9]{8}$")
Explication
Le motif se lit « début du texte, un 0, un chiffre 6 ou 7, exactement huit chiffres, fin du texte ». Les ancres ^ et $ sont essentielles ici, car sans elles la fonction renverrait VRAI pour un numéro de quatorze chiffres qui contient un mobile quelque part. 061234567, trop court, et 0512345678, qui n'est pas un mobile, reçoivent donc FAUX.
Exemple 3

Comment détecter un code postal dans une adresse avec la fonction REGEX.TEST

Tu importes des adresses depuis un outil externe avant une tournée de livraison, et certaines sont arrivées sans code postal. Tu veux les repérer tout de suite, pour rappeler les clients concernés avant que le transporteur ne te les renvoie. La fonction REGEX.TEST cherche un code postal n'importe où dans la ligne.

Les étapes
  1. 1
    Dans une cellule, écris =REGEX.TEST(.
  2. 2
    En 1er argument : clique sur la cellule qui contient l'adresse à examiner, A2. Elle vient d'un import externe, et certaines lignes n'ont pas de code postal.
  3. 3
    En 2ᵉ argument : écris entre guillemets le motif à repérer, "[0-9]{5}". Il demande cinq chiffres consécutifs, volontairement sans ancre ^ ni $, pour repérer un code postal glissé n'importe où dans l'adresse.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=REGEX.TEST(A2; "[0-9]{5}")
Explication
Cette fois, le motif n'a volontairement pas d'ancres, et la fonction renvoie VRAI dès que cinq chiffres consécutifs apparaissent quelque part dans l'adresse, au début comme à la fin. Tu peux ensuite passer le même test à la fonction FILTRE pour isoler les adresses incomplètes, ou à une mise en forme conditionnelle pour les surligner.
Exemple 4

Comment valider le format de date JJ/MM/AAAA avec la fonction REGEX.TEST

Un fichier de saisie te revient de trois services différents, et les dates textuelles qu'il contient ne suivent pas toutes le même format, entre l'ordre français, l'ordre ISO et les dates incomplètes. Avant de les convertir, tu veux savoir lesquelles respectent le format JJ/MM/AAAA. La fonction REGEX.TEST te le dit ligne par ligne.

Les étapes
  1. 1
    Dans une cellule, écris =REGEX.TEST(.
  2. 2
    En 1er argument : clique sur la cellule qui contient la date saisie, A2. Elle provient d'un import où les formats se mélangent, et tu ne veux garder que le format JJ/MM/AAAA.
  3. 3
    En 2ᵉ argument : écris entre guillemets le format exigé, "^[0-9]{2}/[0-9]{2}/[0-9]{4}$". Il se lit « début de cellule, deux chiffres, un /, deux chiffres, un /, quatre chiffres, fin de cellule ».
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=REGEX.TEST(A2; "^[0-9]{2}/[0-9]{2}/[0-9]{4}$")
Explication
Le motif exige exactement deux chiffres, une barre oblique, deux chiffres, une barre oblique et quatre chiffres, et rien d'autre. Les ancres ^ et $ lui font couvrir tout le texte de la cellule, si bien que 25/12/2024 15:30, avec son heure en trop, renvoie FAUX, comme 5/1/2024 à qui il manque deux zéros.

Attention : Ce test ne vaut que pour des dates écrites en texte, comme celles d'un import. Une date tapée au clavier dans un Excel en français devient une vraie date, rangée sous son numéro de série, et REGEX.TEST lit alors ce nombre. 25/12/2024 tapé dans une cellule renvoie donc FAUX.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

REGEX.TEST vs REGEX.EXTRAIRE vs CHERCHE vs TROUVE

REGEX.TEST répond à la question « ce motif existe-t-il ? ». Utilise REGEX.EXTRAIRE si tu veux récupérer la partie qui correspond, et REGEX.REMPLACER pour la remplacer.

CHERCHE et TROUVE n'acceptent pas les expressions régulières, mais elles fonctionnent dans toutes les versions d'Excel. CHERCHE accepte en plus les jokers ? et *, ce qui dépanne pour un format simple quand tu n'as pas Microsoft 365.

CritèreREGEX.TESTREGEX.EXTRAIRECHERCHETROUVE
FonctionTester un motifExtraire un motifChercher un texte fixeChercher (sensible à la casse)
RésultatVRAI / FAUXTexte extraitPosition numériquePosition numérique
Accepte les regexOuiOuiNon (jokers ? et *)Non
DisponibilitéExcel pour Microsoft 365Excel pour Microsoft 365Toutes les versionsToutes les versions
Cas d'usage typiqueValider un formatExtraire un codeTrouver un mot fixeTrouver (exact)
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction REGEX.TEST

Quatre ennuis reviennent avec REGEX.TEST, et ils n'ont rien à voir entre eux. Une regex mal écrite, un crochet ou une parenthèse oublié, déclenche #VALEUR!, et un nom que ton Excel ne reconnaît pas affiche #NOM?.

Les deux autres ne font aucune erreur, et c'est ce qui les rend sournois. Un VRAI qui te semble injustifié vient presque toujours d'un motif sans ancres ^...$, et un FAUX sur une donnée pourtant juste vient d'un nombre ou d'une date qu'Excel a rangé autrement que tu ne le lis.

Erreur #VALEUR! avec une regex mal formée

L'expression régulière contient une erreur de syntaxe, comme une parenthèse non fermée, un crochet ouvrant sans crochet fermant ou un quantificateur placé en tête. =REGEX.TEST(A2; "[0-9") renvoie ainsi #VALEUR!.

Solution : Vérifie soigneusement les caractères qui vont par paires, crochets [] et parenthèses (). Simplifie la regex jusqu'à la version minimale qui fonctionne, puis ajoute les contraintes une à une.

Erreur #NOM? ou fonction non reconnue

Tu as tapé le nom anglais de la fonction dans un Excel en français, ou ta version d'Excel ne la connaît pas, puisqu'elle est réservée à Excel pour Microsoft 365. Si tu es dans Google Sheets, le même test passe par REGEXMATCH.

Solution : Écris REGEX.TEST dans un Excel en français. Sans Microsoft 365, une combinaison de CHERCHE (insensible à la casse) ou de TROUVE (sensible à la casse) dans ESTNUM donne une validation partielle, qui repère un texte fixe mais pas un format.

REGEX.TEST renvoie VRAI alors que le format semble faux

Sans les ancres ^ et $, REGEX.TEST renvoie VRAI dès qu'une partie du texte correspond. [0-9]{5} renvoie ainsi VRAI pour un texte de 20 chiffres, puisque cinq chiffres consécutifs y figurent.

Solution : Ajoute ^ au début et $ à la fin de ton expression pour valider le texte entier. ^[0-9]{5}$ ne renvoie VRAI que pour exactement cinq chiffres et rien d'autre.

REGEX.TEST renvoie FAUX sur un numéro ou une date bien saisis

La fonction lit la valeur telle qu'Excel la range. Un numéro tapé 0612345678 devient le nombre 612345678, sans son zéro de tête, et une date tapée 25/12/2024 devient un numéro de série. Le motif ne retrouve alors ni le 0 ni les barres obliques.

Solution : Formate la colonne en Texte avant la saisie, ou fais précéder la valeur d'une apostrophe. Pour des données déjà saisies, teste plutôt le texte affiché, par exemple TEXTE(A2; "jj/mm/aaaa") pour une date.

Le conseil du pro
Sans ancres, REGEX.TEST renvoie VRAI dès qu'une portion du texte colle au motif, si bien que [0-9]{5} passe même sur une chaîne de 20 chiffres. Encadre ton motif d'un ^ au début et d'un $ à la fin quand tu veux valider la cellule entière, comme ^[0-9]{5}$ pour un code postal.

Tu as peut-être encore une question

Une expression régulière est un motif de recherche qui décrit une forme de texte. [0-9]+ correspond par exemple à un ou plusieurs chiffres, et [A-Z]{2} à deux lettres majuscules. Les regex font ce que les jokers * et ? ne savent pas faire, comme imposer un nombre exact de caractères, alterner entre plusieurs motifs ou valider une adresse email.

Pour aller plus loin

Tout ce dont tu as besoin pour maîtriser la fonction REGEX.TEST se trouve ici.

Besoin d’aide sur Excel ?

Rejoins le Dojo pour poser tes questions, obtenir de l’aide sur tes fichiers Excel et participer chaque mois à un cours collectif en direct.

Gratuit · Sans carte bancaire