Cómo corregir datos de Google Forms

¿Necesitas eliminar datos introducidos erróneamente en un cuestionario creado con Google Forms?

¿Todavía no ha implementado Google la posibilidad de modificar las pruebas que realizar en los Formularios de Google?

No te preocupes, hemos actualizado a la versión 3 el script que te permitirá hacerlo 👍

Proceso

1. Evitar nuevas respuestas

De modo que no se pierden datos durante el proceso.

Accede a las respuestas de tu formulario y desactiva la opción “Se aceptan respuestas”

evitar sigan introduciendo respuestas en los formularios de google

No sufras… será sólo unos segundos y puedes dejar una “nota” a tus visitantes

Pop-ups con mensajes de aviso a los usuarios de google formularios

2. Exportar los datos

Generaremos un fichero CSV con los datos de todas las respuestas que ya tenemos almacenadas

Exportar las respuestas de una encuentas de google forms

3. Elimina las respuestas

Tranquilo, las tenemos en el fichero que hemos exportado en el paso anterior.

Para hacerlo utiliza la siguiente opción del menú de opciones

eliminar todas las respuestas anotadas en google forms

4. Deja que sigan contestando

No enfademos a nadie, nuestros visitantes pueden seguir contestando a partir de ahora sin problemas y no volveremos a molestarles más.

Activa otra vez la posibilidad de responder

habilitar la posibilidad de seguir contestando un formulario web

5. Corrige los datos

Edita las contestaciones que exportamos en el paso 2 (inserta nuevas entradas, borra las que no sirvan, edita aquellas con datos incorrectos, …) sobre el fichero de texto que has exportado (respetando la “sintaxis”, no borres las comillas y/o los separadores).

6. Descarga el script

Puedes obtener una copia actualiza de Github:

  • usando GIT
  • descargando el código como un fichero ZIP

NOTA: si alguien necesita ayuda para descargar el código o no está acostumbrado a obtener contenidos de GitHub que lo indique en los comentarios y lo explico paso a paso 👍

7. Configura el programa

Editar el script para

  • indicar la url del formulario desde el que introducen las respuestas nuestros usuarios (sí, el que usamos para obtener los nombres de los campos)
  • indicar la ruta al fichero que contiene el “export” de las respuestas

Por si te sirve de orientación, aquí se encuentra la información que debes modificar

modificar script python

8. Lanza el script

Un python2 ./importar.py debería ser suficiente ;))

IMPORTANTE A día de hoy, el script no gestiona formularios divididos en varias páginas por lo que deberás desactivar dicha opción en tu formulario para poder utilizar el script tal y como se encuentra ahora mismo.

9. Comprueba los resultados

Si has conseguido seguir todos los pasos hasta aquí (sin volverte loco) y no aparece ningún error (sólo un “puntito” por cada una de las respuestas del fichero) es porque eres un máquina todo ha salido bien.

Ya sólo te quedaría abrir el formulario en Google Drive y comprobar que el contador de respuestas (y el resumen automático de Google) incluye todas las respuestas que acabamos de enviarle.

Conclusión

Nueva versión (y ya es la tercera) del script en Python que te permitirá modificar los datos de cualquier formulario de Google y que quede reflejado en las estadísticas y gráficas automáticas que ofrece la herramienta.

Me alegra (y enorgullece) que, después de tanto tiempo (prácticamente 4 años), siga siendo de utilidad y que os animéis a contactar vía soporte técnico para comentar vuestras dudas y problemas puesto que

  • me ayuda a conocer los problemas que plantea
  • introducir mejoras como las presentadas en esta nueva versión

Desde aquí daros las gracias y animaros a seguir comentando todo aquello que consideréis que merece la pena mejorar 👍

 

