Domesticando el formato de las hojas de datos de los formularios


Una de los pequeños detalles que me molestan de los formularios de Google y de sus hojas de datos asociadas, si es que los configuramos para que recojan las respuestas en ellas, es el hecho de que el formato de las celdas no se mantiene a medida que se van recibiendo nuevas respuestas, presentando un aspecto estándar (Arial de tamaño 10, alineación a la izquierda y en la parte inferior de la celda, etc.).

Afortunadamente, podemos solucionar este inconveniente utilizando unas cuantas líneas de código en Google Apps Script, que agregaremos a la hoja de cálculo asociada a nuestro formulario utilizando la función Herramientas → Editor de secuencias de comandos.


Concretamente emplearemos este guión:


/* Invoca la función de ajuste de formato al abrir */
function onOpen() {

  copyFormat();
}

/* Copia el formato de la 2ª fila al resto */

function copyFormat() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var lastColumn = sheet.getLastColumn();
  if (lastRow > 2) {
    sheet.getRange(2, 1, 1, lastColumn)
      .copyFormatToRange(sheet, 1, lastColumn, 3, lastRow);
  }
}


Su funcionamiento es muy simple:
  • La función copyFormat() copia el formato de la 2ª fila de la hoja de datos a todas las que se encuentran inmediatamente debajo, que son las que reciben las respuestas del formulario. Recordemos que la primera fila constituye el encabezado.
  • La función onOpen()invoca a copyFormat()cada vez que se abre o recarga la hoja de cálculo, asegurándose de este modo de que se aplique el formato correspondiente a cualquier nueva respuesta recibida.
Veamos todo el proceso con un pequeño vídeo:


En el vídeo anterior se utiliza una hoja de cálculo que recoge los datos recibidos desde un hipotético formulario cuyo propósito sería sondear de modo anónimo la opinión que tienen los alumnos de cada una de las sesiones de clase en las que participan.


Aquí tienes esta hoja de cálculo, a modo de plantilla, para que puedas revisarla detenidamente.


Tan solo tienes que hacer una copia de la hoja (Archivo → Crear una copia) para obtener versiones editables tanto de ella como de su formulario asociado, que ya podrás modificar de acuerdo a tus necesidades.

Comentarios

  1. Excelente aporte me viene muy bien para mis clases

    ResponderEliminar
  2. Estimado a partir del ejemplo he añadido dos pestañas a la hoja para poder sistematizar los resultados a medida que van llegando las respuestas. Empleo en primer lugar IMPORTRANGE y luego creo intervalos. Sin embargo es para las respuestas totales. ¿Habría alguna forma en la que pueda analizar las respuestas de una asignatura en particular? Comparto la hoja https://docs.google.com/spreadsheets/d/1e9gQzf4rBSGB2jCDtx-l3R3gZZlj2dfKU9RWu0zEe0c/edit?usp=sharing

    ResponderEliminar
  3. Hola, Gino. He intentado acceder a la hoja que me compartes pero no tengo permisos. En principio lo inmediato es utilizar las funciones de filtrado. Otras alternativas pasan por emplear tablas dinámicas o simplemente construir un panel de control para analizar los resultados mediante fórmulas de cuenta condicional y, probablemente, expresiones matriciales.

    En cualquier caso con tu comentario me has dado la idea de dedicar un artículo a este tema, espero tenerlo listo próximamente.

    ResponderEliminar
  4. Hola,

    Creo que con las líneas de código en Google Apps Script que se facilitan no tienen en cuenta el ancho de la fila o no soy capaz de configurar :P

    ¿Me pueden ayudar y facilitar la línea de código que debo poner para cuando entre una nuevo formulario respecte el tamaño de la fila de 21 píxeles?

    Gracias

    ResponderEliminar
  5. Mil disculpas, por alguna razón tu comentario se me había pasado 🙄. Quizás quieras echarle un vistazo a FRC, una evolución de este script: https://tictools.tk/formresponsecontrol

    ResponderEliminar

Publicar un comentario