Fonction QUERY Google Sheets : tutoriel complet 2026

Interroger vos données comme une base, en une seule formule : sélectionner, filtrer, regrouper et trier.

Par Samy· 21 juin 2026· 9 min de lecture·

Accéder à la syntaxe de QUERY

Formation Google Sheets

Des tableaux partagés plus fiables.
Plus d’autonomie au quotidien.

Autonomie : apprenez à votre rythme sur la plateforme. Visio individuelle ou présentiel avec les autres formules.

Après Google Sheets, élargissez vos compétences.

Tarifs d’entrée · formules Autonomie · prix par personne, nets de taxes.

Voir toutes nos formations

L'essentiel

La fonction QUERY de Google Sheets exécute une requête pseudo-SQL dans une cellule, via la syntaxe =QUERY(plage; "SELECT…"; en-têtes). Avec une seule formule, vous sélectionnez des colonnes, filtrez des milliers de lignes, agrégez (SUM, AVG, COUNT), groupez, triez, pivotez et limitez les résultats, le tout mis à jour en temps réel quand les données sources changent. Ce tutoriel couvre la syntaxe complète (SELECT, WHERE, GROUP BY, ORDER BY, PIVOT, LIMIT, LABEL, FORMAT), plus de 20 exemples progressifs, la combinaison avec IMPORTRANGE, un cas pratique de tableau de bord et les erreurs à éviter.

Si vous utilisez déjà Google Sheets pour suivre des ventes, un budget ou un planning, vous avez sans doute multiplié les filtres, les tris et les tableaux croisés dynamiques. La fonction QUERY remplace tout cela par une seule formule, en apportant la logique du langage SQL directement dans une cellule. Ce tutoriel vous explique sa syntaxe, ses clauses, plus de 20 exemples concrets, sa combinaison avec IMPORTRANGE et les pièges à éviter pour en faire votre outil d'analyse de référence.

Pourquoi la fonction QUERY change tout

La fonction QUERY apporte la logique du SQL sans installation, sans base de données et sans script. En une seule formule, vous pouvez :

  • filtrer plusieurs dizaines de milliers de lignes par date, par pays et par montant ;
  • grouper par catégorie et calculer une somme ou une moyenne ;
  • trier par chiffre d'affaires décroissant ;
  • pivoter, c'est-à-dire transformer des valeurs de colonne en colonnes ;
  • limiter le résultat au top 10.

Tout cela reste réactif : si les données sources changent, la formule QUERY se met à jour automatiquement. Excel n'a pas de langage de requête dans une cellule : Power Query impose une étape de chargement préalable, et les fonctions FILTRE, TRIER, GROUPER.PAR et PIVOTER.PAR de Microsoft 365 s'en approchent sans le remplacer.

La syntaxe de base de QUERY

