¿Es posible en Google Forms dar un valor único a cada fila que inserta en la hoja de cálculo y en la marca de tiempo?
google-sheets
google-forms
Toby Allen
fuente
fuente
Respuestas:
Puede hacerlo agregando un activador de secuencia de comandos.
Supongamos que su formulario actual tiene dos columnas
Timestamp
y la respuesta a una pregunta. Por lo tanto, actualmente tiene las columnas A y B con datos. Supongamos que desea que la columna C tenga su número de incremento automático.Primero debes ir a
Tools
>Script Editor
En la ventana Editor de guiones, ingrese el siguiente guión:
Guarde el script y luego vaya al
Triggers
menú y seleccioneCurrent script's triggers
Rellene los menús desplegables de la siguiente manera:
Hacer clic
Save
A continuación, guarde y cierre la ventana de Google App Script.
Ahora, cuando se envíe su formulario, completará el número de fila en la columna C junto con los datos que se han enviado a través de su formulario.
Si desea cambiar la columna en la que se guarda el número de fila, debe cambiar esta línea del script:
sheet.getRange(row,3).setValue(row);
y cambie el valor 3 al número de índice de columna correspondiente.
fuente
Además de la excelente respuesta de Barry, si desea poder eliminar filas y mantener una identificación única, puede tener una celda estática que mantenga un conteo. Luego puede usar este número e incrementarlo en cada nueva entrada a la tabla.
Entonces, la modificación sería mantener un número en algún lugar de su hoja de cálculo ('M1' en el código a continuación) y modificar el código para que se vea así:
Nuevamente, cambie la segunda última línea para cambiar dónde se ubica su ID.
fuente
Sobre la base de ambas respuestas anteriores (de Barry y Danny):
Suponiendo que la columna ID es la columna A. Elija una celda "Next ID" y configúrela con la siguiente fórmula (suponiendo que esté en "P1"):
Cree una secuencia de comandos con el editor de secuencias de comandos en el menú "Herramientas" y pegue lo siguiente:
Agregue un activador de script utilizando el menú "Activadores" en el editor de script:
fuente
Además de las respuestas anteriores: esta solución no requiere una celda de hoja de cálculo adicional.
Puede usar los controladores de eventos incorporados para enviar el formulario para obtener una identificación única. Debido a que la hoja de cálculo es solo el destino del formulario, eliminar una fila en realidad no elimina la respuesta. Con eso en mente...
EDITAR: se eliminó la necesidad de identificación y se trataron los problemas de formato de fecha.
fuente
getUniqueID
función se puede simplificar enormemente simplemente devolviendo la longitud de las respuestas hasta la fecha (eso es lo que la lógica de esta función descrita anteriormente está haciendo de una manera bastante complicada). Básicamente, una sola línea en la función:return getConnectedForm().getResponses().length;
Esta es una derivada de las otras respuestas, pero podría ser útil para futuros usuarios.
La principal diferencia es que actualizará la columna 1 en la fila activa cuando se edite esa fila, pero solo si aún no hay un valor especificado.
Debe configurar el desencadenante como se menciona en otras respuestas en la edición.
fuente
Para "¿Es posible en el formulario de Google dar un valor único a cada fila que inserta en la hoja de cálculo y en la marca de tiempo?" al tiempo que permite la eliminación de una fila en la hoja de respuestas del formulario antes de agregar una respuesta adicional sin duplicar valores, esto debería funcionar:
fuente