REGEX.TESTER : Testez vos expressions régulières dans Excel 365
=REGEX.TESTER(texte; modele; [sensibilite_casse])REGEX.TESTER est une formule révolutionnaire d'Excel 365 qui permet de valider si un texte correspond à une expression régulière spécifique. Contrairement aux fonctions de recherche classiques comme SEARCH ou FIND, REGEX.TESTER offre une flexibilité incomparable en exploitant la puissance des expressions régulières (regex) pour des validations complexes et sophistiquées. Cette fonction retourne VRAI ou FAUX selon que le texte testé correspond au motif défini. Elle est indispensable pour les professionnels travaillant avec des données structurées : validation d'adresses email, numéros de téléphone, codes postaux, formats de documents ou patterns métier spécifiques. Son intégration native dans Excel 365 élimine le besoin de macros VBA complexes. Avec REGEX.TESTER, vous gagnez en productivité et en précision. Vous pouvez créer des systèmes de validation robustes, automatiser le tri de données et construire des workflows intelligents basés sur des critères textuels sophistiqués. C'est un outil essentiel pour les data analysts, les gestionnaires de données et tous ceux qui manipulent du texte régulièrement.
Syntaxe et paramètres
La syntaxe de REGEX.TESTER suit un modèle simple mais puissant : =REGEX.TESTER(texte; modele; [sensibilite_casse]). Le premier paramètre 'texte' est obligatoire et représente la chaîne de caractères à analyser. Ce peut être une référence de cellule, une valeur directe ou même le résultat d'une autre formule. Le deuxième paramètre 'modele' est également obligatoire et contient l'expression régulière définissant le pattern à rechercher. Les expressions régulières utilisent des caractères spéciaux comme ^ (début), $ (fin), . (n'importe quel caractère), * (zéro ou plus), + (un ou plus), ? (zéro ou un), [] (classe de caractères), () (groupes) et | (alternation). Le troisième paramètre 'sensibilite_casse' est optionnel avec une valeur par défaut de 0 (insensible à la casse). Utilisez 0 pour ignorer les majuscules/minuscules dans la comparaison, ou 1 pour une correspondance stricte respectant la casse. Cette flexibilité est cruciale pour adapter la validation à vos besoins spécifiques. Conseil pratique : testez toujours vos expressions régulières avec des données variées avant de les déployer en production. Utilisez des outils de validation regex externes pour affiner votre motif, puis intégrez-le dans REGEX.TESTER. Attention : la formule retourne FALSE si le modèle est invalide, sans message d'erreur explicite.
textpatterncase_sensitivityExemples pratiques
Validation d'adresse email
=REGEX.TESTER(A2; "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"; 0)Cette formule teste si le contenu de A2 correspond au format d'une adresse email valide. Le pattern vérifie : début avec caractères alphanumériques, point ou tiret, puis @ obligatoire, domaine valide et extension de 2+ caractères. La sensibilité à la casse est désactivée (0).
Validation de numéro de téléphone français
=REGEX.TESTER(B3; "^(0|\+33)[1-9]\d{8}$"; 1)Le motif vérifie que le numéro commence par 0 ou +33, suivi de 9 chiffres avec le premier chiffre entre 1 et 9 (excluant les numéros spéciaux). La sensibilité à la casse est activée (1) par prudence, bien que non pertinente ici.
Détection de code produit spécifique
=REGEX.TESTER(C5; "^EL\d{4}$"; 0)Cette formule simple teste si le code produit suit exactement le format 'EL' suivi de 4 chiffres. L'insensibilité à la casse (0) accepte 'el' ou 'EL'. Les caractères ^ et $ garantissent que c'est la totalité du texte qui doit correspondre.
Points clés à retenir
- REGEX.TESTER est la fonction Excel 365 pour valider des textes contre des expressions régulières - elle retourne VRAI ou FAUX
- Elle surpasse SEARCH et FIND en flexibilité, permettant des validations sophistiquées pour emails, téléphones, codes et patterns métier
- Toujours utiliser TRIM() pour nettoyer les données et tester les regex sur des outils externes avant intégration
- La sensibilité à la casse (paramètre 3) est cruciale : 0 par défaut (insensible), 1 pour strict
- Combinez REGEX.TESTER avec IF, FILTER, SUMPRODUCT et COUNTIF pour créer des systèmes de validation et de tri de données robustes
Astuces de pro
Utilisez des variables nommées pour vos patterns regex complexes. Créez une cellule avec le motif (ex: ='^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$') et référencez-la. Cela facilite la maintenance et la réutilisation.
Impact : Gagne du temps lors des modifications, réduit les erreurs de copie-colle, améliore la lisibilité des formules
Testez vos expressions régulières sur regex101.com avant de les intégrer dans Excel. Utilisez le mode 'JavaScript' qui est proche du moteur regex d'Excel 365.
Impact : Évite les erreurs #VALUE!, accélère le développement, permet de tester avec des données réelles avant déploiement
Combineztoujours REGEX.TESTER avec TRIM() pour éliminer les espaces invisibles qui causeraient des faux négatifs : =REGEX.TESTER(TRIM(A1); modele; sensibilite)
Impact : Augmente la robustesse des validations, réduit les faux rejets, améliore la qualité des données
Pour les validations sensibles (emails, téléphones), testez avec sensibilite_casse=1 initialement, puis relâchez si nécessaire. C'est plus sûr de commencer strict.
Impact : Prévient les faux positifs, garantit la qualité des données collectées, facilite les audits de conformité
Combinaisons utiles
Validation avec message d'erreur personnalisé
=IF(REGEX.TESTER(A1; "^[0-9]{3}-[0-9]{3}-[0-9]{4}$"; 0); "Format valide"; "Format attendu: XXX-XXX-XXXX")Combine REGEX.TESTER avec IF pour fournir un retour utilisateur clair. Valide un numéro de téléphone au format spécifique et affiche un message d'aide si le format est incorrect.
Comptage de lignes valides dans une plage
=SUMPRODUCT(--REGEX.TESTER(A1:A100; "^[a-zA-Z]+@[a-zA-Z]+\.[a-zA-Z]{2,}$"; 0))Utilise SUMPRODUCT pour compter combien d'adresses email dans la plage A1:A100 sont valides. Le double tiret (--) convertit les booléens en 1/0 pour le comptage.
Filtrage conditionnel de données
=FILTER(A1:B100; REGEX.TESTER(A1:A100; "^[A-Z]{2}[0-9]{5}$"; 1))Combine REGEX.TESTER avec FILTER pour extraire uniquement les lignes où la colonne A contient des codes au format spécifique (2 majuscules + 5 chiffres). Très utile pour le tri de données.
Erreurs courantes
Cause : Le paramètre 'modele' contient une expression régulière syntaxiquement incorrecte, par exemple des parenthèses non fermées ou des caractères d'échappement mal formés.
Solution : Validez votre regex avec un outil externe (regex101.com). Vérifiez l'échappement des caractères spéciaux avec des antislash (\). Par exemple, pour chercher un point littéral, utilisez \. au lieu de .
Cause : La référence de cellule utilisée dans le paramètre 'texte' pointe vers une cellule supprimée ou un classeur fermé.
Solution : Vérifiez que toutes les références de cellules sont valides. Utilisez des noms de plages nommées pour plus de robustesse. Évitez les références entre classeurs si possible, ou utilisez des chemins absolus.
Cause : Confusion entre sensibilité à la casse, mauvaise interprétation du motif regex, ou présence d'espaces/caractères invisibles dans le texte testé.
Solution : Utilisez TRIM() pour éliminer les espaces superflus : =REGEX.TESTER(TRIM(A2); modele; sensibilite). Testez avec la sensibilité à la casse inversée (0 vs 1). Vérifiez le motif caractère par caractère.
Checklist de dépannage
- 1.Vérifiez que votre expression régulière est syntaxiquement correcte en la testant sur regex101.com avec l'option JavaScript
- 2.Utilisez TRIM() autour du paramètre 'texte' pour éliminer les espaces inutiles : =REGEX.TESTER(TRIM(A1); modele; sensibilite)
- 3.Vérifiez la sensibilité à la casse (paramètre 3) : 0 pour insensible (défaut), 1 pour sensible - inversez si vous obtenez des résultats inattendus
- 4.Testez avec des données d'exemple variées (cas limites, caractères spéciaux, espaces) avant de déployer sur de grandes plages
- 5.Assurez-vous que toutes les références de cellules sont valides et que les cellules contiennent bien du texte (pas de formules retournant des erreurs)
- 6.Si vous utilisez des caractères spéciaux dans le motif, échappez-les correctement avec des antislash (ex: \. pour un point littéral, \$ pour un dollar)
Cas particuliers
Texte vide ou cellule vide
Comportement : REGEX.TESTER("" ; ".*" ; 0) retourne VRAI car .* accepte zéro caractères. REGEX.TESTER("" ; ".+" ; 0) retourne FAUX car .+ requiert au moins un caractère
Solution : Testez explicitement les cellules vides avec ISBLANK() avant d'utiliser REGEX.TESTER si nécessaire
Comportement important pour les validations de champs obligatoires
Caractères de nouvelle ligne (Alt+Entrée) dans le texte
Comportement : REGEX.TESTER peut ne pas matcher correctement car les sauts de ligne ne sont pas traités comme des espaces. Le motif . ne match pas les sauts de ligne par défaut
Solution : Utilisez SUBSTITUTE() pour remplacer les sauts de ligne par des espaces ou utilisez le motif [\s\S] pour matcher n'importe quel caractère incluant les sauts de ligne
Courant dans les données importées de systèmes externes
Très longues expressions régulières (>1000 caractères)
Comportement : Peut causer une légère dégradation de performance, surtout si appliqué à des milliers de lignes. Excel peut ralentir sensiblement
Solution : Simplifiez le motif si possible, divisez les validations en plusieurs étapes, ou utilisez FILTER avec des conditions multiples plutôt qu'une mega-regex
Testez les performances sur votre hardware avant de déployer
Limitations
- •REGEX.TESTER n'est disponible que dans Excel 365 - les versions antérieures (2019, 2016, etc.) ne la supportent pas, ce qui limite sa portabilité
- •La fonction retourne simplement VRAI/FAUX sans information sur la position de la correspondance ou les groupes capturés - utilisez REGEX.EXTRACT pour cela
- •Les performances se dégradent avec des patterns très complexes ou des textes très longs (>10000 caractères) appliqués à des milliers de lignes
- •Le motif regex ne peut pas être modifié dynamiquement basé sur d'autres cellules de manière très complexe - il faut construire la chaîne du pattern avant de l'utiliser
Alternatives
Compatibilité
✓ Excel
Depuis Excel 365 (version 2021 et ultérieures)
=REGEX.TESTER(texte; modele; [sensibilite_casse])✗Google Sheets
Non disponible
✗LibreOffice
Non disponible