Query Google Sheet : comment utiliser cette fonction pour filtrer et analyser vos données

Personne analysant un tableau Google Sheets avec graphiques et données pour utiliser la fonction QUERY

La fonction QUERY permet d’interroger un tableau Google Sheets comme une mini base de données, avec une syntaxe proche du SQL. Elle sert à sélectionner des colonnes précises, filtrer des lignes selon une condition, trier des données, regrouper des valeurs ou limiter un résultat, directement depuis une formule. Une fois la logique de base comprise, QUERY devient l’une des formules les plus puissantes pour analyser un tableau Google Sheets sans créer de tableau croisé dynamique.

La syntaxe de base de la fonction QUERY

Une formule QUERY repose sur une structure simple, composée de trois éléments placés entre parenthèses. La syntaxe générale s’écrit ainsi : =QUERY(plage de données; « requête »; nombre d’en-têtes).

Le premier argument désigne la plage de données à analyser, par exemple A1:D100. Le deuxième argument, toujours placé entre guillemets, contient la requête elle-même, rédigée avec des clauses proches du SQL comme SELECT, WHERE ou ORDER BY. Le troisième argument, facultatif, précise le nombre de lignes d’en-tête présentes dans la plage sélectionnée, ce qui aide Google Sheets à correctement interpréter les noms de colonnes.

Un point de syntaxe régulièrement source d’erreur concerne le séparateur entre les arguments : dans la version française de Google Sheets, c’est le point-virgule qui est utilisé, alors que de nombreux tutoriels en anglais utilisent la virgule. Vérifier la version linguistique de son tableau Google Sheets évite ainsi une erreur de formule fréquente chez les débutants.

Comprendre les colonnes Col1, Col2 dans une requête QUERY

Avant de plonger dans les exemples, un point déroute souvent les utilisateurs : à l’intérieur de la requête écrite entre guillemets, les colonnes ne se désignent pas par leur lettre habituelle (A, B, C) mais par leur position relative dans la plage sélectionnée, sous la forme Col1, Col2, Col3.

Si la plage de données commence en colonne B, alors Col1 correspond à la colonne B, Col2 à la colonne C, et ainsi de suite. Cette numérotation relative, plutôt qu’absolue, explique une bonne partie des erreurs rencontrées lorsqu’on tente de réutiliser une formule QUERY trouvée ailleurs sans adapter cette correspondance à sa propre plage de données.

Sélectionner des colonnes avec SELECT

La clause SELECT permet de choisir précisément quelles colonnes afficher dans le résultat, plutôt que de renvoyer l’ensemble de la plage de données sélectionnée. Pour afficher uniquement la première et la troisième colonne d’un tableau, la formule s’écrirait par exemple : =QUERY(A1:D100; « SELECT Col1, Col3 »; 1).

Cette clause devient particulièrement utile lorsqu’un tableau Google Sheets contient de nombreuses colonnes, mais que seul un sous-ensemble présente un intérêt pour le rapport ou l’analyse en cours. SELECT peut aussi servir de base à laquelle viennent s’ajouter d’autres clauses, comme WHERE ou ORDER BY, pour affiner davantage le résultat final.

Lire aussi :  Changer mot de passe WordPress : toutes les méthodes selon votre situation

Filtrer des données avec la clause WHERE

