Coupler.io Blog

Función Query de Google Sheets: Todo lo que necesitas saber en un solo artículo

Probablemente hayas oído hablar de SQL, un lenguaje de consulta estructurado para procesar información en bases de datos relacionales, donde los datos se almacenan en forma tabular. En las hojas de cálculo, la información también se almacena en forma tabular, por lo que sería lógico poder consultar los datos de una forma similar a SQL.

Google Sheets ofrece esta opción con la ayuda de la función QUERY. Es muy similar a SQL y combina las capacidades de muchas otras funciones, como FILTRO, SUMA, VLOOKUP, etc. Por lo tanto, si ya tienes conocimientos de SQL, te resultará mucho más fácil dominar la función QUERY de Google Sheets. Si no lo tienes, no te preocupes, hemos puesto mucho esfuerzo en este artículo para convertirlo en el tutorial definitivo para principiantes que cubre la mayoría de las preguntas relacionadas con Google Sheets Query que puedas tener.

¿Qué es la función query en Google Sheets?

¿Qué es una consulta en Google Sheets? Es una función que toma los datos basándose en criterios y, si es necesario, modifica el formato, realiza cálculos adicionales, cambia el orden de las columnas, etc. Como resultado, tu fuente de datos permanece inalterada y tu hoja de trabajo tiene la selección de columnas y filas que necesitas para completar la tarea.

¿Cómo se utiliza la query en Google Sheets?

La función de consulta de Google Sheets permite a los usuarios realizar diversas manipulaciones de datos. Por ejemplo, resulta muy útil cuando es necesario preparar los datos en un formato especial para poder utilizarlos en la creación de determinados tipos de visualizaciones. Tu fuente de datos puede incluir demasiada información o ser inadecuada para el formato específico del gráfico o el orden de las columnas.

Google Sheets Query utiliza el lenguaje de consulta del API de Google para recuperar y manipular datos del API de Google Sheets. Por ejemplo, quieres recuperar todas las filas de una hoja en las que el valor de la columna A sea mayor que 10. En este caso, la mecánica de la función Query en Google Sheets será la siguiente:

Sintaxis de la fórmula de query en Google Sheets

Un pequeño spoiler al principio del artículo: explicaré cada cadena de consulta por separado y señalaré esta hoja de cálculo de Google Sheets para mostrar cómo funciona realmente.

Empecemos nuestro viaje viendo la sintaxis de la función de consulta de Google Sheets.

= QUERY(datos, consulta, [cabeceras])

donde

=query('data from Airtable'!A:L, "select *")

También puedes hacer referencia a una celda con la consulta escrita en el lenguaje de consulta de Google.

¿Qué son los literales en la función de query en Google Sheets?

Los literales son los distintos tipos de valores que se introducen en una hoja de cálculo. En el lenguaje de consulta de la API de Google existen los siguientes tipos de literales:

Nota: cada columna sólo puede tener un tipo de literal: valores de cadena o numéricos (que contienen números y fecha/hora). Si una columna determinada incluye más de un tipo de literal, Google Sheets elegirá el tipo de datos que se utilice con más frecuencia para esta columna para ejecutar la función de consulta. 

Cómo importar y query datos sin fórmulas

Si eres nuevo en las consultas de datos o te resulta difícil seguir la pista a las distintas sintaxis de las fórmulas de Google Sheets, Coupler.io te ofrece una solución más sencilla e intuitiva.

Puedes consultar datos de diferentes hojas de cálculo y aplicaciones en tiempo real utilizando Coupler.io sin fórmulas. Esto ayuda a ahorrar tiempo, evitar posibles errores y disponer de datos actualizados.

Pruébalo gratis: selecciona el destino de origen en el siguiente formulario y haz clic en Continuar. Puedes registrarte con tu cuenta de Google sin necesidad de facilitar ningún dato de pago.

A continuación, deberás conectar tu fuente de datos y especificar los datos que deseas importar. Después de esto, puedes consultar y transformar los datos utilizando las siguientes opciones.

A continuación, se muestra cómo se ve este paso en el ejemplo de uso de Airtable a la integración de Google Sheets.

Ahora, guarda tus datos transformados en Google Sheets. Configuras un programa de actualización automática de datos para transferir los datos de Airtable a Google Sheets cada 15 minutos.

De este modo, siempre dispondrás de datos de Airtable consultados en tiempo real en Google Sheets.

Cláusulas de query en Google Sheets para diseñar consultas de datos

En SQL, una cláusula es un componente de una sentencia que especifica una acción concreta.

El lenguaje de consulta de la API de Google incluye 9 cláusulas; cada una de ellas tiene una finalidad única. Son opcionales, lo que significa que no es necesario incluirlas todas en una consulta.