24 comentarios en “Cómo corregir datos de Google Forms

  1. Damu dijo:

    Hola, yo otra vez, Primero que todo, gracias por publicar esto tan pronto
    ahora mi problema es que no se como descargar la nueva versión del script.
    Podrías por favor explicarme como hacerlo

    • Te he enviado cómo descargar un repositorio de GitHub por correo electrónico, no obstante, dejaré constancia de dónde se encuentra la opción en los comentarios por si a alguien más le resulta de utilidad.
      Gracias por preguntar la duda y suerte con el proyecto que tienes entre manos 👍

      descargar proyecto github

  2. Xavi dijo:

    Problema:

    Después de lanzar tu script,
    obtengo este mensaje en la consola de Línux
    en cuatro líneas consecutivas que transcribo tal cual aparecen:

    File “importar.py”, line 82
    print “–”
    ^
    SyntaxError: Missing parentheses in call to ‘print’

    Desde la consola de Windows 7,
    también obtengo ese mismo mensaje
    o uno muy parecido

    ¡Gracias por tu ayuda”

    Xavi

    • Siento oirlo Xavi no obstante parece deberse a que estás usando Python v3 (y el script es para la versión 2).
      En Linux resulta sencillo cambiar entre ellos (basta utilizar python2 o python3 según el caso desde la terminal) en Windows tendría que mirarlo por lo que, si alguien está aconstumbrado a hacerlo y nos comenta la forma más sencilla, le estaremos realmente agradecidos 👍

  3. Xavi dijo:

    ¡Otra vez muchas gracias por tu respuesta y ayuda!

    Cuando tenga un poquito de tiempo,
    volveré a probar y diré algo.

    (En Windows 7 también utilicé Python v3.)

  4. Xavi dijo:

    ¡Funciona!

    Ya sabes cuánto se alegra uno cuando finalmente funciona algo que se resistía; pues así estoy yo de contento… gracias a ti.

    En Linux, como dijiste: simplemente usando Python 2.7.3.
    Funciona también en Windows 7 Ultimate con Service Pack 1; pero antes hay que instalar dos paquetes Python para evitar algunos errores, que aparecen en la consola que, con tu permiso, explico en algunos pasos por si puede resultar de ayuda a alguien o siente curiosidad.

    Utilizaré Python 2.7. para Windows.

    • Siguiendo este tutorial, instalo Python-2.7.13.msi, que descargo desde aquí.
    • Siguiendo tus instrucciones, me bajo tu script (importar.py) y también el fichero de texto correspondiente a los formularios Google que yo quería modificar (en mi caso GUÀRDIA.csv).
    • Según el tutorial antedicho, ejecuto tu script debidamente modificado en el apartado de la ruta para que apunte a GUÀRDIA.csv, ya modificado convenientemente.
    • Aparece en la salida de la consola el primer error (transcribo sólo la última línea):

    ImportError: No module named requests

    Esta línea dice que no existe ningún módulo llamado requests.

    Para solucionar este problema, busco por Internet alguna solución, que encuentro aquí, en donde se explica cómo instalar pip (una herramienta escrita en Python para facilitar la instalación de paquetes en diversos sistemas operativos).
    Una vez instalada pip, instalo el paquete requests según las instrucciones que aparecen aquí, concretamente en la respuesta que da rprez.

    • Instalado el paquete requests, ejecuto otra vez tu script.
    • Aparece el segundo error (también transcribo sólo la última línea)

    ImportError: No module named lxml

    Lógicamente, procedo ahora a instalar el paquete lxml como he hecho con el de requests anteriormente; y una vez instalado ejecuto nuevamente tu script.

    • Aparece el tercer y último error: en la salida de la consola se muestra la ruta al fichero GUÀRDIA.csv, una ruta con signos raros y diferentes de la que en realidad figura en el script importar.py. Sospecho que es un problema que tiene que ver con la codificación; así que renombro GUÀRDIA.csv por GUARDIA.csv (sin acento) y hago el correspondiente cambio en la ruta dentro del script importar.py, en la que cambio también GUÀRDIA.csv por GUARDIA.csv.
    • Ejecuto nuevamente tu script. Ahora el script funciona perfectamente y se llevan a cabo los cambios que quería en los formularios.

    ¡Gracias de nuevo! Tienes mi dirección electrónica; si necesitas algo de Castellón, me lo puedes pedir por Internet; y si vienes por aquí y te apetece tomar una cerveza, estás invitado.

    ¡Un abrazo y gracias!

    • Toda colaboración es bien recibida, agradecida y aplaudida: ¡Gracias Xavi!

      Te contacto por privado 👍

      Acabas de hacerme ver qué no incluí las dependencias para poder instalar todo lo necesario a través de pip 😅

      Anoto corregir el despiste, gracias nuevamente Xavi

  5. Me aparece un error al tratar de importar los datos, a ver si puedes darme una pista;

    D:\>importar.py
    Traceback (most recent call last):
    File “D:\importar.py”, line 92, in
    setRespuestas()
    File “D:\importar.py”, line 77, in setRespuestas
    payload[header[colnum]]=col
    IndexError: list index out of range

  6. Marta dijo:

    Hola!

    Escribí ayer un comentario con una consulta en este post: https://andalinux.wordpress.com/2015/08/10/actualizar-encuestas-recogidas-con-google-drive/

    En principio, todo lo que puse ya lo tengo solucionado. Por algún motivo, me estaba leyendo mal los nombres de la cabecera de las preguntas y eso estropeaba todo.

    Mi problema ahora es el siguiente: todo se ejecuta sin problemas y se me añaden el número de respuestas que tengo en el fichero, pero las columnas con los datos están vacías.

    ¿Alguna idea de cual podría ser el problema?

      • Me alegra que lo haya podido resolver al tiempo que le pido disculpas por no haber podido responder.

        Tenía anotada la tarea para este fin de semana pues, materialmente, no podía sentarme delante del ordenador a hacer pruebas con el script hasta hoy.

        ¿Tuvo que realizar algún cambio al script o haría alguna recomendación que pueda ser de utilidad a otros usuarios que lo puedan necesitar?

        Gracias y disculpe el no haber podido (en esta ocasión) ser de utilidad.

        Salu2

        • Marta dijo:

          No, al final no tuve que hacer ninguna modificación al script. Uno de mis problemas era que leía mal la cabecera y entendía que cada una de las letras del primer campo era una columna distinta.
          Lo solucioné cambiando el archivo con los datos, de tal manera que mi primera línea era: “Marca temporal, entry,xxxxxxxxxxxx, entry.xxxxxxxxxxxxxxx”

          De todas formas, la información de la marca temporal la ignora y se rellena con el momento de ejecución del script.

          Un consulta, que no sé si puede resultar interesante tener en cuenta o no, en mi formulario, las repuestas están identificadas también por un correo electrónico que se rellena automáticamente porque es un formulario cerrado. ¿Cómo podría incluir también ese dato? Porque no dispongo de campo para introducirlo.

          Un saludo

        • Gracias por los detalles Marta, seguro que a la compañera Eli y a mí mismo (que le voy a echar una mano) le va a resultar de mucha utilidad.

          Anoto el tema del correo (que resulta realmente interesante) para la próxima revisión, que pueda hacerle al código, ver cómo lo podríamos incluir 👍🏻

        • Eli dijo:

          Hola! No puedo responder al comentario de Marta. El problema que yo tengo es que tampoco sé depurar el código del script, no me apaño con el IDLE y no sé cómo ir paso a paso para ver dónde pasa lo que no quiero que pase. 😦

  7. Eli dijo:

    Hola!

    Pues yo ya llevo una semana con el temita… No había usado jamás Python. Me lo descargué, primero una versión, luego otra. Problemas como Xavi del request y el lxml… importar todo el pip.

    Y siempre el mismo error, el de las cabeceras de Hande:

    payload[header[colnum]]=col
    IndexError: list index out of range

    Me recorrí todas las cabeceras quitando TODAS las “,” (porque mis textos tenían comas…). Tenía columnas con el mismo texto, así que también los cambié. Probé quitando y poniendo el “Timestamp”… y nada. Hoy descubro este post de hace un año (todo lo probé con la versión de 2013) y veo que no funciona con varias hojas o secciones… también lo he quitado.

    Y sigo teniendo el mismo problema de las cabeceras 😥 ya no sé qué más hacer…

    Ayuda informático de guardia!!! 😀

    Por cierto, fantástico que sigas trabajando en esto 😉

    Saludos,

    Eli

  8. Buenos días, en primer lugar felicidades por el trabajo del script.

    Tengo un problema con las cabeceras del CSV, son muy largas y con símbolos de puntuación extraños (acentos, la letra ñ…)

    Cuando ejecuto el programa me añade las filas pero no sabe leer las cabeceras y las deja en blanco.

    He probado a poner los acentos y Ñs a mano en el csv y tampoco los lee.

    AQUÍ LA MUESTRA DE MIS CABECERAS INFERNALES:

    Marca temporal,”0. Residencia”,”1. Edad”,”2. Sexo”,”3. Titulación Actual”,”4. Lugar de trabajo (indicar PROVINCIA)”,”5. Categoría profesional “,”6. Horario del Curso”,”6.1 Porcentaje de la jornada laboral que abarca el curso “,”7. Tamaño de la empresa del participante “,”1. Organización del curso [1.1 El curso ha estado bien organizado (información, cumplimiento fechas y de horarios, entrega material)]”,”1. Organización del curso [1.2 El número de alumnos del grupo ha sido adecuado para el desarrollo del curso]”,”2. Contenidos y metodología de impartición [2.1 Los contenidos del curso han respondido a mis necesidades formativas]”,”2. Contenidos y metodología de impartición [2.2 Ha habido una combinación adecuada de teoría y aplicación práctica]”,”3. Duración y horario [3.1 La duración del curso ha sido suficiente según los objetivos y contenidos del mismo]”,”3. Duración y horario [3.2 El horario ha favorecido la asistencia al curso]”,”4. Formadores [4.1 La forma de impartir o tutorizar el curso ha facilitado el aprendizaje]”,”4. Formadores [4.2 Conocen los temas impartidos en profundidad]”,”4. Tutores [4.1 La forma de impartir o tutorizar el curso ha facilitado el aprendizaje]”,”4. Tutores [4.2 Conocen los temas impartidos en profundidad]”,”5. Medios didácticos (guías, manuales, fichas…) [5.1 La documentación y materiales entregados son comprensibles y adecuados]”,”5. Medios didácticos (guías, manuales, fichas…) [5.2 Los medios didácticos están actualizados]”,”6. Instalaciones y medios técnicos (pizarra, pantalla, proyector, TV, vídeo, ordenador, programas, máquinas, herramientas…) [6.1 El aula, el taller o las instalaciones han sido apropiadas para el desarrollo del curso]”,”6. Instalaciones y medios técnicos (pizarra, pantalla, proyector, TV, vídeo, ordenador, programas, máquinas, herramientas…) [6.2 Los medios técnicos han sido adecuados para desarrollar el contenido del curso (ordenadores, pizarra, proyector, TV, máquinas)]”,”7. Sólo cuando el curso se ha realizado en la modalidad a distancia, teleformación o mixta [7.1 Las guías tutoriales y los materiales didácticos han permitido realizar fácilmente el curso (impresos, aplicaciones telemáticas)]”,”7. Sólo cuando el curso se ha realizado en la modalidad a distancia, teleformación o mixta [7.2 Se ha contado con medios de apoyo suficientes (tutorías individualizadas, correo y listas de distribución, teleconferencia, biblioteca virtual, buscadores…)]”,”8. Mecanismos para la evaluación del aprendizaje [8.1.Se ha dispuesto de pruebas de evaluación y autoevaluación que me permiten conocer el nivel de aprendizaje alcanzado]”,”8. Mecanismos para la evaluación del aprendizaje [8.2 El curso me permite obtener una acreditación donde se reconoce mi cualificación]”,”9. Valoración general del curso [9.1 Puede contribuir a mi incorporación al mercado de trabajo]”,”9. Valoración general del curso [9.2 Me ha permitido adquirir nuevas habilidades/capacidades que puedo aplicar al puesto de trabajo]”,”9. Valoración general del curso [9.3 Ha mejorado mis posibilidades para cambiar de puesto de trabajo en la empresa o fuera de ella]”,”9. Valoración general del curso [9.4 He ampliado conocimientos para progresar en mi carrera profesional]”,”9. Valoración general del curso [9.5 Ha favorecido mi desarrollo personal]”,”10. Grado de satisfacción general con el curso”,”11. Si desea realizar cualquier sugerencia u observación, por favor, utilice el espacio reservado a continuación”,”Fecha de cumplimentación del cuestionario”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.