Numeriblog Google Workspace Google Sheets, le tableur surpuissant Google Sheets : Query : filtrer par plage de dates à l’aide de WHERE

Google Sheets : Query : filtrer par plage de dates à l’aide de WHERE

Dans une grande base de données, il est souvent délicat de sélectionner des informations ou de faire des calculs en prenant comme critère de recherche les dates. Pourtant, ce critère est crucial et doit être […]

personnes ont consulté cet article

4 minutes

Rédigé par Jérémi PICCIONI - il y a 11 mois

Ce que vous allez découvrir

  • Syntaxe de la fonction QUERY :
  • Comment rechercher des dates dans la base de données ?
  • Conclusion

Google Sheets : Query : filtrer par plage de dates à l’aide de WHERE

Dans une grande base de données, il est souvent délicat de sélectionner des informations ou de faire des calculs en prenant comme critère de recherche les dates. Pourtant, ce critère est crucial et doit être pris en compte la plupart du temps pour avoir des résultats pertinents.

Cependant de nombreux formats de dates existent pouvant rendre les choses compliquées et les dates sont parfois également écrites au format texte. Dans ce cas des transformations préalables seront nécessaires avant de faire des tris ou calculs sur vos données. En effet, vous devrez homogénéiser le format de toutes les dates afin qu’elles soient identiques.

Dans cet article nous allons voir ensemble au travers d’exemples concrets comment filtrer des informations à l’aide de la puissante fonction QUERY() et son sélecteur SQL (Simple Query Language) : WHERE.

Cet article est inspiré de la vidéo Learn Google Spreadsheets dont je recommande vivement la chaîne Youtube.

Mais avant plus d’explications sur la fonction QUERY(), regardons de plus près comment fonctionnent les dates dans Google Sheets.

Maintenant que les formats de dates n’ont plus de secret pour vous, passons à présent à la fonction QUERY().

Syntaxe de la fonction QUERY :

  • QUERY (données; requête; [en têtes])

Comment rechercher des dates dans la base de données ?

Claire travaille au service des ressources humaines d’un laboratoire et gère les informations de la centaine de salariés de l’entreprise.

Dans cet exemple, Claire utilise le fichier intitulé : «Base de données» dans laquelle sont enregistrées les informations de l’entreprise.

Premier exemple : utilisation de données numériques

Pour ce premier exemple, les étapes intermédiaires suivantes doivent être effectuées :

  • Changer le format de « date » à « nombre » dans la base de données.
  • Pour cela elle a sélectionné la colonne “Date” puis Format / Nombre / format JJ-MM-AAAA.

Les dates sont donc affichées comme dans l’image ci-dessous :

Google Sheets - Format de date

Afin de pouvoir réaliser des tests et modifier facilement la requête de la formule QUERY() sans avoir à modifier les premiers paramètres de la formule, vous pouvez saisir la requête dans une cellule séparée.

  • Ouvrez une nouvelle feuille et entrez la formule suivante dans la cellule A1 :
SELECT A, B, C, D, E, F WHERE A >= 42710

SELECT A, B, C, D, E, F sont les colonnes à afficher. Elles seront affichées dans l’ordre dans lequel vous les avez saisies.

Exemple :

  • SELECT A,B,C affichera les colonnes dans l’ordre alphabétique 
  • Alors que SELECT B,C,A donnera un affichage différent.
    • WHERE A >= 42710
    • Le mot clé WHERE indique la condition a respecter
    • 42710 est la valeur numérique équivalente à la date 06/12/2016

Il s’ensuit que la formule indique qu’elle reprend les informations contenues dans les colonnes A, B, C, D, E, F, à condition que la date se trouvant dans la colonne A soit postérieure au 06 décembre 2016.

Dans la cellule A3, elle sera inscrite la fonction QUERY, liée à la formule précédente.

= QUERY ('Base de données'! $A$2:$G$102;A1;1)

À des fins pédagogiques, nous avons séparé la requête dans une cellule séparée (A1) afin qu’elle soit plus visible et facile à modifier.

  • ‘Base de données’! $A$2:$G$102, est la base à partir de laquelle les informations seront extraites.
  • A1, est la requête (condition) qui sera réalisée par la fonction QUERY().
  • 1, le nombre de lignes où apparaissent les en-têtes des tableaux.

Pour information, le troisième argument (;1) est facultatif et la fonction QUERY() parvient le plus généralement à déterminer automatiquement le nombre de lignes d’en-tête. Au cas ou vous obteniez plusieurs valeurs dans la première ligne de résultats de votre QUERY(), alors ajoutez ce troisième argument qui réglera certainement votre souci.

Nous obtenons donc les résultats suivants :

Google Sheets - Fonction Query

Deuxième exemple : utilisation de la syntaxe de date directement dans la fonction QUERY

