Utiliser la fonction Datediff dans la requête de Google Sheets

Lorsque vous utilisez Google Sheets Query, la fonction DATEDIFF est l’une des fonctions scalaires qui renvoie une valeur par ligne, sans agréger les données. Il existe trois types de fonctions et d’opérateurs pour manipuler les données dans Google Sheets Query : les fonctions d’agrégation, les fonctions scalaires et les opérateurs arithmétiques. La fonction DATEDIFF appartient à la première catégorie.

Pour apprendre la fonction DATEDIF de la feuille de calcul, veuillez suivre le guide des fonctions de date. En revanche, la fonction DATEDIF est bien plus avancée et peut renvoyer le nombre de jours, de mois, d’années, etc., entre deux dates.

Fonction DATEDIFF dans la requête de Google Sheets : Exemple

Tout d’abord, vous pouvez apprendre comment trouver la différence entre deux dates en utilisant la fonction scalaire DATEDIFF dans la requête de Google Sheets. Ensuite, vous pouvez expérimenter avec quelques exemples réels, tels que :

  1. Comment trouver les anniversaires à venir en utilisant la requête ?
  2. Comment extraire les contrats qui expirent dans un mois, 30 jours ou un nombre spécifique de jours ?

1. Trouver le nombre de jours entre deux dates dans la requête

Syntaxe :

dateDiff(date de fin, date de début)

Cette fonction scalaire de la requête peut être utilisée dans une colonne de date ou de date et d’heure. La formule renverra des valeurs entières car elle tronque les valeurs de temps avant le calcul.

Données d’exemple :
J’ai quelques dates de début de travail dans la colonne A et des dates de fin de travail dans la colonne B. Voyons comment utiliser la fonction DATEDIFF dans la requête de Google Sheets pour renvoyer le nombre de jours entre les dates de début et de fin de travail données dans chaque ligne.

Formule (D1) :

=QUERY(A1:B,"Select A,B,dateDiff(B,A)")

Vous pouvez simplement utiliser =QUERY(A1:B,"Select dateDiff(B,A)") pour renvoyer une colonne avec le nombre de jours.

DATEDIFF dans la requête VS fonction DATEDIF : Différences

La fonction DATEDIF est une fonction autonome de la feuille de calcul, tandis que la fonction DATEDIFF est une fonction scalaire utilisée dans la requête. DATEDIF possède de nombreuses fonctionnalités. Nous ne considérerons ici que les différences entre les formules renvoyant la différence en jours entre deux dates ou valeurs de date et d’heure.

Si j’utilise la fonction de la feuille de calcul dans la cellule D1, la formule doit ressembler à ceci :

=ArrayFormula(datedif(A2:A5,B2:B5,"D"))

Voici la syntaxe de la fonction où « D » représente les jours.

datedif(date de début, date de fin, unité)

En ce qui concerne la différence avec DATEDIFF, ici, la date de début vient en premier dans l’ordre. Cette différence concerne la syntaxe, mais la suivante concerne le calcul. Si nous spécifions accidentellement une date de début supérieure à la date de fin, la fonction scalaire renverra un nombre négatif, tandis que celle de la feuille de calcul renverra l’erreur #NUM.

Utilisation réelle de la fonction DATEDIFF dans la requête de Google Sheets

Veuillez lire les deux exemples ci-dessous.

1. Trouver les anniversaires à venir en utilisant une formule de requête

Voici à quoi ressemblent mes données d’exemple :

  • La colonne A contient la date de naissance de quelques personnes.
  • Leurs noms figurent dans la colonne B.
=ArrayFormula(QUERY({A2:B,{(date(year(today()),month(A2:A),day(A2:A)))}},"select Col1,Col2 where Col2<>'' and dateDiff(Col3,now())=30"))

J’ai utilisé la formule de requête ci-dessus dans la cellule D2. Elle renvoie les dates de naissance et les noms des personnes dont les anniversaires arrivent dans 30 jours à partir d’aujourd’hui.

Explication de la formule

Dans cet exemple, il y a deux colonnes : DOB (A) et Nom (B). Nous avons virtuellement ajouté une troisième colonne qui extrait les mois et les jours de la colonne A et ajoute l’année en cours pour former une date. Par exemple, la date de naissance de la personne dans la cellule A2 est le 30/01/1980. Avec la formule ci-dessous, nous pouvons changer uniquement la partie année de cette date.

=date(year(today()),month(A2),day(A2))

J’ai utilisé la fonction DATEDIFF dans la formule de requête pour trouver le nombre de jours entre la date d’aujourd’hui et cette nouvelle date formée. datediff(Col3,now()). Si le résultat est de 30, la requête sélectionne les DOB et les noms correspondants, sinon elle renvoie une erreur #N/A.

2. Extraire les contrats qui expirent dans un mois, 30 jours ou N jours

Si vous avez compris l’exemple précédent, résoudre ce problème est facile.

Voici comment utiliser la fonction DATEDIFF dans la requête pour cela :

=QUERY({A2:B},"select Col1,Col2 where Col2<>'' and dateDiff(Col1,now())=30")

Vous pouvez remplacer =30 par >30 ou par tout autre nombre pour définir une autre date d’expiration.

Conseils supplémentaires

Dans les exemples ci-dessus, j’ai utilisé la fonction NOW() pour renvoyer la date d’aujourd’hui. Elle est codée en dur dans la formule. Si elle se trouve dans une cellule, par exemple dans la cellule C1, utilisez la formule suivante :

=QUERY({A2:B},"select Col1,Col2 where Col2<>'' and dateDiff(Col1,date '"&TEXT(C1,"yyyy-mm-dd")&"')=30")

Voilà tout ce qu’il y a à savoir sur l’utilisation de la fonction DATEDIFF dans la requête de Google Sheets.

Si vous souhaitez en savoir plus sur les techniques d’optimisation de Google Sheets et d’autres conseils de marketing en ligne, n’hésitez pas à consulter Crawlan.com.

Articles en lien