Retour au blog

Maîtriser la fonction QUERY dans Google Sheets

Découvrez SELECT, WHERE, GROUP BY, LABEL et PIVOT pour filtrer, trier et synthétiser des données avec QUERY — sans tableau croisé dynamique.

18 juil. 2026SheetFX

Maîtriser la fonction QUERY dans Google Sheets

18 juillet 2026

QUERY exécute un mini-langage proche du SQL directement dans une cellule. Une fois les clauses connues, elle remplace des piles de formules FILTER, SORT et SUMIF par une seule instruction lisible — et c'est l'une des rares fonctions de Sheets capable de filtrer, trier, regrouper et étiqueter un résultat en une seule fois.

La structure de base

=QUERY(données, requête, [en-têtes])
  • données — la plage à interroger.
  • requête — une chaîne écrite dans le langage Google Visualization API Query Language (un sous-ensemble de SQL).
  • [en-têtes] — nombre optionnel de lignes d'en-tête dans données ; QUERY s'en sert pour savoir quelle ligne ignorer et comment étiqueter les colonnes du résultat.

Les colonnes sont référencées par leur lettre relative à la plage, pas par leur nom d'en-tête — dans la chaîne de requête, la première colonne de données est toujours A, quelle que soit la colonne réelle de la feuille.

=QUERY(A1:D100, "SELECT A, C WHERE B = 'Active'", 1)

Ceci renvoie les colonnes A et C, uniquement pour les lignes où la colonne B vaut Active, en traitant la ligne 1 de la plage comme un en-tête.

SELECT et WHERE

SELECT choisit les colonnes ; WHERE filtre les lignes. Les deux acceptent plusieurs conditions :

=QUERY(A1:E200, "SELECT A, B, E WHERE D > 100 AND C = 'EU'", 1)

Les comparaisons de texte nécessitent des guillemets simples ; pas les nombres. WHERE prend aussi en charge CONTAINS, STARTS WITH, IS NULL, et la correspondance de motifs avec MATCHES (regex) :

=QUERY(A1:B200, "SELECT A WHERE B CONTAINS 'remboursement'", 1)

ORDER BY et LIMIT

Trier et limiter les résultats sans toucher aux données source :

=QUERY(A1:C500, "SELECT A, B, C ORDER BY C DESC LIMIT 10", 1)

C'est un rapport top 10 — trié, réduit, et séparé des données brutes — en une seule formule, sans colonne intermédiaire.

GROUP BY et agrégats

QUERY peut résumer des données, ce qui commence à remplacer les tableaux croisés dynamiques pour les cas simples. Toute colonne dans SELECT qui n'est pas enveloppée dans une fonction d'agrégation doit apparaître dans GROUP BY :

=QUERY(A1:C500, "SELECT A, SUM(C) WHERE B = 'Ventes' GROUP BY A ORDER BY SUM(C) DESC", 1)

Ceci regroupe par colonne A, additionne la colonne C par groupe, se limite aux lignes où B vaut Ventes, et trie les groupes par total décroissant. COUNT, AVG, MIN et MAX fonctionnent de la même façon.

LABEL : renommer les colonnes du résultat

Les colonnes agrégées reviennent avec des en-têtes par défaut peu lisibles comme sum C. LABEL corrige ça :

=QUERY(A1:C500, "SELECT A, SUM(C) GROUP BY A LABEL SUM(C) 'Total des ventes'", 1)

PIVOT : transformer des valeurs de ligne en colonnes

PIVOT remodèle les données comme le ferait un tableau croisé dynamique — une seule clause, sans glisser de champs dans des zones :

=QUERY(A1:C500, "SELECT A, SUM(C) GROUP BY A PIVOT B", 1)

Si A est le nom du vendeur, B le mois et C le chiffre d'affaires, ceci produit une ligne par vendeur avec une colonne par mois, chaque cellule contenant le total du mois correspondant.

Référencer une autre feuille ou des valeurs de cellule

données peut pointer vers une autre feuille ou un autre classeur entier (combiné avec IMPORTRANGE), et les conditions de la requête peuvent venir d'une cellule plutôt que d'être codées en dur, via une concaténation de chaînes :

=QUERY(Feuille2!A1:D, "SELECT A, B WHERE C = '"&E1&"'", 1)

Cela rend la requête dynamique — changez la valeur en E1 et le filtre se met à jour sans modifier la formule.

Quand utiliser QUERY

  • Vous avez besoin de filtrage, de tri et d'agrégation en même temps, pas d'une seule de ces opérations.
  • Vous voulez un tableau de synthèse dynamique qui se met à jour automatiquement quand les données source évoluent — contrairement à l'instantané statique d'un tableau croisé dynamique dans certaines configurations, QUERY se recalcule comme n'importe quelle formule.
  • Vous récupérez des données via IMPORTRANGE ou une autre feuille et voulez les façonner à l'entrée, plutôt que tout importer puis filtrer après coup.

Pour un simple filtre ou un simple tri, FILTER ou SORT seuls sont plus lisibles. QUERY justifie sa complexité quand plusieurs de ces opérations doivent se combiner.

Fonctions associées

Newsletter

Recevez des astuces Sheets chaque semaine dans votre boîte mail.

Des mises à jour courtes et pratiques sur Google Sheets et Apps Script — sans bruit, juste des formules qui fonctionnent.