Crear Desplegables Condicionales en Google Forms con Google Sheets y Google Apps Script

En este artículo, vamos a aprender a generar desplegables condicionales en Google Forms. Vamos a utilizar una tabla de países y ciudades como ejemplo, pero pueden adaptar este código a sus propias necesidades.

Video

Paso 1: Crear un Google Form y Google Sheet

  1. Crear un Google Form.
  2. Crear un Google Sheet con dos hojas:
  • Opciones: Contendrá la lista de países y ciudades.
  • Respuestas del formulario: Conectado al formulario para registrar las respuestas.

Estructura de la Hoja de Opciones

PaísCiudad
ChileSantiago
ChileValparaíso
ArgentinaBuenos Aires
ArgentinaCórdoba
ColombiaBogotá
ColombiaMedellín
EspañaMadrid
EspañaBarcelona
MéxicoCiudad de México
MéxicoGuadalajara

Paso 2: Conectar Google Form con Google Sheet

Paso 2.1: Crear el Formulario

  1. En el Google Sheet, vaya a Herramientas > Crear un formulario.
  2. El formulario se abrirá en una nueva pestaña. Añadir una pregunta de opción múltiple para el país y otra para la ciudad.

Paso 2.2: Crear la Estructura Manualmente

  1. Crear una pregunta de opción múltiple para el país con opciones como Colombia, España, México.
  2. Crear una sección para cada país y dentro de cada sección, añadir una pregunta de opción múltiple para las ciudades correspondientes.

Paso 3: Automatización con Google Apps Script

Paso 3.1: Acceder al Editor de Scripts

  1. En el Google Sheet, vaya a Extensiones > Apps Script.
  2. Borre cualquier código predeterminado y cree dos archivos: Code.gs y principal.html.

Paso 3.2: Código para Resetear el Formulario

function resetearFormulario() {
  var form = FormApp.openById('YOUR_FORM_ID');
  var items = form.getItems();
  for (var i = 0; i < items.length; i++) {
    form.deleteItem(items[i]);
  }
}

Paso 3.3: Código para Crear Desplegables Condicionales

function crearCondicionales() {
  resetearFormulario();

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Opciones');
  var data = sheet.getDataRange().getValues();
  var form = FormApp.openById('YOUR_FORM_ID');

  var paises = [];
  var ciudadesPorPais = {};

  for (var i = 1; i < data.length; i++) {
    var pais = data[i][0];
    var ciudad = data[i][1];
    if (paises.indexOf(pais) === -1) {
      paises.push(pais);
      ciudadesPorPais[pais] = [];
    }
    ciudadesPorPais[pais].push(ciudad);
  }

  var preguntaPais = form.addMultipleChoiceItem().setTitle('País');
  var opcionesPais = [];

  paises.forEach(function(pais) {
    var section = form.addPageBreakItem().setTitle(pais);
    var preguntaCiudad = form.addMultipleChoiceItem().setTitle('Ciudades de ' + pais);
    preguntaCiudad.setChoices(ciudadesPorPais[pais].map(ciudad => preguntaCiudad.createChoice(ciudad)));
    section.setGoToPage(FormApp.PageNavigationType.SUBMIT);

    opcionesPais.push(preguntaPais.createChoice(pais, section));
  });

  preguntaPais.setChoices(opcionesPais);
}

Paso 3.4: Crear el Menú en el Editor de Scripts

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Formulario')
    .addItem('Resetear Formulario', 'resetearFormulario')
    .addItem('Crear Condicionales', 'crearCondicionales')
    .addToUi();
}

Paso 4: Implementar y Probar

  1. Implementar el Script:
  • En el editor de Apps Script, vaya a Publicar > Implementar como aplicación web.
  • Configure Ejecutar la aplicación como su cuenta y Quién tiene acceso a cualquiera (o solo a usuarios específicos).
  • Guarde e implemente.
  1. Acceder al Web App usando la URL proporcionada tras la implementación.
  2. Ingresar datos de prueba:
  • País: Chile
  • Ciudad: Santiago
  • Presionar “Enviar”.
  1. Verificar en la hoja de respuestas que los datos se registren correctamente.

Conclusión

Con este tutorial, hemos aprendido a crear desplegables condicionales en Google Forms usando Google Apps Script. Este método permite automatizar la creación de formularios complejos y evita errores manuales al seleccionar opciones dependientes.

Espero que les haya gustado y les sea útil. Si tienen preguntas o comentarios, no duden en dejarlos abajo.

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.

Pin It on Pinterest

Share This