¿Hay alguna forma de vincular una pregunta de estilo "Elegir de una lista" en un formulario a una lista de datos (por ejemplo, en una hoja de cálculo)?
Esto significaría que a medida que se agregan nuevas opciones a la lista en la hoja de cálculo (o en cualquier otro lugar donde sea posible alojar la lista) aparecerán automáticamente como una opción para seleccionar en el formulario en el futuro.
En mi caso, significaría que los encuestados que completen el formulario podrán seleccionar qué voluntarios estuvieron presentes en esa sesión de voluntariado en particular de la lista completa de voluntarios (en lugar de escribir cada nombre individualmente), pero dado que los voluntarios se unen esporádicamente, sería de gran ayuda si fuera posible agregarlos a las opciones de la lista automáticamente en lugar de agregar una nueva opción manualmente cada vez.
No tengo idea de si esto es posible, pero realmente agradecería si alguien pudiera sugerir una forma de hacerlo.
Respuestas:
La respuesta de Tom Horwood funciona muy bien, pero solo después de corregir un error importante en su código. Todas las referencias a
LIST_DATA
elementos deben hacerse usando el índicej
(noi
). No tengo suficiente karma para comentar sobre la publicación de Tom, así que aquí está el monty completo:A continuación se muestra el código corregido. También he cambiado el nombre de los
LIST_DATA
elementos para que sean un poco más descriptivos. También muestra cómo Tom había pensado en el futuro (¡felicitaciones!) Y proporcionó la posibilidad de actualizar más de un elemento de formulario con el contenido de más de una lista de hojas de cálculo.Para resumir cómo hacer que esto funcione (para aquellos, como yo, que están usando Google Apps Script por primera vez). Me he referido a los nombres de las hojas y los nombres de los campos de formulario en el fragmento de código anterior para que sea más comprensible:
En la hoja de cálculo asociada con su formulario:
TaskCategories
). Coloque su lista de elementos allí en la primera columna de esa hoja de trabajo. Elimine todas las columnas y filas adicionales en esa hoja (esto puede o no ser necesario, no lo he probado)FORMID
deberá cambiarse a la ID de su formulario. La ID es el código largo (entre barras diagonales) en la barra de URL de su navegador para el formulario deseado.LIST_DATA
variable deberá modificarse para adaptarse a su forma y sus necesidades. Notarás que cada elemento enLIST_DATA
es una tupla deformFieldTitle
yworksheetName
. El primero es el nombre del campo de formulario (que debe ser un tipo de campo "elegir de la lista") - en el editor de formulario se llamaQuestion Title
. Este último es el nombre de la hoja de trabajo que creó anteriormente que contiene la lista de elementos con los que desea llenar el campo. Agregue tantas de estas tuplas a la lista como necesite.Si vuelve a la hoja de cálculo, debería ver un nuevo elemento del menú titulado
List Updater
. Tiene un elementoUpdate Lists
que debe ejecutar cada vez que cambia cualquiera de las hojas de trabajo de su lista (s): actualizará el formulario en consecuencia.También noto, para beneficio de los lectores, que FormRanger no funciona con las nuevas hojas de cálculo de Google. Los desarrolladores de FormRanger dicen lo mismo en su sitio web. Quizás / con suerte eso cambiará en el futuro, pero a la fecha de esta publicación, el código anterior funciona para mí y lo estoy usando en forma desplegada para un cliente.
fuente
Puede hacer esto con un formulario normal y un script, utilizando Form.getItems (), busque el elemento en bucle, luego Item.asListItem (). SetChoices (...)
Aquí hay un código de muestra, que he usado en esta hoja y formulario de ejemplo
fuente
Existe un complemento de Formularios de Google llamado Valores de formulario que al menos ofrece una forma semiautomática: cada vez que cambie sus respuestas en la hoja de cálculo, debe volver a llenar manualmente las opciones en su respuesta, pero al menos es bastante sencillo de hacer .
fuente
No puede hacer esto con los formularios regulares de Google.
Sin embargo, puede crear su propia GUI utilizando Google Apps Script , y específicamente el UIService . Sin embargo, tenga en cuenta que tendrá que volver a crear la GUI completa; no puede usar partes de su formulario existente.
Alternativamente, puede usar el GUI Builder . Es un editor WYSIWYG para las GUI de Google Apps Script.
Cualquiera que elija, debe estar preparado para hacer un poco de programación para lograr lo que desea.
fuente
Hay un script para eso, llamado FormRanger: https://docs.google.com/document/d/1YvgrxeZJNb2CBpSra1j59Mh1bVpk4vBQYLOoyVjby7A/edit?hl=en&forcehl=1
fuente
Hay una manera de automatizar la actualización de la lista configurando un Trigger [ 1 ] [ 2 ] para
Update Lists
.La ruta es Editor de secuencias de comandos -> Recursos -> Activadores del proyecto actual
A continuación,
add a new trigger
. Para los ejemplos dados, puede configurarupdatesList
para ejecutarfrom spreadsheet
yOn form submission
. De esta manera, la funciónonOpen
no será necesaria.fuente
Sí, se puede hacer, pasé una buena parte del día buscando la respuesta y luego desarrollándola para mis propósitos, pero se puede hacer.
Mi necesidad era tener un formulario de inscripción de voluntarios para que las personas marquen varias casillas de una lista de áreas en las que les gustaría ser voluntario. Por lo tanto, una pregunta con varios cuadros, el problema es que la hoja de cálculo de Google resultante simplemente enumeró todo lo que verificaron en una celda. Hubo 21 opciones de voluntariado, por lo que claramente no sería un formato útil para esa información. Quería hacer lo que entendí que dijiste que querías, quería tener una columna con cada una de las 21 opciones en una columna propia. Luego, junto a su Marca de tiempo (formulario generado), nombre, correo electrónico y teléfono, hay 21 columnas con "sí" o en blanco. El encabezado de la columna es cada opción que podrían elegir. Algunos podrían preguntarse por qué no solo tienen 21 preguntas con "sí" o "no".
Primero tenga en cuenta que cuando alguien completa un formulario de Google, la hoja de cálculo resultante inserta una fila en lugar de agregar los datos a la siguiente fila vacía. Esto significa que cualquier fórmula que estaba en la fila acaba de ser derribada y los nuevos datos de la fórmula no tienen fórmula los dos siguientes para que funcione con los datos de entrada. Para superar esto, agregué una hoja a la hoja de cálculo (libro de trabajo). Utilicé información de brettathds en http://productforums.google.com/forum/#!topic/docs/dlW6U6cHuKw . Por lo tanto, inserté la siguiente fórmula en la celda A1 de esta segunda hoja: = ARRAYFORMULA (Hoja1! A1: A). Hice lo mismo para cada columna a través de la columna E. La columna E tiene la pregunta con las 21 casillas de verificación.
Todavía en la segunda hoja, la fila 1 de las columnas FY tenía encabezados idénticos al texto en cada opción de la casilla de verificación de la lista de áreas que están dispuestos a ser voluntarios. Luego, la Columna Z fue la siguiente y última pregunta en el formulario, fue una breve pregunta de texto que se tituló "Comentarios adicionales". Para esa columna utilicé el = ARRAYFORMULA (Sheet1! F1: F) Hice esto como una pregunta separada en lugar de utilizar la opción "otro" al final de las preguntas de la casilla de verificación, ya que no parecía haber una buena manera de sacar eso datos en la hoja de cálculo.
Ahora a la parte que responde cómo obtiene la información de la celda en la columna E (que podría tener hasta 21 elementos enumerados) para separar las columnas con "sí" o simplemente en blanco. La fórmula en F2 en la segunda hoja es = iferror (if (search (F $ 1, $ E2)> 0, "Yes",)) Esta fórmula busca ver si se encuentra el texto exacto en el encabezado de columna (F1) en E2, si es así, devuelve un "Sí", si no, lo deja en blanco.
Esta fórmula a la que se hace referencia en F2 se escribe (utilizando "$", mediante la tecla F4) para que F2 se pueda copiar / pegar en cada celda de la fila 2 desde GY (la hoja de cálculo de Google no admite la copia de fórmulas arrastrando / copiando como puede en Excel, pero se puede hacer seleccionando F2, luego CTRL + C, luego seleccione G2: Y2, luego CTRL + V). Luego, utilizo la misma metodología copia pegada F2: Y2 a F3: Y100.
Luego escondí la columna E en la segunda hoja para que la hoja de cálculo resultante fuera más compacta (evitando todo el ajuste de las respuestas largas).
Ahora estoy listo para recibir 99 voluntarios a través del formulario rápido y fácil que completan. La utilización de las opciones de filtro en la parte superior de las columnas también ayudó a ver quién estaba disponible para qué áreas.
Una frustración final que no me resolvió. Completé algunos formularios falsos para probar mis fórmulas y mi diseño, luego eliminé esas filas de la hoja de cálculo vinculada. También tuve algunas personas que completaron formularios duplicados, también eliminé sus filas. Cabe destacar que en los foros de productos, no soy el único frustrado al saber que de alguna manera Google todavía tiene los datos de prueba / falsos / duplicados conectados al "Resumen de respuestas" (que se encuentra en la pestaña "Formulario" de la hoja de cálculo). Por lo tanto, el resumen de respuestas es inútil para la precisión si se han eliminado filas para eliminar datos de formularios de prueba / falsos / duplicados.
Pero se ha logrado y estoy guardando estas notas para la próxima vez que necesite algo similar, estoy seguro de que podría hacerlo fácilmente en menos de 30 minutos la próxima vez.
Espero que esto ayude, avíseme si tiene alguna pregunta.
fuente