Tabla de contenido
Si hace tiempo que sigues este blog, puede que te acuerdes de la función QUERY para Google Sheets. La mencioné como posible solución para un par de casos, pero no son ni mucho menos suficientes para descubrir todo su potencial. Hoy, ya es hora de que conozcamos a este superhéroe de las hojas de cálculo como es debido. Y adivina qué: una herramienta igualmente digna de mención también estará presente :)
¿Sabías que la función QUERY de Google Sheets está considerada como la más potente de las hojas de cálculo? Su peculiar sintaxis favorece decenas de operaciones diferentes. Vamos a intentar desglosar sus partes para aprenderlas de una vez por todas, ¿te parece?
Sintaxis de la función QUERY de Google Sheets
A primera vista, Google Sheets QUERY no es más que otra función con 1 argumento opcional y 2 obligatorios:
=QUERY(datos, consulta, [cabeceras])- datos es el rango a procesar. Requerido. Todo está muy claro aquí.
Nota. Sólo un pequeño recordatorio aquí establecido por Google: cada columna debe contener un tipo de dato: textual, o numérico, o booleano. Si hay diferentes tipos, QUERY trabajará con el que más aparezca. Otros tipos serán considerados como celdas vacías. Extraño, pero tenlo en cuenta.
- consulta es la forma de procesar el datos . Obligatorio. Aquí es donde empieza la diversión. La función QUERY de Google Sheets utiliza un lenguaje especial para este argumento: Lenguaje de consulta de la API de visualización de Google Básicamente, se trata de un conjunto de cláusulas especiales (comandos) que se utilizan para indicar a la función lo que debe hacer: seleccionar, agrupar por, limitar, etc.
Nota. Todo el argumento debe ir entre comillas dobles. Los valores, a su vez, deben ir entre comillas.
- cabeceras es opcional para cuando necesites indicar el número de filas de cabecera de tus datos. Omite el argumento (como hago yo a continuación), y Google Sheets QUERY lo asumirá basándose en el contenido de tu tabla.
Ahora profundicemos en las cláusulas y lo que hacen.
Cláusulas utilizadas en las fórmulas QUERY de Google Sheets
El lenguaje de consulta consta de 10 cláusulas. Pueden asustar a primera vista, sobre todo si no estás familiarizado con SQL. Pero te prometo que, una vez que las conozcas, tendrás a tu disposición una poderosa arma de hoja de cálculo.
Voy a cubrir cada cláusula y proporcionar ejemplos de fórmulas utilizando esta lista de estudiantes imaginarios y sus temas de papel:
Sí, soy uno de esos bichos raros que piensan que Plutón debería ser un planeta :)
Consejo: en una función QUERY de Google Sheets se pueden utilizar varias cláusulas. Si las anidas todas, asegúrate de seguir el orden de aparición que se indica en este artículo.
Seleccionar (todas las columnas o columnas específicas)
La primera cláusula - seleccione - se utiliza para indicar qué columnas debes devolver con Google Sheets QUERY desde otra hoja o tabla.
Ejemplo 1. Seleccionar todas las columnas
Para obtener todas y cada una de las columnas, utilice seleccione con un asterisco - seleccionar *
=QUERY(Papers!A1:G11, "select *")
Consejo: si omite el seleccione Google Sheets QUERY devolverá todas las columnas de forma predeterminada:
=QUERY(Papeles!A1:G11)
Ejemplo 2. Seleccionar columnas específicas
Para extraer sólo determinadas columnas, enumérelas después del carácter seleccione cláusula:
=QUERY(Papers!A1:G11, "select A,B,C")
Consejo. Las columnas de interés se copiarán en el mismo orden en que las mencione en la fórmula:
=QUERY(Papers!A1:G11, "select C,B,A")
Google Sheets QUERY - Cláusula Where
Google Sheets CONSULTA donde se utiliza para establecer las condiciones hacia los datos que desea obtener. En otras palabras, actúa como un filtro.
Si utilizas esta cláusula, la función QUERY de Google Sheets buscará en las columnas los valores que cumplan tus condiciones y te devolverá todas las coincidencias.
Consejo. Dónde puede funcionar sin el seleccione cláusula.
Como es habitual, para especificar las condiciones, existen conjuntos de operadores para ti:
- operadores de comparación simples ( para valores numéricos ): =, ,>,>=, <, <=
- operadores de comparación complejos ( para cadenas ): contiene, empieza por, acaba por, coincide con, != (no coincide / no es igual a), como .
- operadores lógicos a combinar varias condiciones : y, o, no .
- operadores para en blanco / no vacío : es nulo, no es nulo .
Consejo. Si te molesta o te preocupa tener que volver a lidiar con un número tan elevado de operadores, te entendemos. Nuestras Coincidencias de Vlookup múltiples encontrarán todas las coincidencias y crearán fórmulas de QUERY en Google Sheets por ti si es necesario.
Veamos cómo se comportan estos operadores en las fórmulas.
Ejemplo 1. Dónde con números
Añadiré donde a mi Google Sheets QUERY de arriba para obtener la información sobre los planetas que tienen más de 10 lunas:
=QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")
Sugerencia. También mencioné la columna F para obtener sólo para asegurarse de que se cumple el criterio. Pero es completamente opcional. No tiene que incluir columnas con condiciones en el resultado:
=QUERY(Papers!A1:G11, "select A,B,C where F>=10")
Ejemplo 2. Dónde con cadenas de texto
- Quiero ver todas las filas en las que la calificación sea F o F+ Utilizaré el contiene operador para ello:
=QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")
Nota: no olvides entrecomillar el texto.
- Para obtener todas las filas con F sólo, basta con sustituir contiene con un signo igual (=):
=QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")
- Para comprobar los trabajos pendientes de entrega (en los que falta la calificación), marque la columna G para los espacios en blanco:
=QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")
Ejemplo 3. Dónde con fechas
Adivina qué: Google Sheets QUERY ha conseguido incluso domar las fechas.
Dado que las hojas de cálculo almacenan las fechas como números de serie, normalmente hay que recurrir a la ayuda de funciones especiales como FECHA o FECHAVALOR, AÑO, MES, HORA, etc.
Pero QUERY ha encontrado el modo de introducir fechas. Para introducirlas correctamente, basta con escribir la palabra fecha y, a continuación, añada la fecha con el formato aaaa-mm-dd: fecha "2020-01-01
Esta es mi fórmula para obtener todas las filas con una fecha de Discurso anterior al 1 de enero de 2020:
=QUERY(Papers!A1:G11, "select A,B,C where B
Ejemplo 4. Combinar varias condiciones
Para utilizar un determinado periodo de tiempo como criterio, deberá combinar dos condiciones.
Intentemos recuperar aquellos trabajos que fueron entregados en otoño de 2019. El primer criterio debe ser una fecha a partir del 1 de septiembre de 2019 , el segundo - a más tardar el 30 de noviembre de 2019 :
=QUERY(Papers!A1:G11, "select A,B,C where B>=fecha '2019-09-01' and B<=fecha '2019-11-30'")
O bien, puedo seleccionar documentos en función de estos parámetros:
- antes del 31 de diciembre de 2019 ( B
) - tienen A o A+ como nota ( G contiene "A )
- o B/B+ ( G contiene "B )
=QUERY(Papers!A1:G11, "select A,B,C,G where B
Consejo: si tu cabeza ya está a punto de estallar, no te rindas todavía. Existe una herramienta perfectamente capaz de construir todas estas fórmulas por ti, sin importar el número de criterios. Salta directamente al final del artículo para conocerla.
Google Sheets QUERY - Agrupar por
Google Sheets CONSULTA grupo por se utiliza para concatenar filas. Sin embargo, debe utilizar algunas funciones de agregación para resumirlas.
Nota. Grupo por debe seguir siempre el seleccione cláusula.
Lamentablemente, en mi tabla no hay nada que agrupar, ya que no hay valores recurrentes, así que voy a ajustarla un poco.
Supongamos que todos los trabajos deben ser elaborados por 3 alumnos solamente. Puedo hallar la nota más alta que obtuvo cada alumno, pero como son letras, es la función MIN la que debo aplicar a la columna G:
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Nota: Si no utiliza una función de agregación con ninguna columna de la tabla seleccione (columna A en mi ejemplo), debe duplicarlos todos en la carpeta grupo por cláusula.
Google Sheets QUERY - Pivot
Google Sheets CONSULTA pivote funciona al revés, si se me permite decirlo. Transpone los datos de una columna a una fila con nuevas columnas, agrupando otros valores en consecuencia.
Para los que os manejáis con fechas, puede ser todo un descubrimiento. Podréis echar un vistazo rápido a todos los años distintos a partir de esa columna de origen.
Nota: cuando se trata de pivote cada columna utilizada en el seleccione debe cubrirse con una función agregada. De lo contrario, debe mencionarse en la cláusula grupo por después de pivote .
Recuerda que ahora mi tabla sólo menciona 3 alumnos. Voy a hacer que la función me diga cuántos informes hizo cada alumno:
=QUERY(Papers!A1:G11, "select count(G) pivot A")
Google Sheets QUERY - Ordenar por
Este es bastante fácil :) Se utiliza para ordenar el resultado por los valores de ciertas columnas.
Consejo: todas las cláusulas anteriores son opcionales cuando se utiliza pedir por Uso seleccione para devolver menos columnas a efectos de demostración.
Volvamos a mi tabla original y ordenemos los informes por fecha de intervención.
Esta siguiente fórmula de Google Sheets QUERY me obtendrá las columnas A, B y C, pero al mismo tiempo las ordenará por fecha en la columna B:
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Límite
¿Y si te dijera que no tienes que incluir todas y cada una de las filas en el resultado? ¿Y si te dijera que Google Sheets QUERY sólo puede extraer una cierta cantidad de las primeras coincidencias que encuentra?
Bueno, el límite limita el número de filas a devolver en función del número dado.
Consejo: no dude en utilizar límite sin otras cláusulas previas.
Esta fórmula mostrará las 5 primeras filas en las que la columna con calificaciones contenga una marca (no esté vacía):
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")
Desplazamiento
Esta cláusula es un poco opuesta a la anterior. Mientras que límite obtiene el número de filas que especifiques, offset se los salta, recuperando el resto.
Consejo. Desplazamiento tampoco requiere ninguna otra cláusula.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")
Si intenta utilizar ambos límite y offset ocurrirá lo siguiente:
- Desplazamiento omitirá las filas del principio.
- Límite devolverá un número de las filas siguientes.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")
De 11 filas de datos (la primera es una cabecera y la función QUERY de Google Sheets hace un buen trabajo entendiendo eso), offset se salta las 3 primeras filas. Limit devuelve las 3 filas siguientes (empezando por la 4ª):
Google Sheets QUERY - Etiqueta
Google Sheets CONSULTA etiqueta le permite cambiar los nombres de las cabeceras de las columnas.
Otras cláusulas son opcionales para etiqueta también.
Ponga el etiqueta primero, seguido del ID de la columna y un nuevo nombre. Si cambia el nombre de varias columnas, separe cada nuevo par columna-etiqueta con una coma:
=QUERY(Papers!A1:G11, "select A,B,C label A 'Nombre', B 'Fecha'")
Formato
En formato permite modificar el formato de todos los valores de una columna. Para ello, necesitará un patrón que respalde el formato deseado.
Consejo: la cláusula de formato también puede utilizarse en solitario en la consulta de Google Sheets.
=QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, aaaa, ddd'")
Consejo. En esta entrada del blog mencioné algunos formatos de fecha para Google Sheets QUERY. Otros formatos se pueden tomar directamente de las hojas de cálculo: Formato> Número> Más formatos> Formato numérico personalizado .
Opciones
Se utiliza para establecer algunos ajustes adicionales para los datos de resultados.
Por ejemplo, un comando como no_valores devolverá sólo celdas formateadas.
La forma más rápida de construir fórmulas QUERY - Multiple Vlookup Matches
Por muy potente que sea la función QUERY de las Hojas de cálculo de Google, puede requerir una curva de aprendizaje para hacerse con ella. Una cosa es ilustrar cada cláusula por separado en una tabla pequeña y otra completamente distinta intentar construirlo todo correctamente con unas cuantas cláusulas y una tabla mucho más grande.
Por eso hemos decidido vestir Google Sheets QUERY con una interfaz fácil de usar y convertirlo en el complemento.
¿Por qué múltiples coincidencias VLOOKUP es mejor que las fórmulas?
Bueno, con el complemento hay absolutamente ninguna necesidad de :
- averiguar nada sobre esos cláusulas Es muy fácil crear muchas condiciones complejas en el complemento: tantas como necesites a pesar de su orden para obtener tantas coincidencias como necesites.
Nota. Por el momento, se han incorporado las siguientes cláusulas a la herramienta: select, where, limit, y offset Si su tarea requiere también otras cláusulas, coméntelo a continuación; tal vez nos ayude a mejorar ;)
- saber cómo introducir operadores : sólo tiene que elegir el que desee de una lista desplegable.
- descifrar el correcto forma de introducir la fecha y la hora El complemento te permite introducirlos como solías hacerlo en función de la configuración regional de tu hoja de cálculo.
Consejo: en la herramienta siempre hay una sugerencia con ejemplos de distintos tipos de datos.
Como bonificación podrás:
- previsualizar tanto el y la fórmula
- escriba a ajustes rápidos a su criterio
- seleccione una lugar para el resultado
- insertar el resultado como fórmula QUERY o como valores
No bromeo, compruébelo usted mismo. Aunque este GIF está acelerado, tardé menos de un minuto en afinar todos los criterios y obtener el resultado:
Si tienes curiosidad, aquí tienes un vídeo detallado que muestra cómo funciona el complemento:
Espero que le des una oportunidad al complemento y lo consigas en Google Workspace Marketplace. No seas tímido y comparte tus comentarios, especialmente si hay algo que no te gusta.
Además, no dudes en consultar su página de tutoriales o su página de inicio.