Utilisation de la fonction REGEXMATCH pour les dates dans Google Sheets – Correspondance simple/multiple

La fonction REGEXMATCH est l’une des fonctions de texte populaires dans Google Sheets. Lorsque vous entrez des nombres, des dates ou des valeurs de temps 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 la correspondance des dates, je vise à fournir des clarifications.

La fonction REGEXMATCH prend deux arguments : texte et expression_régulière.

REGEXMATCH(texte, expression_régulière)

Pour ces deux arguments, la fonction nécessite des valeurs de texte pur en entrée. Si vous ne fournissez pas de valeurs de texte, une erreur VALUE! apparaîtra, indiquant que les valeurs du paramètre 1 ou du paramètre 2 ne peuvent pas être coercées en texte.

Vous pouvez aimer : Les différents types d’erreurs dans Google Sheets et comment les corriger.

Par conséquent, lors de l’utilisation de REGEXMATCH pour faire correspondre des dates dans Google Sheets, il est essentiel de les convertir en texte brut.

Erreur de regex dans la colonne des dates dans Google Sheets

J’ai une colonne de dates comme indiqué ci-dessous dans mon ensemble de données ; la colonne A représente cette colonne de dates. Je souhaite tester si une date dans la cellule D2 ou plusieurs dates dans la plage de la cellule D2:D correspondent à cette colonne de dates.

Voici ma colonne de dates d’exemple 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 renvoyé une valeur d’erreur.

L’approche ci-dessus 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 les dates dans les fonctions REGEXMATCH, REGEXREPLACE et REGEXEXTRACT dans Google Sheets, il est nécessaire de convertir les dates en texte brut.

La fonction TO_TEXT facilite la conversion des dates en texte brut pouvant être utilisé dans des opérations de 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)))

Regexmatch Formula to Match a Single Date

Note :

Si le formatage de la date diffère entre la colonne A et la colonne D, c’est-à-dire si 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.

Note :

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

=ArrayFormula(REGEXMATCH(TO_TEXT(A2:A10), « 15/09/2019 »)) // sans formatage de texte
=ArrayFormula(REGEXMATCH(TO_TEXT(TEXT(A2:A10, « DD/MM/YYYY »)), « 15/09/2019 »)) // avec formatage de 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 l’amalgamation 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 »))

Regexmatch Multiple Dates in Google Sheets

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

Vous vous demandez comment incorporer les dates de 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 de D2:D4 selon le modèle d’expression_régulière mentionné ci-dessus.

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

En appliquant les indications 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 astuces 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 donnent 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 filtrage :

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

Filtering Matching Multiple Dates Using Regular Expression

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 cela, 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 supplémentaires :

  1. REGEXMATCH dans SUMIFS et les colonnes de critères multiples dans Google Sheets.
  2. Faire correspondre deux colonnes contenant des valeurs sans ordre à l’aide de Regex.
  3. Plusieurs OU dans la mise en forme conditionnelle en utilisant Regex dans Google Sheets.
  4. Correspondance d’expression régulière dans la requête Google Sheets.
  5. Mettre en évidence les correspondances ou les différences dans deux listes dans Google Sheets.

Articles en lien