Si vous souhaitez faire une simple requête basée sur des dates sans devoir la modifier par la suite (requête non dynamique) et sans avoir à changer le format des nombres, vous devrez utiliser une syntaxe précise et peu intuitive.

Dans cet exemple, nous allons inclure la syntaxe de la formule dans la fonction QUERY.

Saisissez la syntaxe des dates de début et de fin que vous souhaitez rechercher dans la formule de cette façon :

select A, B, C WHERE A > date '2019-01-01' AND A < date '2019-12-31'

IMPORTANT : le format de la date doit TOUJOURS être : AAAA-MM-JJ, et cela même si le format affiché dans votre base de données est JJ-MM-AAAA ou tout autres formats.

Si vous devez rechercher les données dans la feuille « Exemple 1 », qui commence le 1er janvier 2019 et se termine le 31 décembre de la même année, cela donnera :

= query('Exemple 1'! A3:F; "SELECT A, B, C WHERE A > date '2019-01-01' AND A < date '2019-12-31'"; 1)

  • ‘Exemple 1’!A3:F est la zone de la feuille nommée Exemple 1 à partir de laquelle les données doivent être extraites.
  • SELECT A, B, C sont les colonnes dont vous souhaitez afficher les résultats (DATE, NOM et PRÉNOM)
  • WHERE A> date ‘2019-01-01’ AND A <date ‘2019-12-31’  » sont les limites inférieures et supérieures de la plage de date recherchée
  • 1, le nombre de ligne où apparaissent les en-têtes des tableaux (facultatif, surtout lorsqu’il n’y a qu’une seule ligne d’en-tête, comme dans 99 % des cas 😉 )
Google Sheets - Query et where

Mais lorsque vous effectuez des recherches de dates qui sont amenées à être modifiées fréquemment avec QUERY (requête dynamique), une bien meilleure alternative vous sera présentée dans la section suivante.

Troisième  exemple : utilisation de tableaux pour la recherche dynamique

Dans cet exemple, nous allons utiliser directement le format date des cellules qui indiquent un début et une fin, sans avoir à modifier son format en nombres.

Pour cela, vous devez combiner des cellules.

Comment combiner des cellules

Pour combiner des cellules, utilisez le caractère « & »

Google sheets - Enchaîner

Cette combinaison permet également d’ajouter du texte entre les valeurs des cellules à combiner. Comme dans l’exemple suivant.

Google sheets - Enchaîner

Pour en revenir à l’utilisation des dates, les étapes suivantes doivent être effectuées :

  • Placez les informations Select (de l’exemple précédent) entre guillemets. Et placez le signe « = » devant. Cela va donc transformer votre chaîne de caractères en formule. C’est pour cela qu’il est possible de mélanger du texte placé entre guillemets et des références de cellules.
  • Créez un tableau où les dates de début et de fin sont indiquées pour obtenir un tableau dynamique.
  • La cellule contenant la fonction QUERY (A3) ne doit pas être modifiée.

Les dates suivantes doivent être jointes pour l’exemple.

DébutFin
31/07/201031/07/2020

La modification de la formule est effectuée sur la cellule A1.

="select A, B, C, D, E, F WHERE A >=" &amp; H2 &amp; " AND A &lt;=" &amp; I2

  • A >= « &H2&”, indique que les dates de la colonne A supérieures ou égales à la date de la cellule H2 seront sélectionnées dans les résultats de la formule QUERY().
  • “AND A <=  » & I2, sélectionne les valeurs inférieures  ou égales à la date contenue dans la cellule I2.

Le mot clé AND indique à la formule QUERY() que les deux conditions doivent être vraies pour que la ligne soit présente dans le résultat de recherche.

Google Sheets - Query

Avec cette formule, Claire n’aura qu’à modifier les dates du tableau de début et de fin pour afficher les résultats recherchés. Voilà un modèle créé pour optimiser son travail et ses informations.

*Oui pour visualiser le dynamisme de la formule, vous pouvez télécharger le tableur avec les exemples décrits ici.

Conclusion

La fonction QUERY, aide à la recherche de données, couplée à l’utilisation de WHERE, il est possible d’obtenir des données sur des plages de dates de manière dynamique .

À vous de jouer pour maîtriser les dates au quotidien dans vos feuilles de calcul. 🙌😄

Rédacteur

S’abonner
Notification pour
guest
1 Commentaire
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
BERGER
BERGER

Bonjour merci pour cette article !
Perso pour récupérer toutes les dates sur l’année 2021 par exemple j’utilise la syntaxe suivante ( avec imbrication Importrange) : « …. select * where year (Col1)> 2020 and year (Col1)< 2022 " . Fonctionne bien ! Claude.

Cet avis vous a été utile ?