- La fonction QUERY vous permet de filtrer, trier et synthétiser des données sans modifier la plage d'origine.
- Les en-têtes et les types de données influencent le résultat, notamment lorsque des valeurs sont manquantes.
- Les tableaux combinés utilisent des identifiants positionnels, qui doivent être revus si la structure change.
- Il est conseillé de diagnostiquer les erreurs avant de les masquer, afin de ne pas confondre une formule incorrecte avec une requête sans correspondance.
La Fonction QUERY de Google Sheets permite seleccionar columnas, filtrar registros, ordenar resultados y calcular resúmenes mediante una fórmula. Resulta útil cuando necesitas generar un informe que dependa de los datos de otra tabla sin modificar el contenido original.
Su consulta utiliza el lenguaje de Google Visualization, con una sintaxis parecida a SQL. Para empezar no necesitas conocer todo ese lenguaje: puedes construir una consulta sencilla y añadir condiciones o agrupaciones a medida que las necesites.
Syntaxe de requête dans Google Sheets et premier exemple

La structure de la fonction comporte trois arguments :
=QUERY(datos; consulta; encabezados)
- données: la plage ou la matrice que vous souhaitez interroger.
- consultation: les instructions entre guillemets ou une référence à une cellule qui les contient.
- titres : Nombre de lignes initiales d'en-tête dans la plage. Indiquez 1 s'il y a une ligne d'en-tête et 0 sinon. Si vous omettez cette valeur ou si vous entrez -1, Google Sheets tentera de la deviner.
Dans les exemples suivants, nous utiliserons un tableau présentant cette structure :
| A: Date | B : Client | C : État | D : Montant | E: Chaîne |
|---|---|---|---|---|
| 01/10/2026 | Ann | Rempli | 100 | Web |
| 02/10/2026 | Luis | Boucle | 80 | Magasin |
| 03/10/2026 | Ann | Rempli | 50 | Magasin |
| 04/10/2026 | Martre | Rempli | 200 | Web |
| 05/10/2026 | Luis | Annulé | 40 | Web |
Les en-têtes se trouvent sur la ligne 1 et les cinq enregistrements occupent les lignes 2 à 6. Pour afficher le tableau entier, saisissez la formule dans une zone vide, par exemple G1 :
=QUERY(A1:E6;"select *";1)
Les exemples utilisent point-virgule entre les argumentsSi votre fichier utilise des virgules, ajustez ces séparateurs. Les virgules dans le texte de la requête, comme dans select B, DIls doivent être préservés.
Sélectionnez les colonnes, filtrez et triez les résultats

La clause sélectionner Cela vous permet de choisir les colonnes. Pour afficher uniquement le client et le montant :
=QUERY(A1:E6;"select B, D";1)
Avec où Vous pouvez limiter les enregistrements aux commandes terminées :
=QUERY(A1:E6;"select B, D where C = 'Completado'";1)
L'exemple renvoie les opérations d'Ana et de Marta. Ajout trier par Vous pouvez les trier par ordre décroissant de quantité :
=QUERY(A1:E6;"select B, D where C = 'Completado' order by D desc";1)
Vous pouvez également combiner les conditions :
=QUERY(A1:E6;"select B, D where C = 'Completado' and D >= 100 order by D desc";1)
Cette dernière requête renvoie Marta avec 200 et Ana avec 100. Les nombres sont comparés sans guillemets ; les valeurs textuelles sont écrites entre guillemets simples dans la requête.
Regroupez les montants avec GROUP BY et modifiez les en-têtes.
Pour obtenir le montant total par client, combinez grouper par avec somme():
=QUERY(A1:E6;"select B, sum(D) group by B label sum(D) 'Importe total'";1)
El resultado muestra 150 para Ana, 120 para Luis y 200 para Marta. En este caso se incluyen todos los estados porque no hemos añadido un filtro.
Si solo quieres sumar pedidos completados:
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B order by sum(D) desc label sum(D) 'Ventas completadas'";1)
Vous pouvez utiliser d'autres agrégations, telles que avg(), count(), min() y max()Lors du regroupement, les colonnes sélectionnées qui ne sont pas agrégées doivent faire partie de group by.
N'oubliez pas que count(D) compte les valeurs non nulles de DCe calcul ne permet pas d'additionner les montants. Choisissez une colonne appropriée si vous devez comptabiliser les transactions.
Utilisez PIVOT, LIMIT et OFFSET
La clause pivoter Transforme les valeurs d'un champ en colonnes. Par exemple, vous pouvez répartir les ventes réalisées par chaque client entre le Web et le magasin :
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B pivot E";1)
Pour n'obtenir que les trois montants les plus élevés, utilisez limite après avoir passé la commande :
=QUERY(A1:E6;"select B, D order by D desc limit 3";1)
Avec compenser Vous pouvez omettre des lignes du résultat. Cette requête ignore les deux premiers enregistrements du tri et renvoie les deux suivants :
=QUERY(A1:E6;"select B, D order by D desc limit 2 offset 2";1)
Les clauses doivent respecter leur ordre : select, where, group by, pivot, order by, limit, offset, label y format.
Filtrer les dates et travailler avec du texte
Si la colonne A contient des dates reconnues par Sheets, vous pouvez sélectionner les transactions d'octobre comme suit :
=QUERY(A1:E6;"select * where A >= date '2026-10-01' and A < date '2026-11-01'";1)
Le champ de date dans la requête utilise le format année-mois-jour, aunque las celdas muestren día/mes/año. Si el origen contiene texto que parece una fecha, tendrás que corregirlo antes.
Para trabajar con partes de las fechas existen year(), month() y day()Veuillez noter que La fonction month() commence à 0 pour janvier et se termine à 11 pour décembre.. Al agrupar varios años, utiliza también el año para no mezclar meses equivalentes.
En los filtros de texto puedes emplear contains, starts with, ends with o matchesLes comparaisons sont sensibles à la casse ; vous pouvez normaliser le texte avec lower() o upper().
Combinez les données de plusieurs feuilles en utilisant Col1 et Col2