Una cadena de consulta puede contener varias cláusulas separadas por espacios que deben escribirse en este orden: 1) SELECT, 2) WHERE, 3) GROUP BY, 4) PIVOT, 5) ORDER BY, 6) LIMIT, 7) OFFSET, 8) LABEL, 9) FORMAT.

Sigue leyendo para aprender más sobre estas cláusulas y ver los ejemplos que las acompañan. Pero primero, vamos a obtener algunos datos de ejemplo para ayudarte a dominar tus habilidades con las fórmulas de Query. Extraeremos un conjunto de datos de una base de datos de Airtable a Google Sheets utilizando una herramienta ETL de Coupler.io.

Ahora, estamos listos para seguir adelante y explorar la función Consulta con algunos ejemplos de la vida real.

#1: Google Sheets Query SELECT

La cláusula SELECT permite definir las columnas que deseas obtener y el orden en que deseass organizarlas en la nueva hoja de cálculo. Si no se especifica el orden, los datos se devolverán “tal cual” en una hoja de cálculo de origen.

Se pueden utilizar identificadores de columna (las letras situadas en la parte superior de cada columna de una hoja de cálculo), por ejemplo, SELECT A, B, o hacer referencia a columnas como Col1, Col2 y así sucesivamente en la secuencia numérica. También se pueden referenciar los resultados de operadores aritméticos, funciones escalares o de agregación como elementos a ordenar en esta cláusula.

Nota: Si planeas incrustar Query en fórmulas más complejas, recomendamos referenciar las columnas como Col1, Col2 y así sucesivamente en la secuencia numérica. Si eliges esta opción, el argumento de datos de la sintaxis general de Query deberá ir entre llaves.

= QUERY({datos}, consulta, [cabeceras])

Ejemplo de query SELECT all en Google Sheets

En nuestro caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select *")

Nota: El parámetro cabeceras permite especificar el número de filas de cabecera que se devolverán. Si omites el elemento de encabezado, los datos devueltos incluirán la fila de encabezado; para eliminar los encabezados, escribe “0” en la fórmula de consulta de la siguiente manera:

=query('data from Airtable'!A:I, "select *", 0)

La misma acción se puede llevar a cabo a través de Coupler.io que extrae todos los datos de otra planilla u hoja de cálculo a tu documento actual. Echa un vistazo al artículo , que explica cómo configurar esta conexión.

Ejemplo de query en Google Sheets SELECT una o varias columnas

Si un usuario desea obtener sólo una o varias columnas, debe definirlas mediante un ID de columna, como se indica a continuación:

=query('data from Airtable'!A:I, "select C, E, I")


Ejemplo de query SELECT de varias hojas de Google Sheets

Si necesitas consultar diferentes hojas de Google Sheets, es decir, si quieres seleccionar datos de varias pestañas diferentes de una hoja de cálculo, puedes utilizar el ejemplo siguiente:

=query({'data from Airtable'!A1:L; Sheet1!A1:L; Sheet2!A1:L}, "select * where Col1 is not null")
Consulta de Google Sheets Seleccionar de varias hojas

Nota: si quieres consultar datos de otra hoja de cálculo, te recomiendo que utilices una combinación de QUERY e IMPORTRANGE.

#2: Google Sheets Query WHERE

Los usuarios aplican WHERE cuando necesitan extraer filas específicas de las columnas, que ya han identificado en la cláusula SELECT, que satisface una o más condiciones.

Para comparar valores entre filas, es necesario conocer estos operadores lógicos básicos que acompañan a la cláusula WHERE.

OperadorSignificado
<=Menor o igual que
<Menos de
>Más de
>=Mayor o igual que
=Igualdad
! = o <>No es igual

Ejemplo de operadores básicos de query WHERE en Google Sheets

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select C, E, I WHERE I>=40")

Nota: si quieres decir que la celda está vacía o su contenido es igual a 0 – utiliza el operador is null, y si quieres seleccionar filas que no están vacías – entonces escribe is not null.

Ejemplo de condiciones combinadas WHERE de Google Sheets Query

Se pueden combinar varias condiciones utilizando and, or, y not como parte de la cláusula WHERE en la consulta, de la siguiente manera:

=query('data from Airtable'!A:I, "select C, E, I WHERE I>=40 and not E='Denver sandwich'")

Ejemplo de operadores avanzados WHERE de Google Sheets Query

Utilice estos operadores de comparación avanzados para realizar consultas más complejas:

OperadorSignificado
starts withCompara el valor con la condición y busca la correspondencia completa en el prefijo o al principio de la cadena.
ends withCompara el valor con la condición y busca la correspondencia completa en el sufijo o al final de la cadena.
containsCompara el valor con la condición y busca su presencia en cualquier parte de la cadena (ya sea al principio, en medio o al final del argumento).
matchesEsta coincidencia se realiza mediante el uso de expresiones regulares entre comillas simples.
likeCompara el valor con la condición expresada mediante el uso de dos argumentos: 1) % – se utiliza cuando no puede haber ningún carácter, uno o varios de cualquier tipo y clase; 2) _ (guión bajo) – se utiliza cuando sólo puede haber un único carácter de cualquier clase.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select C, E, I WHERE E starts with 'C' and C like 'K%'")

Ejemplo de búsqueda de coincidencias en Google Sheets

El operador matches ayuda en la búsqueda avanzada de patrones mediante expresiones regulares y el uso de criterios de búsqueda complejos en las consultas.

=query('data from Airtable'!A:L, "select C, E, I WHERE E matches 'Steak sandwich'")

Alternativamente, si desea filtrar los datos basándose en una coincidencia parcial, utilice expresiones regulares (RegEx) en la fórmula.

=query('data from Airtable'!A:L, "select C, E, I WHERE E matches '.*sandwich.*'", 1))

#3: Google Sheets Query GROUP BY

La cláusula GROUP BY se utiliza para agrupar valores en el rango de datos seleccionado según una determinada condición.

Nota: las columnas que menciona en la cláusula SELECT deben estar presentes en la cláusula GROUP BY o como parte de la función de agregación (por ejemplo, avg, count, max, min, sum).

Ejemplo de GROUP BY una columna: Query de Google Sheets SUM

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select C, sum(I) Group by C")

Ejemplo de query en Google Sheets GROUP BY varias columnas

En mi caso, la fórmula de Google Sheets Query GROUP By multiple columns lista para usar será la siguiente:

=query('data from Airtable'!A:I, "select C, H, sum(I) Group by C,H")

Nota: cuando utilices esta fórmula, especifica todas las columnas que definiste en la cláusula Select también en la cláusula Group by. La salida se agrupará por el ID de la primera columna que menciones en la cláusula Group by.

#4: Query PIVOT en Google Sheets

Con la cláusula PIVOT se pueden convertir filas en columnas y viceversa, así como agregar, transformar y agrupar datos por cualquier campo.

Nota: las columnas que mencionas en la cláusula SELECT deben estar presentes en la cláusula GROUP BY o como parte de la función de agregación (por ejemplo, avg, count, max, min, sum).

Ejemplo de query PIVOT sin GROUP BY en Google Sheets

Si las filas de las columnas pivote contienen los mismos valores, la cláusula PIVOT los agregará. Por lo tanto, si no utiliza GROUP BY como parte de la cláusula PIVOT, en un resultado obtendrá una tabla con una sola fila.

=query('data from Airtable'!A:I, "select sum(G) Pivot E")

Ejemplo de query PIVOT con GROUP BY en Google Sheets

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select C, sum(G) Group BY C Pivot E",1)

#5: Query en Google Sheets ORDER BY (ascendente o descendente)

En Google Sheets, puedes ordenar los datos utilizando distintas funciones, como SORT, SORTN o QUERY. Dentro de Google Sheets QUERY, puedes ordenar datos a través de columnas en orden ascendente (ASC) o descendente (DESC) utilizando la cláusula ORDER BY.

Los elementos a ordenar dentro de la cláusula ORDER BY pueden ser IDs de columnas o los resultados de operadores aritméticos, escalares o funciones de agregación.

Ejemplo de query ORDER BY de Google Sheets para ordenar en orden ascendente

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select * where A is not null order by A")

Nota: es crucial añadir is not null a la cadena para asegurarse de que la salida no tiene en cuenta las celdas vacías y las muestra todas en la tabla.

Ejemplo de query ORDER BY de Google Sheets para ordenar en orden descendente

Si las filas de las columnas pivote contienen los mismos valores, la cláusula PIVOT los agregará. Por lo tanto, si no utiliza GROUP BY como parte de la cláusula PIVOT, obtendrá una tabla con una sola fila.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select * order by A DESC")

Ejemplo de query de Google Sheets Ordenar por fecha

Para ordenar los datos por fecha, puede utilizar la cláusula ORDER BY seguida de la fecha.

=QUERY('datos de Airtable'!A1:L21, "ORDER BY B",1)

#6: Google Sheets Query LIMIT (+ ejemplo de fórmula)

La cláusula Limit reduce la cantidad de filas extraídas de otra hoja u hoja de cálculo.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select * Limit 5")