Schéma : les trois arguments de QUERY (plage, requête SELECT et lignes d'en-tête)

La fonction prend trois arguments, dont le dernier est facultatif :

=QUERY(data, "REQUÊTE", [headers])
  • data : la plage source, par exemple A1:D1000 ou A:D ;
  • REQUÊTE : une chaîne entre guillemets doubles contenant les clauses pseudo-SQL ;
  • headers : le nombre de lignes d'en-tête, généralement 1.

Voici l'exemple le plus simple, qui sélectionne deux colonnes et filtre sur une troisième :

=QUERY(A:D, "SELECT A, B WHERE C > 100", 1)

Les exemples de ce tutoriel séparent les arguments par des virgules, comme l'aide Google en anglais. Si votre feuille est réglée sur la France (Fichier > Paramètres), la liste des fonctions de l'aide Google en français écrit QUERY(données; requête; en_têtes) : remplacez alors les virgules entre les arguments par des points-virgules, par exemple =QUERY(A:D; "SELECT A, B WHERE C > 100"; 1). Les virgules à l'intérieur de la requête, entre les guillemets, ne changent pas.

Référencer les colonnes : deux modes à connaître

Avant d'écrire une requête, il faut comprendre comment QUERY désigne les colonnes. Deux modes existent, et les confondre est la première source d'erreur.

Mode 1 : les lettres de colonnes

Quand vous passez une plage directe comme A:D, vous référez les colonnes par leurs lettres : A, B, C, D. C'est le mode le plus courant.

=QUERY(Ventes!A:D, "SELECT A, SUM(D) GROUP BY A")

Mode 2 : les numéros Col1, Col2…

Quand vous passez une plage virtuelle, c'est-à-dire le résultat d'une autre formule comme IMPORTRANGE, vous devez utiliser Col1, Col2, etc.

=QUERY(IMPORTRANGE("url","Data!A:D"), "SELECT Col1, SUM(Col4) GROUP BY Col1")

Les clauses essentielles de QUERY

Une requête QUERY s'écrit en empilant des clauses dans un ordre précis. Voici celles dont vous vous servirez chaque jour.

SELECT : choisir les colonnes

La clause SELECT indique les colonnes à afficher. Les fonctions d'agrégation disponibles sont SUM, AVG, COUNT, MIN et MAX.

SELECT *            (toutes les colonnes)
SELECT A, B, C      (trois colonnes)
SELECT A, SUM(B)    (une colonne et une agrégation)

WHERE : filtrer les lignes

La clause WHERE applique des filtres conditionnels, comme en SQL. Le texte se met entre guillemets simples, car les guillemets doubles servent à délimiter la requête entière.

WHERE A > 100                     (numérique)
WHERE B = 'France'                (texte, guillemets simples)
WHERE C IS NOT NULL               (non vide)
WHERE D LIKE '%client%'           (recherche partielle)
WHERE A > 100 AND B = 'France'    (combinaison ET)
WHERE A > 100 OR B = 'France'     (combinaison OU)

Pour les dates, le format ISO est obligatoire, et attention au mois indexé à partir de zéro, où janvier vaut 0 et décembre 11.

WHERE A > date '2026-01-01'       (format ISO obligatoire)
WHERE month(A) = 4               (mai, car les mois vont de 0 à 11)
WHERE year(A) = 2026

GROUP BY : agréger

La clause GROUP BY regroupe les lignes par valeur, indispensable dès que vous utilisez une agrégation sur d'autres colonnes simples.

SELECT A, SUM(B), COUNT(C) GROUP BY A
SELECT A, B, SUM(C) GROUP BY A, B

ORDER BY, LIMIT et OFFSET : trier et paginer

Ces clauses ordonnent et bornent le résultat. Elles se placent après GROUP BY.

ORDER BY A DESC          (tri décroissant)
ORDER BY SUM(C) DESC     (tri sur une agrégation)
LIMIT 10                 (10 premières lignes)
LIMIT 10 OFFSET 20       (lignes 21 à 30, pour la pagination)

PIVOT, LABEL et FORMAT : pivoter et habiller

La clause PIVOT transforme les valeurs uniques d'une colonne en colonnes, comme un tableau croisé dynamique en ligne. LABEL renomme les en-têtes et FORMAT met les nombres en forme.

SELECT A, SUM(D) GROUP BY A PIVOT B
LABEL A 'Mois', SUM(B) 'Total CA'
FORMAT SUM(B) '#,##0.00 €'

Plus de 20 exemples QUERY prêts à copier

Voici une progression d'exemples, du plus simple au plus avancé, applicable à une plage Ventes!A:D contenant des colonnes Date, Pays, Catégorie et Chiffre d'affaires.

ObjectifFormule
Sélection simple=QUERY(Ventes!A:D, "SELECT *", 1)
Filtre numérique=QUERY(Ventes!A:D, "SELECT * WHERE D > 1000", 1)
Filtre texte=QUERY(Ventes!A:D, "SELECT * WHERE B = 'France'", 1)
Filtres combinés=QUERY(Ventes!A:D, "SELECT A, B, D WHERE B = 'France' AND D > 1000", 1)
Tri décroissant=QUERY(Ventes!A:D, "SELECT * ORDER BY D DESC", 1)
Top 10=QUERY(Ventes!A:D, "SELECT * ORDER BY D DESC LIMIT 10", 1)
Comptage conditionnel=QUERY(Ventes!A:D, "SELECT COUNT(A) WHERE B = 'France'", 1)
Somme par groupe=QUERY(Ventes!A:D, "SELECT B, SUM(D) GROUP BY B", 1)
Plusieurs agrégations=QUERY(Ventes!A:D, "SELECT B, SUM(D), AVG(D), COUNT(A) GROUP BY B", 1)
Top 5 par somme=QUERY(Ventes!A:D, "SELECT B, SUM(D) GROUP BY B ORDER BY SUM(D) DESC LIMIT 5", 1)
Recherche partielle=QUERY(Ventes!A:D, "SELECT * WHERE LOWER(C) LIKE '%saas%'", 1)
Filtre par date=QUERY(Ventes!A:D, "SELECT * WHERE A > date '2026-01-01'", 1)
Filtre par mois et année=QUERY(Ventes!A:D, "SELECT * WHERE month(A) = 4 AND year(A) = 2026", 1)
Pivot=QUERY(Ventes!A:D, "SELECT A, SUM(D) GROUP BY A PIVOT B", 1)
Étiquettes et format=QUERY(Ventes!A:D, "SELECT B, SUM(D) GROUP BY B LABEL SUM(D) 'Total CA' FORMAT SUM(D) '#,##0 €'", 1)
Filtre dynamique par cellule=QUERY(Ventes!A:D, "SELECT * WHERE B = '"&E1&"'", 1)
Pagination=QUERY(Ventes!A:D, "SELECT * LIMIT 50 OFFSET 100", 1)
Données brutes sans en-tête=QUERY(Ventes!A:D, "SELECT *", 0)
Tri composite=QUERY(Ventes!A:D, "SELECT * ORDER BY B ASC, D DESC", 1)
Exclure les valeurs vides=QUERY(Ventes!A:D, "SELECT * WHERE A IS NOT NULL", 1)

L'exemple du filtre dynamique mérite une attention particulière : en concaténant le contenu d'une cellule (ici E1) avec l'opérateur &, vous pilotez la requête depuis un menu déroulant, ce qui ouvre la voie aux tableaux de bord interactifs.

Vous voulez automatiser vos analyses Sheets ?

Notre formation vous apprend la fonction QUERY, IMPORTRANGE, les filtres et les tableaux de bord partagés, à votre rythme sur la plateforme, avec de la visio individuelle ou du présentiel selon la formule choisie.

Voir les formules et dates →

Combiner QUERY et IMPORTRANGE

L'une des combinaisons les plus puissantes consiste à récupérer les données d'un autre classeur avec IMPORTRANGE, puis à les filtrer et les agréger avec QUERY, le tout en une seule formule.

=QUERY(
  IMPORTRANGE("https://docs.google.com/.../...","Data!A:D"),
  "SELECT Col1, Col2, SUM(Col4) WHERE Col3 = 'France' GROUP BY Col1, Col2 ORDER BY SUM(Col4) DESC",
  1
)

Le point de vigilance est toujours le même : avec IMPORTRANGE, vous devez référencer les colonnes en Col1, Col2, etc., et non par leurs lettres. Pensez aussi à autoriser l'accès au classeur source lors du premier appel. Pour aller plus loin sur ce point, consultez notre guide de la fonction IMPORTRANGE.

Cas pratique : un tableau de bord des ventes

Imaginons un fichier Ventes_2026 de 8 000 lignes, avec les colonnes Date, Pays, Catégorie et Chiffre d'affaires. Quelques formules QUERY suffisent à construire un tableau de bord entièrement dynamique.

Chiffre d'affaires du mois en cours

=QUERY(A:D, "SELECT SUM(D) WHERE month(A) = "&MONTH(TODAY())-1&" AND year(A) = "&YEAR(TODAY()), 1)

Top 5 des pays par chiffre d'affaires

=QUERY(A:D, "SELECT B, SUM(D) WHERE year(A) = "&YEAR(TODAY())&" GROUP BY B ORDER BY SUM(D) DESC LIMIT 5 LABEL SUM(D) 'CA' FORMAT SUM(D) '#,##0 €'", 1)

Catégorie la plus rentable

=QUERY(A:D, "SELECT C, SUM(D) GROUP BY C ORDER BY SUM(D) DESC LIMIT 1 LABEL SUM(D) 'CA total'", 1)

Ce tableau de bord est totalement réactif : il suffit d'ajouter une vente dans la feuille source pour que tous les indicateurs se recalculent. Là où Excel demanderait un tableau croisé dynamique, des filtres et parfois une macro, QUERY fait tout en quelques formules.

Les erreurs courantes et comment les corriger

QUERY est puissant, mais sa syntaxe pseudo-SQL piège régulièrement les débutants. Voici les cinq erreurs les plus fréquentes.

  • Confondre guillemets simples et doubles : le texte d'un filtre se met entre guillemets simples ('France'), les guillemets doubles délimitant la requête entière.
  • Oublier l'argument des en-têtes : sans le 1 final, QUERY peut interpréter votre première ligne comme une donnée et fausser les agrégations. Précisez toujours , 1 quand vos données ont des en-têtes.
  • Mauvais format de date : WHERE A = "01/01/2026" ne fonctionne pas. Le format obligatoire est WHERE A = date '2026-01-01'.
  • Mois indexé à partir de zéro : WHERE month(A) = 5 renvoie juin, pas mai. Soustrayez toujours 1, soit WHERE month(A) = 4 pour mai.
  • Types mixtes dans une colonne : si une colonne mélange nombres et texte, QUERY retient le type le plus fréquent de la colonne et traite les autres valeurs comme vides : des lignes manquent alors dans le résultat. Convertissez la colonne dans un seul type avant la requête.

Une fois ces réflexes acquis, la fonction QUERY remplace à elle seule un tableau croisé dynamique, des filtres, un tri et un top N. C'est précisément ce type de compétences que vous travaillez en profondeur dans notre formation Google Sheets certifiante, qui vous rend autonome sur le tableur, des fondamentaux jusqu'aux analyses avancées.

Cette formation prépare la certification ICDL Tableur, inscrite au Répertoire Spécifique, dont le passage est inclus dans les quatre formules. Vous la suivez à votre rythme sur la plateforme, avec de la visio individuelle ou du présentiel selon la formule choisie. Paiement en plusieurs fois possible, sous réserve d'éligibilité et d'acceptation du prestataire (3 fois sans frais avec Klarna, 4 fois sans frais avec PayPal). Pour compléter ce tutoriel, découvrez aussi notre guide de la fonction FILTER, plus simple pour les extractions basiques.

Questions fréquentes

La syntaxe est =QUERY(plage_source; "REQUÊTE"; nombre_de_lignes_d_en_tête). Exemple : =QUERY(A:D; "SELECT A, SUM(D) GROUP BY A"; 1). La requête s'écrit en pseudo-SQL : SELECT pour les colonnes, WHERE pour les filtres, GROUP BY pour l'agrégation, ORDER BY pour le tri, LIMIT pour la limitation et PIVOT pour le tableau croisé. Avec une plage directe, les colonnes se désignent par leur lettre (A, B, C).
Vous imbriquez IMPORTRANGE comme source de QUERY. Point clé : avec IMPORTRANGE, les colonnes se désignent en Col1, Col2, etc., et non en A, B, C. Exemple : =QUERY(IMPORTRANGE("url";"Data!A:D"); "SELECT Col1, SUM(Col4) WHERE Col3 = 'France' GROUP BY Col1"; 1). Pensez à autoriser l'IMPORTRANGE lors du premier appel.
Les causes les plus fréquentes : un mauvais nom de colonne (lettre contre Col1 selon le type de plage), des types mixtes dans une même colonne (nombres et texte), des guillemets mal échappés dans la requête, une plage vide au moment de l'évaluation, ou une fonction d'agrégation employée sans GROUP BY alors que d'autres colonnes simples sont sélectionnées.
FILTER réalise une extraction conditionnelle simple, par exemple =FILTER(A:D; B:B="France"). QUERY combine extraction, agrégation, tri et pivot dans une seule formule, donc plus puissante pour les analyses complexes. Règle pratique : FILTER pour une extraction basique, QUERY dès qu'il faut un GROUP BY, un ORDER BY ou un top N.
Utilisez ORDER BY pour trier (ASC ou DESC) et WHERE avec LIKE pour filtrer du texte avec un joker, par exemple WHERE B LIKE '%Paris%'. L'opérateur MATCHES accepte les expressions régulières. Exemple : =QUERY(A:C; "SELECT A, B WHERE B LIKE '%Paris%' ORDER BY A DESC"; 1).
Non, QUERY est propre à Google Sheets. Dans Excel, vous obtenez un résultat équivalent avec Power Query, avec FILTRE combinée à TRIER, avec GROUPER.PAR et PIVOTER.PAR dans Microsoft 365, ou avec un tableau croisé dynamique. C'est l'une des différences notables entre les deux tableurs.

À lire ensuite

La fonction FILTER : extraire des lignes par critères IMPORTRANGE : relier plusieurs classeurs Le tableau croisé dynamique sur Google Sheets Créer et personnaliser un graphique Google Sheets
Voir tous nos tutoriels Google Sheets →
S

Samy, formateur certifié

Formateur en bureautique (Excel, Word, PowerPoint, Pack Office, Photoshop), en présentiel à Marseille et en classe virtuelle dans toute la France.

→ En savoir plus sur France Formation Groupe

Cet article vous a été utile ? Partagez-le

FORMATION GOOGLE SHEETS

Et si une seule formule remplaçait vos manipulations ?

Gagnez en autonomie sur Google Sheets.

Construisez des tableaux partagés, des formules aux tableaux de bord. Apprenez à votre rythme, en visio individuelle ou en présentiel, selon la formule choisie.

PAIEMENT PAR CARTE
CBVisaMastercard
OU EN PLUSIEURS FOIS
Klarna3× sans fraisPayPal4× sans frais

Paiement en plusieurs fois sous réserve d’éligibilité et d’acceptation du prestataire.

ET POUR VOS AUTRES PROJETS

Une compétence en appelle une autre.

Bureautique, outils Google, création et intelligence artificielle : choisissez votre prochaine compétence.

VOTRE PROJET, VOTRE RYTHME

Une question sur
nos formations ?

Programme, niveau, formule : échangeons pour trouver la formation qui vous correspond.

Parler de mon projet
POUR VOTRE ENTREPRISE

Faites grandir les
compétences de votre équipe.

Construisons un parcours adapté à vos collaborateurs, à vos objectifs et à votre organisation.

Découvrir les formations en entreprise