Comment utiliser DateTime dans Query dans Google Sheets

Une fonction Google Apps Script, une fonction personnalisée ou une application externe peut remplir les cellules de Google Docs Sheets avec DateTime (horodatage). Mon sujet ne concerne pas l’insertion des horodatages. Apprenons plutôt comment gérer DateTime dans Query dans Google Sheets.

Les fonctions personnalisées onEdit et la fonction intégrée NOW() sont les deux fonctions qui insèrent DateTime dans Google Sheets.

Si vous avez connecté des formulaires Google Docs à Google Sheets, vous pouvez voir que la première colonne de votre feuille de calcul connectée est remplie de valeurs d’horodatage/DateTime.

Ici, nous allons apprendre comment utiliser le mot-clé DateTime dans Query dans Google Sheets. C’est-à-dire filtrer, regrouper et formater une colonne d’horodatage.

Comment utiliser DateTime dans la clause WHERE de Query dans Google Sheets

Avant d’apprendre l’utilisation de DateTime dans la clause WHERE de Query, vous devez connaître l’élément du langage Query appelé Littéraux.

Les littéraux sont des valeurs utilisées pour les comparaisons/assignations.

Pour les types de données date/heure, il existe trois mots-clés : date, timeofday et datetime ou timestamp.

Cela signifie que pour comparer une colonne qui contient une date et une heure, vous pouvez utiliser le mot-clé datetime ou timestamp comme suit.

Exemples d’utilisation de DateTime dans Query dans Google Sheets:

Formule lorsque la colonne A contient un horodatage/DateTime.
=query(A1:D,"select A,B,C,D where A>= timestamp '2019-1-11 12:00:00'",1)

Dans le filtre ci-dessus, la colonne A contient un horodatage/DateTime. Voici une requête alternative.
=query(A1:D,"select A,B,C,D where A>= datetime '2019-1-11 12:00:00'",1)

Les deux formules renverront le même résultat.

DateTime in Query in Google Sheets

Criterion DateTime en tant que référence de cellule dans Query

Veuillez vous référer à la cellule A2 dans l’image ci-dessus. Comment utiliser cette valeur comme critère ?

L’exemple suivant montre comment spécifier un horodatage en tant que référence de cellule dans la clause WHERE de Query dans Google Sheets.

Criterion DateTime en tant que référence de cellule:
=query(A1:D,"select A,B,C,D where A>= datetime '"&TEXT(A1,"yyyy-mm-dd HH:mm:ss")&"'",1)

Encore une fois, vous pouvez remplacer le mot-clé datetime dans la formule par le mot-clé timestamp.

Comment formater DateTime dans la sortie de Query

Lorsque vous formatez une colonne DateTime à l’aide de la clause de format Query, cela n’affecte pas réellement DateTime, ou nous pouvons dire, la valeur sous-jacente dans la cellule.

Cela nous permet d’afficher l’horodatage au format date tout en conservant la valeur intacte.

Similaire : Comment formater les dates, les heures et les nombres dans Query de Google Sheets.

Utilisation de DateTime dans la clause de format :
=query(A1:D,"select A,B,C,D where A>= datetime '"&TEXT(F1,"yyyy-mm-dd HH:mm:ss")&"' format A 'DD-MM-YY'",1)

Format DateTime in Sheets Query

Voyez la valeur dans la barre de formule. Ce n’est pas une date au format DD-MM-YY comme affiché dans la colonne F. Elle contient des valeurs horaires.

Cette formule masque les éléments de temps avec le formatage. Encore une fois, la valeur sous-jacente dans les cellules restera la même.
=query(A1:D,"select A,B,C,D where A>= datetime '"&TEXT(F1,"yyyy-mm-dd HH:mm:ss")&"' format A 'DD-MM-YY HH:MM'",1)

DateTime dans la clause Group By de Query dans Google Sheets

Pour cet exemple, je ne publie pas à nouveau la capture d’écran. Regardez les colonnes A, B, C et D dans la première capture d’écran de ce tutoriel.

Dans cela, la formule suivante regroupera les données en fonction de DateTime dans la colonne A, puis par produit dans la colonne B.

=query(A1:D,"select A,B, Sum(C) where A is not null group by A,B")

Group DateTime (timestamp) in Query in Sheets

Regardez DateTime dans la colonne F dans le résultat ci-dessus. Ce ne sera pas la sortie que vous attendiez.

Parce qu’il ne groupe pas par dates. Vous voudrez peut-être exclure la valeur horaire du regroupement.

La solution est d’utiliser la fonction scalaire toDate tant dans la clause Select que dans la clause Where, comme ci-dessous.

=query(A1:D,"select todate(A),B, Sum(C) where A is not null group by todate(A),B")

C’est tout. Merci de votre attention. Profitez-en !

Articles en lien