Rentrée 2026 Préparez votre rentrée : réservez dès maintenant votre session de septembre, octobre ou novembre. Réservez votre session de septembre à novembre. Voir les sessions de rentrée →
Excel Word PowerPoint Photoshop Webmarketing WordPress CAO 3D PAO Pack Office Google Sheets Google Workspace
À jour 2026
Formation Google Sheets Prochaine session à distance : lundi 22 juin 2026 · certifiante
Google Sheets

Fonction QUERY Google Sheets : tutoriel complet 2026

Par Samy· 21 juin 2026· 9 min de lecture

Fonction QUERY Google Sheets : tutoriel complet 2026
Éligible CPF Certifié Qualiopi Certification ICDL ★★★★★ 4.8/5 sur Google
Fonction QUERY Google Sheets : tutoriel complet 2026

L'essentiel

La fonction QUERY de Google Sheets exécute des requêtes pseudo-SQL directement dans une cellule. 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 d'équivalent natif en formule de cellule, Power Query existant mais imposant une étape de chargement préalable.

La syntaxe de base de QUERY

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)

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 QUERY, FILTER, IMPORTRANGE et les tableaux de bord dynamiques, à distance ou en présentiel. Démarrage immédiat, paiement en 3× sans frais.

Réserver ma place — 22 juin →

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 peut ignorer des lignes ou renvoyer une erreur. Nettoyez les données ou ajoutez WHERE A IS NUMBER.

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 débouche sur une certification ICDL (Tableur) reconnue et reste éligible au CPF. Vous pouvez la suivre à distance ou en présentiel, avec un démarrage immédiat et un paiement en 3 fois sans frais. Pour compléter ce tutoriel, découvrez aussi notre guide de la fonction FILTER, plus simple pour les extractions basiques.

Questions fréquentes sur la fonction QUERY

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 utilise des clauses 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é. Les colonnes se référencent par lettres (A, B, C) lorsque vous passez une plage directe.

Vous imbriquez IMPORTRANGE comme source de QUERY. Important : avec IMPORTRANGE, les colonnes se référencent 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 au premier appel.

Les causes les plus fréquentes sont : 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 utilisée sans GROUP BY alors que d'autres colonnes simples sont sélectionnées.

FILTER réalise une extraction conditionnelle simple d'une plage, par exemple =FILTER(A:D, B:B="France"). Elle est plus rapide à écrire pour des filtres basiques. QUERY combine extraction, agrégation, tri et pivot dans une seule formule, et reste donc plus puissante pour les analyses complexes. La règle : FILTER pour une extraction simple, QUERY dès qu'il faut un GROUP BY, un ORDER BY ou un top N.

À lire ensuite

Fonction FILTER Google Sheets : guide complet Fonction FILTER : extraire des lignes selon vos critères Fonction IMPORTRANGE Google Sheets : guide complet Fonction IMPORTRANGE : fusionner plusieurs classeurs Tableau croisé dynamique Google Sheets : guide complet Tableau croisé dynamique : synthétiser vos données
Voir tous nos tutoriels Google Sheets →
S

Samy, formateur certifié

6 ans d'expérience sur les formations bureautiques (Excel, Word, PowerPoint, Pack Office, Photoshop). Centaines de stagiaires accompagnés 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 certifiante

Vous voulez maîtriser Google Sheets de A à Z ?

Accompagnement personnalisé, exercices corrigés et certification reconnue par les employeurs. À distance ou en présentiel.

dès 299€3× sans frais 4,8/5 Google Certifié Qualiopi
Réserver ma place — 22 juin → Être rappelé
Voir les sessions
Formation Google Sheets
dès 299€
Réserver →

Une question sur nos formations ?

Notre équipe vous répond et vous oriente vers la bonne solution.

Nous contacter

Vous formez une équipe ?

Devis sous 24h · financement OPCO géré de A à Z · tarifs dégressifs dès 3 collaborateurs.

Demander un devis