Aller au contenu principal

Qu'est-ce que la fonction REGEXTEST ?

Définition
La fonction REGEXTEST vérifie si un texte contient au moins une correspondance avec une expression régulière. Elle renvoie VRAI si le motif est trouvé, FAUX sinon. Disponible dans Excel 365 (versions récentes de 2024) ; dans Google Sheets, la fonction équivalente s'appelle REGEXMATCH.

Tu sors REGEXTEST quand les jokers classiques (*, ?) ou une simple fonction CHERCHE ne suffisent plus à garantir qu'un texte respecte un format strict : compter exactement 5 chiffres, refuser une lettre en trop, valider une structure précise. Elle te permet de repérer en un coup d'oeil les emails mal saisis, les numéros de téléphone incomplets ou les références produit qui sortent du gabarit, sans empiler une cascade de conditions.

Les expressions régulières (regex) sont un langage universel de recherche de motifs utilisé dans tous les langages de programmation. REGEXTEST est le nom de cette fonction dans Excel 365, qui intègre enfin ce mécanisme nativement, sans macro ni module complémentaire. Dans Google Sheets, la fonction équivalente ne s'appelle pas REGEXTEST mais REGEXMATCH.

Syntaxe

Clique sur un argument pour aller à son explication.

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

Comprendre chaque paramètre de la fonction REGEXTEST

Les deux arguments vont toujours dans le même ordre : d'abord le texte à examiner, ensuite le motif regex qui décrit ce que tu cherches. Aucun n'est facultatif, mais c'est le motif qui fait tout le travail, et c'est aussi là que se cachent la plupart des pièges (casse sensible par défaut, caractères spéciaux à échapper).

1

texte

: le texte ou la référence de cellule à analyser

Par exemple A1 ou la chaîne littérale "contact@example.com".

REGEXTEST parcoure l'intégralité du texte et retourne VRAI dès qu'une partie correspond au motif. Pour valider que le texte entier correspond (et pas seulement une portion), ancre ton expression avec ^ au début et $ à la fin.

2

expression_régulière

: le motif regex à rechercher

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

Les expressions régulières sont sensibles à la casse par défaut. Pour ignorer la casse, ajoute le modificateur (?i) au début de ton expression.

Attention : Les caractères spéciaux comme ., *, +, ?, [, ], (, ), {, }, ^, $ et \ doivent être précédés d'un antislash pour être interprétés littéralement. Par exemple, pour chercher un point réel, écris \. et non . (qui signifie "n'importe quel caractère").

Le savais-tu ?
Attention à un piège de nommage. Microsoft a ajouté REGEXTEST à Excel 365 en 2024, en même temps que REGEXEXTRACT et REGEXREPLACE (ces deux dernières existent aussi dans Google Sheets, sous le même nom). Mais Google Sheets n'a pas de REGEXTEST : pour le même test, on y appelle REGEXMATCH. Sur Excel 2021, les versions antérieures et les licences perpétuelles, REGEXTEST renvoie #NOM?.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Responsable CRM : valider les adresses email

Tu gères une base CRM et tu veux signaler les adresses email mal saisies avant d'envoyer une campagne. Le motif [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} vérifie la présence de caractères valides avant le @, d'un @, d'un nom de domaine, d'un point et d'une extension d'au moins 2 lettres.