Pour empiler les enregistrements de deux onglets d'un même fichier, vous pouvez créer un tableau à l'aide d'accolades. Supposons que les deux onglets comportent les mêmes cinq colonnes et une ligne d'en-têtes :
=QUERY({Ventas1!A1:E100;Ventas2!A2:E100};"select Col2, Col4 where Col2 is not null";1)
La primera referencia incluye los encabezados; la segunda empieza en la fila 2 para no repetirlos. Los rangos deben tener el mismo número de columnas y una estructura compatible.
En esta matriz, Col1 représente la première colonne et Col2 la deuxième. Son posiciones dentro del conjunto consultado, no nombres de campos. Si reorganizas el contenido de las columnas, revisa la consulta para que siga seleccionando la información correcta.
El punto y coma dentro de las llaves apila los rangos verticalmente. Esta operación no relaciona registros por un identificador ni equivale a realizar un JOIN entre tablas.
Erreurs de requête courantes et comment les trouver
- Valeurs manquantes : Une colonne contenant des types mixtes peut perdre les valeurs du type minoritaire, que la requête interprète comme nulles.
- Erreur lors de l'analyse de la requête : Vérifiez les guillemets droits, les identificateurs, les fonctions et l'ordre des clauses.
- Aucun nouvel enregistrement n'apparaît : Vérifiez qu'elles sont bien incluses dans la plage interrogée. Une référence jusqu'à la ligne 100 n'inclut pas la ligne 101.
- La matrice ne peut pas être étendue : Laissez vides les cellules où le résultat doit apparaître et vérifiez s'il y a des cellules fusionnées.
- Une ligne de données est interprétée comme un titre : Vérifiez l'argument d'en-tête.
Ne pas envelopper la formule dans SI.ERREUR ou SIERREUR mientras estés buscando el fallo: podrías ocultar un problema de sintaxis y confundirlo con la ausencia de coincidencias.
Cuando la consulta ya funcione, si quieres tratar específicamente un error #N/A, vous pouvez utiliser SI.ND:
=SI.ND(QUERY(A1:E6;"select B, D where C = 'Devuelto'";1);"Sin coincidencias")
Si le fichier conserve les noms de fonctions en anglais, utilisez IFNA. Esta función trata los errores de ese tipo; no demuestra por sí misma cuál ha sido su causa.
Para trabajar con seguridad, empieza con una selección sencilla y añade cada condición por separado. QUERY recalcula su resultado cuando cambian los datos de los que depende, pero Elle ne modifie pas l'origine et n'étend pas automatiquement une plage fermée..
Je suis un passionné de technologie qui a fait de ses intérêts de « geek » un métier. J'ai passé plus de 10 ans de ma vie à utiliser des technologies de pointe et à bricoler toutes sortes de programmes par pure curiosité. Aujourd'hui, je me spécialise dans l'informatique et les jeux vidéo. En effet, depuis plus de 5 ans, j'écris pour différents sites Web sur la technologie et les jeux vidéo, créant des articles qui cherchent à vous donner les informations dont vous avez besoin dans un langage compréhensible par tous.
Si vous avez des questions, mes connaissances s'étendent de tout ce qui concerne le système d'exploitation Windows ainsi qu'Android pour les téléphones mobiles. Et mon engagement est envers vous, je suis toujours prêt à consacrer quelques minutes et à vous aider à résoudre toutes les questions que vous pourriez avoir dans ce monde Internet.