Cómo actualizar opciones en Google Forms desde Google Sheets

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.

  1. Abre Google Forms.
  2. Crea un nuevo formulario y nómbralo «Cursos de Productividad».
  3. 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.

  1. Abre Google Sheets.
  2. Crea una nueva hoja llamada «Cursos de Productividad Respuestas».
  3. Añade una pestaña llamada «Cursos».
  4. 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.

  1. Desde la hoja de cálculo, abre el Editor de secuencias de comandos:
    • Haz clic en Herramientas > Editor de secuencia de comandos.
  2. Crea un nuevo proyecto llamado «Formulario de Cursos».
  3. 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.

  1. En el Editor de secuencias de comandos, ve a Editar > Activadores del proyecto actual > Añadir un activador.
  2. Configura el activador así:
    • Elegir función: llenarOpcionesCursos
    • Fuente del evento: Al modificar
    • Tipo de activador: En la hoja de cálculo
  3. 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.

  1. Agrega un nuevo curso en la hoja de cálculo, por ejemplo, «Mindfulness».
  2. Espera unos segundos y abre el formulario para verificar que la nueva opción aparezca en la pregunta correspondiente.
  3. Si no ves el cambio, ejecuta manualmente la función llenarOpcionesCursos desde 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.

2 comentarios en “Cómo actualizar opciones en Google Forms desde Google Sheets”

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.