Note le double antislash \\. dans la formule Excel : un antislash échappe le point en regex, et le second antislash est requis par Excel pour écrire un antislash littéral dans une chaîne. Copie cette formule sur toute la colonne pour valider d'un coup toute ta liste.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXTEST(.
  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 :=REGEXTEST(A2; "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
Exemple 2

Service client : vérifier le format des téléphones

Tu gères un formulaire de contact et tu veux t'assurer que les numéros saisis sont bien des mobiles français au format 10 chiffres commençant par 06 ou 07. Le motif ^0[67][0-9]{8}$ se lit ainsi : ^ début, 0 chiffre zéro, [67] un chiffre 6 ou 7, [0-9]{8} exactement 8 chiffres, $ fin.

Les ancres ^ et $ sont essentielles ici : sans elles, REGEXTEST retournerait VRAI pour un numéro de 15 chiffres qui contient 06 quelque part. Avec les ancres, tu valides la totalité du texte.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXTEST(.
  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 quinze chiffres contenant 06 quelque part passerait à tort.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=REGEXTEST(A2; "^0[67][0-9]{8}$")
Exemple 3

Logistique : détecter un code postal français

Tu importes des adresses depuis un outil externe et certaines n'ont pas de code postal. Le motif [0-9]{5} cherche 5 chiffres consécutifs n'importe où dans le texte. Sans ancres, REGEXTEST retourne VRAI dès que 5 chiffres sont présents quelque part dans la chaîne.

Tu peux ensuite coupler REGEXTEST avec FILTRE pour isoler les adresses incomplètes et les traiter séparément, ou avec une mise en forme conditionnelle pour les surligner en rouge dans ton tableau.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXTEST(.
  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 :=REGEXTEST(A2; "[0-9]{5}")
Exemple 4

Comptabilité : valider le format de date JJ/MM/AAAA

Tu importes des données de saisie et les dates sont parfois dans des formats différents (américain, ISO, ou incomplet). Le motif ^[0-9]{2}/[0-9]{2}/[0-9]{4}$ exige exactement : 2 chiffres, un slash, 2 chiffres, un slash, 4 chiffres, et rien d'autre.

Les ancres ^ et $ garantissent que le format couvre tout le texte de la cellule. Un texte comme 25/12/2024 15:30 retournerait FAUX, ce qui est bien le comportement voulu si tu veux uniquement des dates sans heure.

Les étapes
  1. 1
    Dans une cellule, écris =REGEXTEST(.
  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 ». Les ancres ^ et $ couvrent tout le texte, si bien que 25/12/2024 15:30, avec son heure en trop, est refusé.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=REGEXTEST(A2; "^[0-9]{2}/[0-9]{2}/[0-9]{4}$")
Lucas, la mascotte du Dojo, compare deux fonctions Excel

REGEXTEST vs REGEXEXTRACT vs CHERCHE vs TROUVE

REGEXTEST répond à la question "ce motif existe-t-il ?". Utilise REGEXEXTRACT si tu veux récupérer la partie qui correspond, et REGEXREPLACE pour remplacer. CHERCHE et TROUVE n'acceptent pas les regex mais fonctionnent dans toutes les versions.

CritèreREGEXTESTREGEXEXTRACTCHERCHETROUVE
FonctionTester un motifExtraire un motifChercher un texte fixeChercher (sensible casse)
RésultatVRAI / FAUXTexte extraitPosition numériquePosition numérique
Supporte les regexOuiOuiNonNon
DisponibilitéExcel 365 (2024+)Google Sheets / Excel 365Toutes versionsToutes 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 REGEXTEST

Trois ennuis reviennent avec REGEXTEST, et ils n'ont rien à voir entre eux. Une regex mal écrite (crochet ou parenthèse oublié) déclenche #CALC!, une version d'Excel trop ancienne sort #NOM?, et un VRAI qui te semble injustifié vient presque toujours d'un motif sans ancres ^...$, qui se contente de trouver une correspondance n'importe où dans la cellule.

Erreur #CALC! avec une regex invalide

L'expression régulière contient une erreur de syntaxe : parenthèses non fermées, quantificateur mal placé, ou crochet ouvrant sans fermant.

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

Erreur #NOM? ou fonction non reconnue

REGEXTEST n'est pas disponible dans ta version : elle nécessite Excel 365 avec les mises à jour de 2024, et reste absente d'Excel 2021, des versions antérieures et des licences perpétuelles. Si tu es dans Google Sheets, la fonction ne s'appelle pas REGEXTEST mais REGEXMATCH.

Solution : Mets à jour Excel 365 vers la version la plus récente. En attendant, tu peux remplacer REGEXTEST par une combinaison de CHERCHE (insensible à la casse) ou TROUVE (sensible à la casse) imbriquées dans SIERREUR pour une validation partielle.

REGEXTEST retourne VRAI alors que le format semble faux

Sans les ancres ^ et $, REGEXTEST retourne VRAI dès qu'une sous-chaîne du texte correspond. Par exemple, [0-9]{5} retourne VRAI pour un texte de 20 chiffres car 5 chiffres consécutifs y sont présents.

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

Le conseil du pro
Sans ancres, REGEXTEST renvoie VRAI dès qu'une portion du texte colle au motif : [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.
FAQ

Questions fréquentes

Une expression régulière est un motif de recherche qui décrit des chaînes de texte. Par exemple, [0-9]+ correspond à un ou plusieurs chiffres, [A-Z]{2} correspond à deux lettres majuscules. C'est un langage universel utilisé dans tous les environnements de développement. Dans une feuille de calcul, les regex permettent de faire ce que les jokers * et ? ne peuvent pas : imposer un nombre exact de caractères, alterner entre plusieurs motifs, ou valider un format complexe comme une adresse email.

Ressources

Pour aller plus loin

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

Tout voir