WHERE constitue probablement la clause la plus utilisée dans une formule QUERY, car elle permet de filtrer des données selon une condition précise. Pour afficher uniquement les lignes où une colonne contient une valeur textuelle donnée, la syntaxe ressemble à : =QUERY(A1:D100; « SELECT * WHERE Col2 = ‘Paris' »; 1).

Pour filtrer selon une valeur numérique, par exemple ne conserver que les lignes où un montant dépasse un seuil, la formule devient : =QUERY(A1:D100; « SELECT * WHERE Col3 > 100 »; 1). Les opérateurs de comparaison classiques (=, >, <, >=, <=, !=) fonctionnent directement après WHERE, tout comme les conditions textuelles avec CONTAINS pour rechercher une valeur partielle dans une cellule.

Il est aussi possible de filtrer selon une cellule de référence plutôt qu’une valeur fixe écrite en dur dans la requête, en concatenant cette référence à l’intérieur de la chaîne de texte. La formule prend alors la forme : = »QUERY(A1:D100; «  »SELECT * WHERE Col2 = ‘ »&B1& »‘ » » »; 1), où B1 contient la valeur recherchée, rendant le filtre dynamique selon le contenu de cette cellule.

ClauseRôleExemple simplifié
SELECTChoisir les colonnes affichéesSELECT Col1, Col3
WHEREFiltrer les lignes selon une conditionWHERE Col3 > 100
ORDER BYTrier les résultatsORDER BY Col2 DESC
GROUP BYRegrouper et agréger des valeursGROUP BY Col1

Trier des données avec ORDER BY

La clause ORDER BY permet de trier des données selon une ou plusieurs colonnes, sans modifier l’ordre du tableau Google Sheets d’origine. Pour trier par ordre croissant, la syntaxe ne demande aucune précision supplémentaire : =QUERY(A1:D100; « SELECT * ORDER BY Col3 »; 1).

Pour un tri par ordre décroissant, il faut ajouter le mot-clé DESC après la colonne concernée : =QUERY(A1:D100; « SELECT * ORDER BY Col3 DESC »; 1). Combiner ORDER BY avec WHERE permet d’obtenir un résultat à la fois filtré et trié en une seule formule, par exemple pour afficher uniquement certaines lignes tout en les classant du montant le plus élevé au plus faible.

Regrouper et agréger des valeurs avec GROUP BY

GROUP BY sert à regrouper les lignes partageant une même valeur dans une colonne donnée, généralement combinée avec une fonction d’agrégation comme SUM, COUNT ou AVG. Pour additionner un montant par catégorie, la formule ressemble à : =QUERY(A1:D100; « SELECT Col1, SUM(Col3) GROUP BY Col1 »; 1).

Cette combinaison transforme une liste de lignes détaillées en un mini rapport synthétique, sans recourir à un tableau croisé dynamique. Un point de syntaxe important : dès qu’une clause GROUP BY est utilisée, toutes les colonnes sélectionnées dans SELECT doivent soit apparaître dans le GROUP BY, soit être enveloppées dans une fonction d’agrégation, sous peine d’obtenir un message d’erreur.

Limiter et renommer les résultats avec LIMIT et LABEL

La clause LIMIT permet de restreindre le nombre de lignes affichées dans le résultat, utile pour afficher uniquement les premières lignes d’un classement déjà trié avec ORDER BY. La formule =QUERY(A1:D100; « SELECT * ORDER BY Col3 DESC LIMIT 5 »; 1) affiche par exemple les cinq lignes ayant la valeur la plus élevée dans la troisième colonne.

Lire aussi :  Tunnel de vente WordPress : comment le créer étape par étape

LABEL, quant à elle, permet de renommer les en-têtes de colonnes affichés dans le résultat, ce qui devient particulièrement utile après l’usage d’une fonction d’agrégation, dont le nom par défaut (par exemple « sum Col3 ») n’est pas toujours lisible pour un lecteur du rapport. La syntaxe s’écrit en ajoutant à la fin de la requête : LABEL SUM(Col3) ‘Total des ventes’.

QUERY, FILTER, SORT ou tableau croisé dynamique : que choisir

QUERY n’est pas la seule façon de filtrer des données dans Google Sheets, et il est utile de la comparer rapidement aux alternatives courantes. La fonction FILTER reste plus simple pour filtrer des lignes selon une ou plusieurs conditions, sans avoir besoin de maîtriser une syntaxe proche du SQL, mais elle ne permet pas de regrouper ou d’agréger les données comme le fait GROUP BY.

SORT se limite au tri de données, sans capacité de filtrage intégrée, et convient pour des besoins très ponctuels. Le tableau croisé dynamique, de son côté, propose une interface visuelle pour regrouper et synthétiser des données, sans écrire de formule, mais il reste moins flexible pour s’intégrer directement dans d’autres calculs ou rapports automatisés construits autour d’une plage de données dynamique.

QUERY se distingue par sa capacité à combiner en une seule formule la sélection de colonnes, le filtrage, le tri, le regroupement et la limitation des résultats, ce qui en fait l’outil le plus polyvalent dès que le besoin dépasse un simple filtre ou un simple tri isolé.

Les erreurs fréquentes avec la fonction QUERY

Plusieurs erreurs reviennent régulièrement lors de la rédaction d’une formule QUERY dans Google Sheets. Le mauvais séparateur entre les arguments, point-virgule contre virgule selon la langue de la feuille de calcul, reste la cause la plus fréquente de message d’erreur immédiat.

L’oubli ou le mauvais placement des guillemets autour de la requête, ou autour d’une valeur textuelle à l’intérieur de la clause WHERE, provoque également des erreurs de syntaxe difficiles à repérer pour un œil non habitué. Confondre les colonnes Col1, Col2 avec les lettres réelles du tableau (A, B, C) génère des résultats incohérents sans message d’erreur explicite, ce qui rend ce type d’erreur particulièrement frustrant à diagnostiquer.

Le traitement des dates pose aussi régulièrement problème : une condition portant sur une date doit généralement être écrite au format date ‘#AAAA-MM-JJ#’ dans une clause WHERE, et non comme une simple chaîne de texte, sous peine de filtre silencieusement inopérant. Enfin, mélanger des valeurs numériques et textuelles dans une même colonne du tableau d’origine peut perturber l’interprétation automatique de QUERY, qui se base sur le type de données détecté dans chaque colonne. 🧮

Progresser avec QUERY pour analyser ses tableaux Google Sheets

Maîtriser la fonction QUERY demande surtout de progresser par étapes : commencer par une formule simple avec SELECT, ajouter ensuite une condition avec WHERE, puis introduire ORDER BY pour trier le résultat, avant de s’attaquer à GROUP BY pour construire de véritables rapports synthétiques. Cette progression évite de se confronter directement à une syntaxe complexe sans en comprendre la logique sous-jacente.

Une fois ces bases acquises, QUERY devient un outil durable pour transformer un simple tableau Google Sheets en véritable source de données interrogeable à la demande, que ce soit pour un suivi de ventes, un reporting régulier ou une analyse ponctuelle, sans dépendre systématiquement d’un tableau croisé dynamique ou d’un export externe.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *