Comment utiliser REGEXMATCH pour faire correspondre des dates dans Google Sheets – Tutoriel

Le fonctionnement de REGEXMATCH est l’une des fonctions de texte les plus populaires dans Google Sheets. Lorsque vous saisissez des nombres, des dates ou des valeurs temporelles dans l’une des fonctions de texte Regex, vous devez ajuster la formule en conséquence. Dans ce tutoriel Google Sheets sur l’utilisation de REGEXMATCH pour faire correspondre des dates, je vais fournir des éclaircissements.

Erreur Regex dans la colonne des dates dans Google Sheets

J’ai une colonne de dates dans mon ensemble de données ; la colonne A représente cette colonne de dates. Mon objectif est de tester si une date dans la cellule D2 ou plusieurs dates dans la plage D2:D correspondent à cette colonne de dates.

Voici ma colonne de dates d’échantillon et les dates à faire correspondre :

Regex Error in Date Column in Google Sheets

=REGEXMATCH(A2:A10, D2)

Dans la cellule F2, j’ai essayé d’utiliser la formule REGEXMATCH ci-dessus pour vérifier si la date 10/09/2018 dans la cellule D2 est présente dans la plage A2:A10. Cependant, la formule a produit une valeur d’erreur.

Cette approche n’est pas la bonne façon d’utiliser REGEXMATCH pour les dates dans Google Sheets.

Ci-dessous, vous trouverez les détails corrects pour faire correspondre une seule date et plusieurs dates à l’aide de la fonction REGEXMATCH dans Sheets.

Formule REGEXMATCH pour faire correspondre une seule date dans Google Sheets

Pour travailler avec des dates dans les fonctions REGEXMATCH, REGEXREPLACE, et REGEXEXTRACT dans Google Sheets, il est nécessaire de les convertir en texte brut.

La fonction TO_TEXT facilite la conversion des dates en texte brut pouvant être utilisé dans les opérations regex. Par conséquent, la formule correcte pour utiliser REGEXMATCH avec une seule date serait la suivante :

=ArrayFormula(REGEXMATCH(TO_TEXT(A2:A10), TO_TEXT(D2)))

Note :
Si le formatage des dates diffère entre les colonnes A et D, c’est-à-dire que toutes les dates ne sont pas formatées de manière uniforme, la formule peut ne pas produire de correspondances précises.

Pour remédier à cela, vous pouvez soit inclure la fonction TEXT pour formater les dates comme illustré ci-dessous, soit sélectionner manuellement les dates et accéder à Format > Nombre > Date et heure personnalisés, en choisissant un format de date approprié.

=ArrayFormula(REGEXMATCH(TO_TEXT(TEXT(A2:A10, « DD/MM/YYYY »)), TO_TEXT(TEXT(D2, « DD/MM/YYYY »))))

TO_TEXT dans une plage de dates (tableau) – Points à noter

Vous pouvez observer l’utilisation de ArrayFormula en conjonction avec TO_TEXT dans le Regex mentionné ci-dessus. Pourquoi est-ce nécessaire ?

Le seul paramètre dans la fonction TO_TEXT ci-dessus est un tableau (plage de dates). Cependant, la fonction TO_TEXT elle-même n’est pas conçue comme une fonction de tableau. Par conséquent, lorsque vous entrez un tableau dans TO_TEXT, il est essentiel d’utiliser ArrayFormula avec celui-ci.

Note :

Si vous choisissez d’utiliser directement l’expression régulière de date dans le Regex, la formule suivante fonctionnera.

=ArrayFormula(REGEXMATCH(TO_TEXT(A2:A10), « 15/09/2019 »)) // sans formatage du texte
=ArrayFormula(REGEXMATCH(TO_TEXT(TEXT(A2:A10, « DD/MM/YYYY »)), « 15/09/2019 »)) // avec formatage du texte

Faire correspondre plusieurs dates ou une plage de dates à l’aide de la formule Regex dans Google Sheets

Comme mentionné précédemment, il est impératif d’inclure les fonctions TO_TEXT et ArrayFormula dans ce contexte également.

La distinction réside dans la fusion de plusieurs dates pour former l’expression régulière requise. Toujours confus ?

Pour utiliser REGEXMATCH avec plusieurs dates dans Google Sheets, utilisez la formule suivante. Chaque date à faire correspondre doit être séparée par un symbole de pipe.

=ArrayFormula(REGEXMATCH(TO_TEXT(A2:A10), « 15/09/2019|17/10/2019|02/11/2019 »))

Note : Incluez la fonction TEXT si cela est jugé nécessaire, comme démontré dans nos exemples précédents.

Vous vous demandez comment incorporer les dates dans D2:D4 au lieu d’utiliser le texte « 15/09/2019|17/10/2019|02/11/2019 » comme expression régulière.

La fonction TEXTJOIN suivante combine les dates dans D2:D4 selon le modèle d’expression régulière mentionné précédemment.

=TEXTJOIN(« | », TRUE, D2:D4)

En appliquant les conseils ci-dessus, la formule REGEXMATCH pour faire correspondre plusieurs dates est la suivante :

=ArrayFormula(REGEXMATCH(TO_TEXT(A2:A10), TEXTJOIN(« | », TRUE, D2:D4)))

Note : La section suivante contient des conseils supplémentaires. Vous pouvez choisir de la sauter ou de continuer à lire.

Regex pour filtrer les correspondances de plusieurs dates dans Google Sheets

Toutes les formules fournies ci-dessus pour les dates Regexmatch produisent des valeurs booléennes TRUE et FALSE en sortie.

Pour filtrer plusieurs dates correspondantes, vous pouvez utiliser ces valeurs booléennes (c’est-à-dire la formule Regexmatch elle-même) comme critères de filtre :

=FILTER(A2:B10, ARRAYFORMULA(REGEXMATCH(TO_TEXT(A2:A10), TEXTJOIN(« | », TRUE, D2:D4))))

Veuillez noter que l’inclusion de ArrayFormula autour du Regex n’est pas obligatoire dans la fonction FILTER. Vous pouvez également utiliser la formule Filter sans celle-ci, comme indiqué ci-dessous :

=FILTER(A2:B10, REGEXMATCH(TO_TEXT(A2:A10), TEXTJOIN(« | », TRUE, D2:D4)))

Cela conclut la discussion sur les dates Regexmatch dans Google Sheets. Merci de votre attention. Profitez-en !

Ressources additionnelles :

  1. REGEXMATCH dans SUMIFS et les colonnes à critères multiples dans Google Sheets.
  2. Faire correspondre deux colonnes contenant des valeurs sans ordre en utilisant Regex.
  3. Utilisation de Regex pour plusieurs OU dans la mise en forme conditionnelle dans Google Sheets.
  4. Correspondance des expressions régulières avec Google Sheets Query.
  5. Mettre en évidence les correspondances ou les différences dans deux listes dans Google Sheets.

Articles en lien