La fonction QUERY est le véritable couteau suisse de Google Sheets. Elle remplace avantageusement les fonctions FILTER, SORT, UNIQUE et les tableaux croisés dynamiques en permettant d'interroger vos données avec une précision chirurgicale. Que vous souhaitiez extraire une liste de clients spécifiques ou générer un rapport financier, maîtriser sa syntaxe SQL-like transforme radicalement votre traitement de l'information. Une seule ligne de code suffit pour structurer, filtrer et calculer vos indicateurs clés.
Comprendre la syntaxe et les arguments de la fonction QUERY
Pour utiliser QUERY efficacement, il faut respecter une structure rigoureuse basée sur le Google Visualization API Query Language. La syntaxe s'écrit ainsi : =QUERY(données; requête; [en-têtes]).
L'argument données définit la plage de cellules à analyser, par exemple A1:E500. L'argument requête constitue le cœur de l'opération : vous y rédigez vos instructions entre guillemets. Enfin, l'argument optionnel en-têtes précise le nombre de lignes de titres. Si vous l'omettez, Google Sheets tente de le deviner, ce qui génère parfois des erreurs d'affichage.
Le rôle du langage SQL-like
La puissance de QUERY provient de son inspiration du langage SQL. Vous n'avez pas besoin d'être développeur, mais vous devez mémoriser quelques mots-clés. Les instructions sont toujours saisies sous forme de chaîne de caractères entre doubles guillemets. Par exemple, "SELECT A, B" indique à la fonction de n'afficher que les colonnes A et B de votre source.
La gestion des types de données : un point de vigilance
Une particularité de QUERY est sa sensibilité au type de données. Google Sheets analyse la majorité des entrées dans une colonne. Si elle contient 90 % de nombres et 10 % de texte, la fonction ignore les cellules textuelles, les traitant comme des valeurs nulles. Il est impératif de nettoyer vos données en amont pour garantir qu'un seul type d'information circule dans chaque canal de traitement de votre tableau.
Imaginez vos données comme un flux circulant dans des conduits distincts : si un élément étranger obstrue le passage, le résultat final est faussé. Cette logique de flux unidimensionnel permet à QUERY d'être rapide, même sur des milliers de lignes, mais elle exige une rigueur exemplaire dans la structuration de vos bases de données.
Les clauses indispensables pour filtrer et trier vos données
Une fois la structure assimilée, vous devez manipuler les clauses pour obtenir le résultat souhaité. L'ordre des mots-clés est immuable : placer un ORDER BY avant un WHERE provoque systématiquement une erreur de syntaxe.

| Clause | Fonction | Exemple de syntaxe |
|---|---|---|
| SELECT | Choisit les colonnes à afficher. | SELECT A, C, D |
| WHERE | Filtre les lignes selon des critères. | WHERE B > 100 |
| ORDER BY | Trie les résultats (ASC ou DESC). | ORDER BY C DESC |
| LIMIT | Restreint le nombre de résultats. | LIMIT 10 |
| LABEL | Renomme les en-têtes de colonnes. | LABEL A 'Nom Client' |
Maîtriser la clause WHERE pour des filtres complexes
La clause WHERE est la plus utile pour isoler des segments précis. Pour filtrer du texte, utilisez des guillemets simples à l'intérieur de la requête : "SELECT * WHERE A = 'Terminé'". Vous pouvez combiner plusieurs conditions avec les opérateurs AND et OR. Pour trouver les ventes supérieures à 500 € réalisées par "Jean", la requête devient : "SELECT * WHERE B > 500 AND C = 'Jean'".
Trier et limiter les résultats
Le tri est géré par ORDER BY. Par défaut, il est ascendant. Pour inverser l'ordre, ajoutez DESC après le nom de la colonne. La clause LIMIT est efficace pour créer des classements dynamiques. En combinant ORDER BY B DESC LIMIT 5, vous obtenez instantanément les 5 meilleures performances de votre liste.
Analyse avancée : Groupement, calculs et pivots
QUERY ne se contente pas de déplacer des colonnes ; elle effectue des agrégations complexes. Elle remplace avantageusement les tableaux croisés dynamiques classiques car elle reste dynamique et se met à jour instantanément dès qu'une donnée source change.
Utiliser les fonctions d'agrégation (SUM, AVG, COUNT)
Vous pouvez demander à QUERY de calculer des totaux ou des moyennes directement dans la requête. Si vous sélectionnez une colonne calculée, comme SELECT SUM(B), vous obtenez le total de la colonne B. Pour que cela soit utile, on l'associe généralement à la clause GROUP BY. Par exemple, "SELECT A, SUM(B) GROUP BY A" affiche le total des ventes de la colonne B pour chaque catégorie ou vendeur de la colonne A.
La puissance de la clause PIVOT
La clause PIVOT transforme les valeurs d'une colonne en en-têtes de colonnes. Si vous avez une liste de ventes avec des dates et des régions, vous pouvez utiliser PIVOT pour voir les mois en lignes et les régions en colonnes, avec les montants au centre. La syntaxe est : "SELECT SUM(C) GROUP BY A PIVOT B". Le résultat est un tableau de synthèse professionnel généré en une seule formule.
Résoudre les erreurs fréquentes de la fonction QUERY
Même les utilisateurs réguliers rencontrent parfois des messages d'erreur comme #VALUE! ou #N/A. Ces problèmes proviennent souvent d'un détail de syntaxe ou d'une incohérence de format.
L'erreur de mélange de données : Si une colonne contient à la fois des chiffres et du texte, QUERY peut perdre une partie des informations. Assurez-vous que vos colonnes sont homogènes.
Le problème des guillemets : La requête globale est entourée de doubles guillemets ("), tandis que les valeurs textuelles à l'intérieur doivent être entourées de guillemets simples (').
La référence aux colonnes : Si vos données proviennent d'une plage directe comme A1:C10, utilisez les lettres (A, B, C). Si vos données proviennent d'une autre fonction comme IMPORTRANGE, vous devez utiliser la notation Col1, Col2, Col3.
L'oubli de l'espace : Une erreur fréquente consiste à oublier un espace entre deux clauses, par exemple WHERE A='OK'ORDER BY B. Il faut toujours insérer un espace avant chaque mot-clé majeur.
En apprenant à diagnostiquer ces erreurs, vous gagnez un temps précieux. La fonction QUERY est un investissement qui se rentabilise dès les premières analyses de gros volumes de données, offrant une flexibilité qu'aucune autre formule Google Sheets ne peut égaler.