#7: Google Sheets Query OFFSET

Con esta cláusula puedes pedir a Google Sheets que omita un número predefinido de filas de la parte superior de la hoja de cálculo de tu fuente de datos.

Ejemplo de fórmula de query en Google Sheets OFFSET only

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select * Offset 10")

Ejemplo de query OFFSET acompañada de LIMIT en Google Sheets

Si OFFSET se combina con la cláusula LIMIT, aunque siga a LIMIT en la sintaxis, se aplicará primero. En mi caso, la fórmula lista para usar será

=query('data from Airtable'!A:I, "select * Limit 5 Offset 10")

#8: Google Sheets Query LABEL (+ejemplo de fórmula)

La cláusula LABEL permite asignar un nombre a un campo de encabezamiento de una o varias columnas. Sin embargo, no podrás aplicarla en lugar de un ID de columna en una cadena de consulta.

Se pueden utilizar ID de columnas o los resultados de operadores aritméticos, funciones escalares o de agregación como elementos de esta cláusula.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select * label C 'cliente', E 'Hamburguesa', I 'Total pagado'")

#9: FORMATO de Query en Google Sheets

Los usuarios aplican la cláusula FORMAT para dar formato a valores numéricos, de fecha, hora, timeofdate y datetime de una o varias columnas.

Ejemplo de cláusula FORMAT: Fecha de query de Google Sheet

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:J, "select B, G, I, J label J 'Hora' format B 'dd-mmm-aaaa', G '##.00', I '##.000', J 'HH'")

Manipulación de datos con Google Sheets Query

El lenguaje de consulta de la API de visualización de Google especifica las tres funciones y operadores principales que se utilizan para ayudarte a manipular los datos:

  1. Operadores aritméticos
  2. Funciones de agregación
  3. Función escalar

Operadores aritméticos de query de Google Sheets (+ ejemplo de fórmula)

Los operadores aritméticos ayudan a los usuarios a ejecutar cálculos básicos. Incluyen + (más), - (menos), / (dividir), * (múltiplicar), donde los parámetros son dos números y el resultado que devuelve la función Query es también un número.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select C, I, G*H label G*H 'Multiplicación aritmética'")

Funciones de agregación de queries de Google Sheets (+ ejemplo de fórmula)

Las funciones de agregación se aplican a un ID de columna y ejecutan una operación a través de los datos de todas las filas de esta columna específica. Normalmente, las funciones de agregación aparecen en las cláusulas SELECT, ORDER BY, LABEL y FORMAT. Además, también pueden referirse a un conjunto de datos formado como parte de las cláusulas PIVOT o GROUP BY.

Sin embargo, no pueden utilizarse como parte de estas cláusulas: WHERE, GROUP BY, PIVOT, LIMIT u OFFSET.

Las funciones de agregación incluyen las siguientes categorías:

Soporta número como tipo de columna y el resultado también es un número.avg() – proporciona la media de todos los números de una columna.
sum() – proporciona la suma de todos los números de una columna.
Admite cualquier tipo de columna y el resultado es un número.count() – proporciona la cantidad de elementos de una columna (las filas con celdas vacías no se calculan).
Admite cualquier tipo de columna y el resultado será el mismo que el tipo de columna. En este caso, las fechas anteriores serán menores que las posteriores; y los valores de texto se alinean alfabéticamente, donde también se tiene en cuenta la distinción entre mayúsculas y minúsculas:max() – proporciona el valor máximo de todos los de una columna.
min() – proporciona el valor mínimo de todos los de una columna.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select min(B), count (C), max(I), avg(G), sum(I)")

Funciones escalares de query de Google Sheets (+ ejemplo de fórmula)

Las funciones escalares se utilizan para convertir un parámetro dado en otro valor.

Nota: si utilizas una de las funciones Escalar, se modificará la celda de encabezamiento de la columna.

Estas funciones pueden utilizarse como parte de las cláusulas SELECT, WHERE, GROUP BY, PIVOT, ORDER BY, LABEL y FORMAT.

A continuación, he dividido las funciones en grupos según los parámetros requeridos y los tipos de valores que devuelven.

Funciones escalares DATE o DATETIME

Funciones escalares que admiten un único parámetro de tipo DATE o DATETIME y devuelven un número como resultado:

