2021-01-09 04:42 Temps de lecture : 7 min

Comment utiliser la fonction QUERY dans Google Sheets

Manipuler des informations dans Google Sheets peut s'avérer aisé grâce à la fonction QUERY. Cette dernière confère une capacité de recherche avancée, similaire à celle d'une base de données, directement dans votre feuille de calcul. Vous pouvez ainsi extraire et filtrer vos données selon vos besoins spécifiques. Voici comment en tirer parti.

Exploitation de la fonction QUERY

La fonction QUERY n'est pas complexe à appréhender, surtout si vous avez déjà travaillé avec des bases de données via SQL. Sa structure, calquée sur SQL, transpose la puissance des requêtes de bases de données dans Google Sheets.

Une formule utilisant la fonction QUERY se présente comme suit : =QUERY(données, requête, en-têtes). Remplacez "données" par la plage de cellules à analyser (par exemple, "A2:D12" ou "A:D") et "requête" par votre instruction de recherche.

L'argument facultatif "en-têtes" détermine le nombre de lignes d'en-tête à considérer. Si votre en-tête s'étend sur deux lignes, comme "Prénom" en A1 et "Nom" en A2, la fonction QUERY traitera les deux premières lignes comme un seul en-tête combiné.

Prenons l'exemple d'une feuille nommée "Liste du personnel" dans Google Sheets, répertoriant les employés avec leurs noms, identifiants, dates de naissance et statut de participation à la formation obligatoire.

Sur une autre feuille, une formule QUERY peut extraire la liste des employés n'ayant pas suivi la formation obligatoire, incluant leur identifiant, nom, prénom et statut de participation.

Pour obtenir ce résultat, utilisez la formule =QUERY('Liste du personnel'!A2:E12, "SELECT A, B, C, E WHERE E = 'Non'"). Cette requête analyse les données de A2 à E12 sur la feuille "Liste du personnel".

Comme une requête SQL, QUERY sélectionne les colonnes à afficher (SELECT) et définit les critères de filtrage (WHERE). Dans notre cas, elle renvoie les colonnes A, B, C et E pour les lignes où la colonne E ("Formation suivie") contient la valeur "Non".

Comme le montre l'exemple, quatre employés n'ont pas suivi la formation. La fonction QUERY a extrait ces informations, avec leurs noms et identifiants, dans une nouvelle liste.

L'exemple utilise une plage de données fixe. Vous pouvez la remplacer par A:E pour interroger toutes les données des colonnes A à E. Ainsi, lorsque vous ajoutez de nouveaux employés ou que la situation d'un employé change, la liste est automatiquement mise à jour.

La formule devient alors =QUERY('Liste du personnel'!A2:E, "SELECT A, B, C, E WHERE E = 'Non'"). Notez que l'en-tête initial "Employés" en A1 est ignoré.

Si un nouvel employé (Christine Smith) n'a pas suivi la formation, il sera automatiquement ajouté à la liste, comme illustré ci-dessous.

Fonctions de requête avancées

La fonction QUERY est extrêmement flexible. Elle permet d'intégrer des opérateurs logiques (AND, OR), des fonctions Google (COUNT) ou des opérateurs de comparaison (>, <, etc.). Vous pouvez ainsi rechercher des valeurs dans des intervalles.

Utilisation des opérateurs de comparaison

QUERY peut être combinée à des opérateurs de comparaison pour affiner vos filtres. Ajoutons une colonne (F) à notre feuille "Liste du personnel" pour le nombre de récompenses obtenues par chaque employé.

Pour obtenir la liste des employés ayant remporté au moins une récompense, utilisez =QUERY('Liste du personnel'!A2:F12, "SELECT A, B, C, D, E, F WHERE F > 0"). L'opérateur '>' sélectionne les valeurs supérieures à zéro dans la colonne F.

Cette requête a extrait les huit employés ayant remporté une ou plusieurs récompenses sur un total de onze, indiquant que trois n'en ont jamais reçu.

Combinaison de AND et OR

Les opérateurs logiques AND et OR peuvent être imbriqués dans une formule QUERY pour créer des critères de recherche plus complexes.

Pour illustrer l'utilisation de AND, recherchons les employés nés entre 1980 et 1989. Cette requête implique l'utilisation d'opérateurs de comparaison, tels que supérieur ou égal à (>=) et inférieur ou égal à (<=).

La formule est =QUERY('Liste du personnel'!A2:E12, "SELECT A, B, C, D, E WHERE D >= DATE '1980-1-1' AND D <= DATE '1989-12-31'")

Trois employés, nés en 1980, 1986 et 1983, correspondent à ce critère.

De manière similaire, OR permet de générer des résultats. En modifiant les dates et en utilisant OR, nous pouvons exclure tous les employés nés dans les années 1980.

La formule devient =QUERY('Liste du personnel'!A2:E12, "SELECT A, B, C, D, E WHERE D < DATE '1980-1-1' OR D > DATE '1989-12-31'")

Parmi les dix employés initiaux, trois sont nés dans les années 1980. L'exemple montre les sept autres, nés avant ou après cette période.

Utilisation de COUNT

QUERY peut être combinée avec d'autres fonctions, comme COUNT, pour manipuler les données. Par exemple, pour connaître le nombre d'employés ayant ou non suivi la formation obligatoire, utilisez =QUERY('Liste du personnel'!A2:E12, "SELECT E, COUNT(E) GROUP BY E").

En se basant sur la colonne E ("Formation suivie"), QUERY, avec COUNT, compte le nombre de fois où chaque valeur ("Oui" ou "Non") apparaît. Sur notre liste, six employés ont suivi la formation et quatre ne l'ont pas fait.

Cette formule peut être adaptée et combinée avec d'autres fonctions Google, comme SUM.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.