QUERY en Google Sheets: GROUP BY, PIVOT y ejemplos

Función QUERY de Google Sheets agrupando y pivotando una tabla

La función QUERY de Google Sheets permite seleccionar, filtrar, agrupar, ordenar y pivotar un rango con un lenguaje parecido a SQL. Su sintaxis combina el rango de datos, una consulta entre comillas y el número de filas de encabezado:

=QUERY(A1:E100; "select A, B where E > 0"; 1)

Según la configuración regional, los argumentos pueden separarse con punto y coma o coma. Dentro del texto de la consulta se utiliza la sintaxis del lenguaje de Google Visualization.

Preparar un rango consistente

Imagina columnas Fecha, Región, Producto, Unidades e Importe. Cada columna debe mantener un tipo dominante. Si una columna mezcla texto y números, QUERY decide el tipo por mayoría y puede tratar los valores minoritarios como nulos.

El tercer argumento indica cuántas filas de encabezado hay. Especificarlo evita que Sheets lo adivine mal. No incluyas subtotales dentro del rango fuente.

SELECT y WHERE

Selecciona columnas y filtra filas:

=QUERY(A1:E100; "select A, B, E where E >= 1000"; 1)

Las letras hacen referencia a la posición dentro del rango. Si el rango empieza en C, su primera columna se consulta como C cuando usas referencias de hoja directas; con matrices creadas por llaves suele aparecer la notación Col1, Col2.

Para texto, encierra el valor entre comillas simples dentro de la consulta:

=QUERY(A1:E100; "select * where B = 'Norte'"; 1)

GROUP BY y agregaciones

Para resumir importe por región:

=QUERY(A1:E100; "select B, sum(E) group by B"; 1)

Toda columna seleccionada que no esté agregada debe aparecer en GROUP BY. Puedes usar sum, avg, count, min y max según el tipo de dato.

Para región y producto:

=QUERY(A1:E100; "select B, C, sum(E) group by B, C"; 1)

ORDER BY y LIMIT

Ordena el resumen por la agregación y limita resultados:

=QUERY(A1:E100;
 "select C, sum(E) group by C order by sum(E) desc limit 10";
 1)

Este patrón crea un top 10 dinámico. Define cómo tratar empates si el resultado alimenta una decisión; LIMIT corta por posición, no conserva necesariamente todos los empatados.

PIVOT: convertir valores en columnas

PIVOT transforma los valores únicos de una columna en nuevas columnas. Para ver importes por región y producto:

=QUERY(A1:E100;
 "select B, sum(E) group by B pivot C";
 1)

El resultado se parece a una tabla dinámica y se actualiza con la fuente. Si Producto contiene muchas categorías, generará demasiadas columnas; filtra o agrupa antes.

LABEL y FORMAT

LABEL cambia encabezados del resultado:

=QUERY(A1:E100;
 "select B, sum(E) group by B label sum(E) 'Importe total'";
 1)

FORMAT controla la presentación de números y fechas según patrones compatibles. Aun así, suele ser más fácil aplicar formato de celda al rango de salida para mantener la consulta centrada en transformación.

Fechas en una consulta

El lenguaje espera literales con formato año-mes-día:

=QUERY(A1:E100;
 "select * where A >= date '2026-01-01'";
 1)

Si la fecha límite está en una celda, construye el texto con TEXTO para producir el formato requerido. Verifica que la columna contiene fechas reales, no cadenas visibles como fecha.

Consultas dinámicas con celdas

Puedes insertar un criterio seleccionado por el usuario:

=QUERY(A1:E100;
 "select B, sum(E) where C = '"&H2&"' group by B";
 1)

Si H2 procede de usuarios no confiables, valida sus opciones. La concatenación de comillas es una fuente común de errores. Para números no uses comillas simples; para fechas construye el literal date.

QUERY con IMPORTRANGE

Es posible consultar un rango importado, pero primero debes conceder acceso. La combinación puede recalcular lentamente y depender de un archivo externo. Limita columnas y filas, evita cadenas de muchas importaciones y documenta propietarios.

En matrices de IMPORTRANGE se suele consultar con Col1, Col2:

=QUERY(IMPORTRANGE(H1; "Datos!A:E");
 "select Col2, sum(Col5) group by Col2";
 1)

Errores frecuentes

NO_COLUMN suele indicar una letra o Col inexistente. AVG_SUM_ONLY_NUMERIC aparece cuando la columna no es numérica para la agregación. Un resultado vacío puede deberse a tipos mezclados, espacios o fechas guardadas como texto.

Si la fórmula produce error de análisis, revisa separadores regionales, comillas y saltos de línea. Construye primero una consulta mínima y añade cláusulas una a una.

Rendimiento y mantenimiento

Evita rangos de columnas completas si el archivo es grande. QUERY recalcula cuando cambia la fuente; muchas fórmulas sobre el mismo rango multiplican trabajo. Crea un resumen intermedio reutilizable o mueve el proceso a BigQuery cuando volumen y concurrencia excedan una hoja.

Guarda criterios en celdas identificadas, comenta la finalidad junto a la fórmula y prueba filas con valores nulos y tipos inesperados. QUERY es potente porque reúne varios pasos, pero una fórmula opaca no es una solución mantenible.

Empieza por SELECT y WHERE, añade GROUP BY cuando necesites agregación y usa PIVOT solo si la salida tabular ayuda al lector. La consulta final debe ser corta, verificable y coherente con el tipo de cada columna.

Continúa aprendiendo

Amplía este tema con IMPORTRANGE en Google Sheets, dashboard en Google Sheets, Google Apps Script.

Fuentes oficiales y primarias

Preguntas frecuentes

¿Cuál es la sintaxis de QUERY?
QUERY(datos; consulta; encabezados), usando coma o punto y coma como separador según la configuración regional.

¿Cómo agrupo datos con QUERY?
Selecciona las dimensiones y una agregación, y añade las dimensiones no agregadas a GROUP BY.

¿Para qué sirve PIVOT?
Convierte los valores únicos de una columna en columnas nuevas dentro del resultado resumido.

¿Por qué algunos valores aparecen como nulos?
Una columna con tipos mezclados adopta el tipo mayoritario y QUERY puede considerar nulos los valores minoritarios.

¿Puedo usar una fecha desde una celda?
Sí, construyendo un literal date en formato año-mes-día y verificando que el origen contiene fechas reales.

¿QUERY funciona con IMPORTRANGE?
Sí, normalmente con notación Col1, Col2, aunque debes autorizar el origen y vigilar rendimiento y dependencias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir