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.

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.