Nombre de la funciónPara qué sirve
año()Obtiene el año de un valor DATETIME/TIMESTAMP o DATE.
mes()Obtiene el mes de un valor DATETIME/TIMESTAMP o DATE en una escala de 0 a 11, donde enero equivale a 0, febrero a 1, y así sucesivamente terminando con diciembre que tiene 11.
día()Obtiene el día del mes a partir de un valor DATETIME/TIMESTAMP o DATE.
trimestre()Obtiene el trimestre de un valor DATETIME/TIMESTAMP o DATE en una escala de 1 a 4, donde 1 corresponde al primer trimestre, 2 – al segundo y así sucesivamente.
dayOfWeek()Obtiene el día de la semana a partir de un valor DATETIME/TIMESTAMP o DATE en una escala de 1 a 7, donde 1 corresponde al domingo, 2 – al lunes y así sucesivamente.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select año(B), mes(B), día(B), trimestre(B), día de la semana(B)")

Funciones escalares DATETIME o TIMEOFDAY

Funciones escalares que admiten un único parámetro de tipo DATETIME o TIMEOFDAY y el resultado es un número:

Nombre de la funciónPara qué sirve
hour()Obtiene la hora de un valor DATETIME/TIMESTAMP o DATE.
minute()Obtiene el minuto de un valor DATETIME/TIMESTAMP o DATE.
second()Obtiene el segundo de un valor DATETIME/TIMESTAMP o DATE.
millisecond()Obtiene el milisegundo de la semana a partir de un valor TIMEOFDAY o DATETIME/TIMESTAMP.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:K, "select bour(K), minute(K), second(K), milisecond(K)")

Funciones escalares para convertir valores en mayúsculas o minúsculas

Funciones escalares que admiten un único parámetro de tipo String y el resultado también es un String:

Nombre de la funciónPara qué sirve
upper()Convierte el valor de la cadena sustituyendo todas las letras por mayúsculas.
lower()Convierte el valor de la cadena sustituyendo todas las letras por minúsculas.

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:I, "select lower(C), upper(C)")

Función escalar para calcular la diferencia de fechas

Una función escalar que admite dos parámetros de tipo DATE o DATETIME (puede ser cualquiera de estos dos) y el resultado es un número:

Nombre de la funciónPara qué sirve
dateDiff()Calcula la diferencia entre los dos valores DATE / DATETIME / TIMESTAMP y muestra el resultado como un número de días. Tenga en cuenta que el valor de la hora no se tiene en cuenta durante el cálculo.

Ejemplo de cálculo de la diferencia entre dos fechas

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:K, "select dateDiff(B,K) label dateDiff(B,K) 'Diferencia entre dos fechas, días'")

Ejemplo de cálculo de la diferencia entre la fecha y el ahora

Para calcular la diferencia entre una fecha dada y la hora actual, primero tendremos que familiarizarnos con la función now().

No requiere ningún parámetro y devuelve una FECHA como resultado:

Nombre de la funciónSignificado
now()Muestra el valor actual de DATETIME utilizando la hora GMT.

La fórmula para calcular la diferencia es la siguiente:

=query('data from Airtable'!A:K, "select dateDiff(B,now()) label dateDiff(B,now()) 'Diferencia entre fecha y ahora,dias'")

Función escalar para convertir valores en una fecha

Esta función admite uno de los parámetros a la vez: una FECHA, una FECHA-TIEMPO o un NÚMERO y devuelve una FECHA:

Nombre de la funciónPara qué sirve
toDate()Convierte un valor de FECHA, FECHA-TIEMPO o NÚMERO en una FECHA:
– Si un parámetro dado es una FECHA – el valor devuelto será el mismo valor de FECHA
– Si un parámetro dado es una FECHA – el valor devuelto será sólo la FECHA
– Si un parámetro dado es un NÚMERO – el valor devuelto será la FECHA calculada como el número de milisegundos después del 01.01.1970 00:00:00 GMT (la Época).

En mi caso, la fórmula lista para usar será la siguiente

=query('data from Airtable'!A:K, "select toDate(K)")

Query en Google Sheets para iniciar tu camino con SQL

La función de consulta de Google Sheets ayuda a gestionar datos a través de hojas de cálculo para diversos casos de uso. Comprender las diferentes sintaxis de Query con ejemplos sentará una base sólida para consultar datos en otros almacenes de datos como BigQuery. Pero memorizar todas las cláusulas y cómo envolverlas en fórmulas puede ser un reto, junto con los frecuentes errores de Google.

Coupler.io es una solución alternativa para importar y consultar fácilmente datos en tiempo real. No sólo las hojas de cálculo, puedes consultar datos de múltiples fuentes sin ningún tipo de fórmulas. Coupler.io reemplaza una gran cantidad de fórmulas complejas de Google Sheets Query como WHERE y ORDER BY con características simples, como la gestión de columnas, ordenar, filtrar y columnas personalizadas.

Automatice la exportación de datos con Coupler.io

Empiece gratis
Salir de la versión móvil