Hoy vamos a aprender cómo traer opciones de una lista desplegable desde Google Sheets a Google Forms. Veremos paso a paso cómo integrar Sheets y Forms mediante un script en Google Apps Script que automatiza este proceso. Este tutorial es perfecto para emprendedores, dueños de pequeñas empresas y empleados que quieren optimizar la gestión de formularios y hojas de cálculo, evitando errores y ahorrando tiempo.
Si prefieres ver este tutorial en video, te lo dejo aquí abajo para que sigas cada paso conmigo.
Requisitos para este tutorial
- Una cuenta de Google activa.
- Acceso a Google Forms y Google Sheets.
- Conocimientos básicos para usar el Editor de secuencias de comandos (Google Apps Script).
Paso 1: Crear el formulario en Google Forms
Primero, vamos a crear un formulario básico donde mostraremos las opciones que traeremos desde Sheets.
- Abre Google Forms.
- Crea un nuevo formulario y nómbralo «Cursos de Productividad».
- Agrega estas preguntas:
- Nombre (Respuesta corta)
- Email (Respuesta corta)
- ¿Qué cursos deseas información? (Opción múltiple o Desplegable)
Paso 2: Crear la hoja de cálculo en Google Sheets
Ahora, vamos a crear una hoja de cálculo para almacenar las opciones de los cursos que aparecerán en el formulario.
- Abre Google Sheets.
- Crea una nueva hoja llamada «Cursos de Productividad Respuestas».
- Añade una pestaña llamada «Cursos».
- En la pestaña «Cursos», escribe los nombres de los cursos en la columna A, empezando desde la fila 2 (dejando la fila 1 para el encabezado).
| Cursos |
|---|
| GTD |
| Procrastinacion |
| Gestion del Tiempo |
Paso 3: Crear el código en Google Apps Script
Este es el corazón del proceso: el script que conecta Google Sheets con Google Forms y actualiza las opciones de la pregunta automáticamente.
- Desde la hoja de cálculo, abre el Editor de secuencias de comandos:
- Haz clic en Herramientas > Editor de secuencia de comandos.
- Crea un nuevo proyecto llamado «Formulario de Cursos».
- Copia y pega este código, que es la base para actualizar las opciones de la pregunta de opción múltiple o desplegable:
function llenarOpcionesCursos() {
// Conectarse a la hoja de cálculo
var libro = SpreadsheetApp.openById('ID_DE_LA_HOJA_DE_CALCULO');
var hoja = libro.getSheetByName('Cursos');
// Obtener los cursos desde la hoja de cálculo (desde fila 2 hasta la última)
var datos = hoja.getRange(2; 1; hoja.getLastRow() - 1).getValues();
// Limpiar y preparar las opciones
var opciones = [];
datos.forEach(function(fila) {
if (fila[0]) {
opciones.push(fila[0].toString().trim());
}
});
// Conectarse al formulario
var form = FormApp.openById('ID_DEL_FORMULARIO');
// Obtener la pregunta por ID
var pregunta = form.getItemById(ID_PREGUNTA);
// Actualizar las opciones según el tipo de pregunta
if (pregunta.getType() == FormApp.ItemType.MULTIPLE_CHOICE) {
pregunta.asMultipleChoiceItem().setChoiceValues(opciones);
} else if (pregunta.getType() == FormApp.ItemType.LIST) {
pregunta.asListItem().setChoiceValues(opciones);
} else {
Logger.log('La pregunta no es de tipo opción múltiple ni desplegable.');
}
}
Recuerda reemplazar 'ID_DE_LA_HOJA_DE_CALCULO', 'ID_DEL_FORMULARIO' y ID_PREGUNTA con los valores reales de tu proyecto.
Para obtener el ID_PREGUNTA (que es un número único que identifica cada pregunta), usa esta función auxiliar:
function averiguarIdsPreguntas() {
var form = FormApp.openById('ID_DEL_FORMULARIO');
var preguntas = form.getItems();
preguntas.forEach(function(pregunta) {
Logger.log('Titulo: ' + pregunta.getTitle());
Logger.log('ID: ' + pregunta.getId().toString());
});
}
Ejecuta esta función desde el editor y revisa el registro para ver los títulos y IDs de las preguntas. Así sabrás cuál ID usar en tu script principal.
Paso 4: Añadir un activador para automatizar la actualización
Para que tu formulario se actualice automáticamente cada vez que cambies la lista de cursos en Sheets, vamos a crear un activador que ejecute el script al modificar la hoja.
- En el Editor de secuencias de comandos, ve a Editar > Activadores del proyecto actual > Añadir un activador.
- Configura el activador así:
- Elegir función:
llenarOpcionesCursos - Fuente del evento: Al modificar
- Tipo de activador: En la hoja de cálculo
- Elegir función:
- Guarda los cambios.
Ahora, cada vez que agregues, elimines o cambies un curso en la pestaña «Cursos», el formulario se actualizará sin que tengas que hacer nada más.
Paso 5: Probar el script
Es importante verificar que todo funcione correctamente antes de usarlo en producción.
- Agrega un nuevo curso en la hoja de cálculo, por ejemplo, «Mindfulness».
- Espera unos segundos y abre el formulario para verificar que la nueva opción aparezca en la pregunta correspondiente.
- Si no ves el cambio, ejecuta manualmente la función
llenarOpcionesCursosdesde el editor para depurar.
Preguntas frecuentes
¿Qué pasa si agrego un curso nuevo en Google Sheets? El formulario se actualizará automáticamente con la nueva opción gracias al activador que configuramos.
¿Puedo usar este script para preguntas de tipo desplegable? Sí, solo cambia la línea que actualiza las opciones para usar asListItem() en lugar de asMultipleChoiceItem(). Ya incluí esta variación en el código para que funcione con ambos tipos.
¿Qué pasa si la pregunta no es de opción múltiple ni desplegable? El script mostrará un mensaje en el registro indicando que la pregunta no es compatible.
Variaciones del script para diferentes tipos de preguntas
Para preguntas tipo Desplegable (Lista)
Si la pregunta que quieres actualizar es tipo desplegable, modifica la parte del código que actualiza las opciones así:
pregunta.asListItem().setChoiceValues(opciones);
Esto es especialmente útil si recibiste preguntas en los comentarios como la de Eduardo Robles, quien preguntó cómo hacerlo para preguntas tipo lista desplegable. Ahora ya sabes cómo manejarlo.
Conclusión
En este tutorial vimos cómo automatizar la actualización de opciones en Google Forms usando datos de Google Sheets, con un script en Google Apps Script que se ejecuta automáticamente al modificar la hoja. Esto mejora mucho la eficiencia, reduce errores y te permite mantener tus formularios siempre actualizados sin esfuerzo manual.
Los pasos clave fueron: crear el formulario, preparar la hoja con las opciones, escribir el script para actualizar las preguntas, configurar un activador para automatizar y finalmente probar que todo funcione.
Si quieres profundizar en cómo usar Google Apps Script para automatizar tareas con Google Sheets y Forms, te recomiendo mi curso completo en la academia JuanSGuzman donde enseño desde cero hasta casos avanzados.
Inscríbete en la academia aquí para acceder a este y muchos otros cursos que te harán un experto en productividad con Google Workspace.
Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.
Hola Profe , como sería para List Item , estoy tratandolo de hacer , pero no me sale
Hola!
Ya te incluí la variación en el artículo.
Saludos!