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
- Crear un Google Form.
- 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ís | Ciudad |
|---|---|
| Chile | Santiago |
| Chile | Valparaíso |
| Argentina | Buenos Aires |
| Argentina | Córdoba |
| Colombia | Bogotá |
| Colombia | Medellín |
| España | Madrid |
| España | Barcelona |
| México | Ciudad de México |
| México | Guadalajara |
Paso 2: Conectar Google Form con Google Sheet
Paso 2.1: Crear el Formulario
- En el Google Sheet, vaya a
Herramientas > Crear un formulario. - 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
- Crear una pregunta de opción múltiple para el país con opciones como
Colombia,España,México. - 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
- En el Google Sheet, vaya a
Extensiones > Apps Script. - Borre cualquier código predeterminado y cree dos archivos:
Code.gsyprincipal.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
- Implementar el Script:
- En el editor de Apps Script, vaya a
Publicar > Implementar como aplicación web. - Configure
Ejecutar la aplicación comosu cuenta yQuién tiene accesoa cualquiera (o solo a usuarios específicos). - Guarde e implemente.
- Acceder al Web App usando la URL proporcionada tras la implementación.
- Ingresar datos de prueba:
- País:
Chile - Ciudad:
Santiago - Presionar «Enviar».
- 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.