¿Quién ha dicho que Drive no tiene base de datos?
Puede que oficialmente no pero, a poco que se empeñe Google, pronto podremos disponer de una herramienta que pueda hacer sombra al mismísimo Microsoft Access (uno de los pocos productos que, junto a Windows XP considero que merecen la pena).
Google Docs tiene formularios que almacenan sus datos en hojas de cálculo. Si a esto añadimos la posibilidad de generar informes (¿utilizamos macros contra un documento en Drive?) y la de lanzar consultas contra los datos recogidos ¿Qué más necesitamos para tener en la «nube» todo un Access? 😉
Veamos cómo ejecutar consultas SQL contra una hoja de cálculo en Drive y, si creéis que puede ser de utilidad ya os contaré cómo generar informes.
Trabajando en un script que importaba en una hoja de cálculos de Drive las puntuaciones de mis alumnos en la plataforma Moodle me encontré que no se actualizaban correctamente los pilotos de datos que tenía en la hoja de cálculo por lo que tuve que investigar alternativas que no implicasen tener que crear manualmente (una y otra vez) los cruces de datos que necesitaba.
Por fortuna, encontré la función query(…) en Google Drive y, puedo aseguraros, que ha sido un «amor a primera vista» 🙂
Query() permite lanzar consultas contra cualquier hoja de nuestro libro utilizando las columnas como nombre de campo y admitiendo un subconjunto de operaciones limitado pero funcional (sum, avg, count, max, …). En el siguiente enlace puedes consultar el listado completo de las funciones disponibles.
Veamos un ejemplo
Sean las siguientes notas obtenidas por los alumnos de un curso
Deseamos obtener la media (aritmética) obtenida por cada uno de ellos.
Teniendo en cuenta que la sintaxis de la función query() es
QUERY(datos; consulta; encabezados)
lanzaremos la siguiente consulta
query(Notas!$B$2:$E$15;»select avg(E) where C=’Finalizado’ and B='» & G3 & «‘ label avg(E) »»)
donde:
- Notas!$B$2:$E$15 es la hoja (Notas) y rango de celdas en la que se encuentran nuestros datos (B2:E15). Se ha optado por utilizar referencias absolutas ($) para evitar problemas al arrastrar la fórmula a las celdas de los restantes alumnos del grupo. Se podría haber utilizado referencias mixtas (B$2:E$15) puesto que se arrastrará hacia abajo pero así sirve en cualquier contexto 😉
- AVG(E) permite obtener la media aritmética de las notas obtenidas por cada alumno (obsérvese que la nota se encuentra en la columna E)
- Observa que no existe la cláusula FROM.
- where C=’Finalizado’ and B='» & G3 &»‘ nos permite seleccionar las entradas de ejercicios ya terminados por el alumno (Moodle distingue el estado y devuelve todas las entradas) y que hayan sido realizados por el alumno que nos interesa (el que se indique en la columna G y concatenamos a la SQL con el & G3 &)
- label avg(E) » evita que aparezca la etiqueta AVG(E) como nombre de campo en el resultado de la consulta, sustituyéndolo por » (nada entre comillas simples, ni siquiera un espacio en blanco jejeje)
El resultado final sería
Conclusión
Potente función la que ofrece Google Drive que nos abre las puertas a sacar mucho partido a la información almacenada en nuestras hojas de cálculo.
Y tú…
- ¿Conocías la existencia de query(…)?
- ¿Para qué la has utilizado?
- ¿Qué echas de menos en Google Drive?
- ¿Conseguirá algún día Drive hacer que nos olvidemos de Access?
- …
La verdad no sabía que en Docs había esta posibilidad. Muy bueno el dato
Me gustaMe gusta
Me alegra que a alguien le haya resultado interesante (ya empezaba a sentirme un poco sólo por aquí 😉 )
Gracias por comentar compi
Me gustaLe gusta a 2 personas
Hola! Te estoy leyendo, y acabo de abrir en otra pestaña la info de Google Query.
A mi esta función (que casi es una aplicación), me resulta super interesante, y no había encontrado lista de funciones…
Es increíble como reemplaza con sencillez a Power Query y Power Pivot, tablas dinámicas. etc etc.
Hará 3 meses la descubrí y sigo con los tutoriales 😊😊 gracias por el aporte,
Aprovecho para consultarte.. los formularios de google no tienen nada que ver con los Userform de Excel, no?
Ese tema y los dashboard pintorescos es lo único que extraño de MS.
Nancy
Me gustaMe gusta
Para mí, la función query, es imprescindible y abuso de ella hasta la saciedad 😅
Respecto a las preguntas que haces sobre Excel y, partiendo que hace siglos que lo abandone por LibreOffice primero y Google Sheets últimamente, comentar que Userforms viene a ser una forma más compleja (pero también más potente) de introducir datos mientras que los dashboards no entiendo cuál es el problema para crearlos en Google Sheets (al fin y al cabo, no dejan de ser gráficos y tablas que resumen la información que tienes almacenada en tu hoja de cálculo)
Seguro que se me está escapando algún detalle por lo que agradecería que me lo hicieses ver para ver cómo se podría solucionar con 😉👍🏻
Me gustaMe gusta
Hola buenas, verás, explicas bien como realizar una media aritmética gracias a esta herramienta que nos ofrece Drive. Mi problema es el siguiente: Quiero hacer que a partir de unas siglas, p.j: clr ; pueda aparecer un nombre completo, ej: Carlos Lopez Rodriguez . ¿Como podría hacerlo? ¿Que código exacto debo de introducir?
Me gustaMe gusta
Hola Carlos,
Sería if(regexmatch(a1;»clr»);a1;»»)
Saludos
Me gustaMe gusta
Hola: muy claro tu post, pero mi necesidad es si puedo realizar un query a un libro en Drive. Es decir, ya tengo consultas de libro a libro en mi ordenador pero ahora quisiera hacerla a un libro en el Drive. ¿Habrá algún modo? Gracias.
Me gustaMe gusta
¿Que hoja de cálculo usarías en tu ordenador?
Me gustaMe gusta
Hojas Excel
Me gustaMe gusta
Disculpa, hojas Excel xlsm
Me gustaMe gusta
Poco voy a poder hacer
Me gustaMe gusta
Qué pena… gracias igual.
Me gustaMe gusta
Como puedo utilizar una hoja de calculo de drive como base de datos para una app para android?
Me gustaMe gusta
Interesante pero personalmente optaría por usar SQLite ¿Realmente es un requisito usar Drive?
Saludos
Me gustaMe gusta
Hola tengo un problema, realizo un formulario Donde me dal el No de una orden y en que medios invierten de la siguiente manera
No Orden Radio TV Facebook Google
1 100 20 10
2 200 1
Realmente necesito hacer una consulta en donde me arroje en los medios que han invertido Ejemplo
No de Orden Medio Valor
1 Radio 100
1 TV 20
1 Google 10
2 TV 200
2 Facebook 1
He intentado con muchas formalas y pense que Query me puede funcionar sin embargo aun no lo he logrado sacar
Serias de Gran ayuda Gracias
Me gustaMe gusta
Hola lucy,
El problema creo que está en el formulario, lo podrías mostrar?
Me gustaMe gusta
Hola. mi consulta es la siguiente:
tengo una lista de socios de un club. Para poder realizar las actvidades tienen que contar con varios requisitos: estar al dia con la cuota, el cert medico sin vencer, y realizar al menos una actividad por mes.
las actividades se llenan en otra planilla.
hay forma de vincular una planilla con la otra?
Gracias
Me gustaMe gusta
Hola Santiago
Claro que es posible; en su día publicamos un artículo sobre la función importRange(…) que resulta de gran utilidad a la hora de utilizar datos de otras hojas de cálculo en Drive que espero os sea de utilidad.
Ya nos contarás cómo te ha ido… cualquier cosa, no dudes en preguntar a través de los comentarios.
Suerte y un saludo 👍🏻
Me gustaMe gusta
Buenas noches, como puedo hacer una consulta Where con la función Query para que en una tabla de datos busque con la fecha de una celda especifica.
Gracias
Me gustaMe gusta
Hola Santiago, si observa el ejemplo se usa la columna B para comprobar si su contenido coincide con el valor que haya en la celda G3 y la C para ver si contiene el valor ‘Finalizado’.
En principio, debería servir para adaptarlo al problema que plantea con las fechas pero, si sigue sin poder resolverlo, díganoslo e intentaremos ver qué está ocurriendo 👍🏻
Me gustaMe gusta
Hola!!
Quería saber si me puedes ayudar con este tema
Debo vincular una hoja de calculo que tengo en un drive a la cual se le van agregando registros de acuerdo a un formulario asociado. Esta hoja de cálculo no se puede subir a la web para poder llamarla directamente desde excel.
Debo vincular esta hoja de calculo de drive con un libro excel que se vaya actualizando a medida que van ingresando los datos. Esto con el fin de manejar de manera mas eficiente los datos y no se me pegue el drive.
No se, pensaba buscar la opción de vincularla a sql server y de ahí trabajar.
Quedo atento si me puedes guiar en esta solución.
Me gustaMe gusta
Hola Francisco, no sé si he sabido entender realmente el problema que planteas: ¿la hoja de cálculo que tenéis «en un Drive» es una hoja de cálculo nativa de Drive (Google Sheets) o es un excel que habéis subido a Drive?
Salu2
Me gustaMe gusta
Es una hoja que se va llenando de acuerdo a información le vayan ingresando mediante un formulario.
No se si me explico. Dame tu contacto para poder explicarte mejor si asi lo necesitas.
Muchas gracias
Me gustaMe gusta
Realmente me interesa conocer el tipo de fichero (Excel, Google Sheets,…) tanto de origen como de destino.
En la web tienes un apartado de contacto si te resulta más cómodo 👍🏻
Me gustaMe gusta
Exelente aporte
Me gustaMe gusta
Nos alegra enormemente que encuentre interesante el uso de la función query(..) en Google Sheets.
Cada día la uso más y es, sin duda, un «must have»
Salu2, Ernesto
Me gustaMe gusta
Hola.
Gracias por toda la enseñanza entregada… y lo mejor poder compartirla.
Estoy en un trabajo con Google Sheets y lo trabajo a través de formularios.
Me gustaria de lleno, si se puede obtener informacion de SQL server y mostrarlo en mis planillas
Sheets, tal cual como lo hace excel al enlazarse con SQL server medianto un ODBC.
Sabes como se hace…
Gracias
Saludos
Edü 🙂
Me gustaMe gusta
Directamente no he oído que se pueda pues no existe una forma de establecer conexiones (ni ODBC ni JDBC ni similar) desde un documento de Google Sheets
A «bote pronto», lo más parecido que se me ocurre (y no digo que sea sencillo ni seguro), es hacer uso de las funciones importXXX de Sheets; en su día hablamos de IMPORTRANGE(…) pero hay otras realmente interesantes (y algunas de las cuales tengo pendiente un artículo) como:
Me gustaMe gusta
Si ya hice un formulario y las respuestas se quedaron en la hoja de calculo, puedo seguir alimentando la misma hoja de calculo con otro formulario?, me explico imagina que tengo que hacer dos bitacoras de dos lugares diferentes, entonces hago un formulario para crear la bitácora con los datos que yo creo necesario y se guarda en la hoja de calculo, pero de ahí en fuera necesito alimentar esa base de datos diario con las incidencias de cada día y poder ver también las incidencias de los días anteriores, se podrá hacer algo parecido desde esta plataforma.
Saludos y gracias
Me gustaMe gusta
Hola Adrián
No sé si entendí correctamente el problema pero siempre puede hacer que los diferentes formularios rellenen hojas distintas de un mismo documento.
Si necesita que esté todo en el mismo sitio, siempre puede «fusionar» los datos de las diferentes hojas para poder trabajar sobre un único conjunto de información.
Espero haber entendido el problema
Me gustaMe gusta