Extraer datos de un archivo CSV externo

Última actualización: 6 de mayo de 2026

La función pulldata() en XLSForm te permite recuperar información de forma dinámica desde un archivo CSV externo mientras completas un formulario. Esto te permite hacer referencia a conjuntos de datos existentes y extraer automáticamente los detalles relacionados, evitando que los encuestadores tengan que volver a ingresar la misma información.

Por ejemplo, puedes usar pulldata() para:

  • Completar automáticamente información relacionada: Cuando se ingresa un ID, código o clave, recuperar automáticamente los detalles vinculados, como un nombre, categoría o descripción.

  • Precargar datos de referencia: Cargar información desde archivos externos para que los encuestadores solo necesiten recolectar datos nuevos o actualizados.

Nota: La función pulldata() usa archivos CSV externos como fuente de datos. Si quieres hacer referencia a datos de otro proyecto de KoboToolbox en lugar de un archivo CSV, puedes usar conexión dinámica de proyectos.

Usar pulldata() ayuda a reducir errores, ahorra tiempo durante la recolección de datos y garantiza que los formularios se mantengan coherentes con los conjuntos de datos de referencia externos. Esta función está disponible tanto en la aplicación Android KoboCollect como en los formularios web. Recomendamos usar XLSForm para configurar la función pulldata().

Este artículo cubre los siguientes pasos para extraer datos de un archivo CSV externo:

  • Configurar tu archivo CSV externo

  • Configurar tu XLSForm

  • Cargar tu archivo CSV externo en KoboToolbox

Configurar tu archivo CSV externo

Para usar pulldata(), primero prepara un archivo CSV externo que contenga los datos de referencia que quieres recuperar. Cada fila debe representar un registro único (por ejemplo, un participante, una ubicación o un elemento), y el archivo debe incluir al menos dos columnas. Una columna debe contener la variable índice que coincida con los valores ingresados en tu formulario.

La variable índice actúa como la clave primaria que vincula tu XLSForm con el archivo CSV externo. Debe ser un identificador único que exista en ambos archivos, como un ID de participante, el nombre de un distrito u otro código de coincidencia.

Las columnas restantes pueden incluir cualquier detalle adicional que quieras recuperar, como nombres, categorías o descripciones. Asegúrate de que el archivo CSV esté limpio, con un formato consistente y guardado con la extensión .csv.

Ejemplo: eligibility.csv

ID

status

age

AH784N

eligible

19

DB839K

ineligible

37

SH849T

eligible

42

Nota: Para usar pulldata() con preguntas select_one o select_multiple, el valor en el archivo externo debe coincidir con el nombre de la opción, no con la etiqueta de la opción. Para preguntas select_multiple, enumera varios nombres de opciones separados por un espacio.

Configurar tu XLSForm

Una vez que hayas configurado tu archivo CSV externo, configura tu XLSForm de la siguiente manera:

  1. Asegúrate de que tu XLSForm incluya una pregunta que sirva como variable índice.

  2. Agrega una nueva pregunta a tu formulario para recuperar datos del archivo externo, usando uno de los dos enfoques siguientes:

    • Agrega una pregunta calculate para recuperar y almacenar valores para usarlos posteriormente en el formulario o en el conjunto de datos. Por ejemplo, puedes usarla para mostrar un valor en una nota o en la etiqueta de una pregunta, o para usar el valor en cálculos y lógica de omisión.

    • Agrega una pregunta de tipo text, integer, decimal, date, select_one o select_multiple para incluir los valores recuperados como respuestas predeterminadas en campos editables.

  3. En la columna calculation de tu nueva pregunta, usa la función pulldata() para especificar qué campo del CSV extraer. Usa la siguiente sintaxis: pulldata('csv','pull_from', 'csv_index', ${survey_index}).

    • csv es el nombre del archivo CSV, sin la extensión.

    • pull_from hace referencia a la columna de tu archivo CSV que contiene los datos que quieres importar a tu formulario.

  • csv_index es la columna de tu archivo CSV que contiene la variable índice.

    • survey_index es el nombre de la pregunta en tu encuesta que contiene la variable índice.

    hoja survey

    | type | name | label | calculation | |:———–|:——————|:——————————————-|:————-| | text | respondent_id | Respondent ID | | | calculate | eligibility_status | | pulldata(“eligibility”, “status”, “ID”, ${respondent_id}) | | note | eligibility_note | Respondent is ${eligibility_status} for the study. | | | integer | respondent_age | Respondent age | pulldata(“eligibility”, “age”, “ID”, ${respondent_id}) | | survey |

En el ejemplo anterior, el cálculo recupera el valor de la columna status del archivo eligibility.csv, en la fila donde el ID del CSV coincide con el ID ingresado en la pregunta respondent_id de tu formulario. Luego, recupera y muestra la edad del encuestado desde la columna age del archivo eligibility.csv.

Nota: Después de usar la función pulldata() para recuperar datos de un CSV externo, puedes hacer referencia a ese campo en condiciones de lógica de omisión, restricciones y etiquetas posteriores, igual que cualquier otro campo o cálculo.

Cargar tu archivo CSV externo en KoboToolbox

El último paso para vincular tu archivo CSV externo a tu formulario es cargarlo en KoboToolbox. Para hacerlo:

  1. Ve a CONFIGURACIÓN de tu proyecto y abre la ventana Media.

  2. Carga el o los archivos CSV con el nombre exacto que usaste en tu XLSForm.

  3. Implementa o reimplementa el formulario.

Upload media

Para obtener más información sobre cómo cargar archivos multimedia, consulta Importar archivos multimedia a un proyecto.

Resolución de problemas

Las fuentes no latinas o los caracteres especiales no se muestran correctamente Guarda tu archivo CSV en formato UTF-8. Esto garantiza que los dispositivos Android puedan mostrar correctamente texto no latino o caracteres especiales.

Los valores numéricos no funcionan como se espera Todos los datos extraídos de un archivo CSV se tratan como texto. Para usar estos valores como números, aplica las funciones int() o number() al valor recuperado en tu XLSForm.

Proteger datos sensibles Si tu CSV contiene información sensible que no quieres cargar en el servidor, carga un archivo CSV en blanco con tu formulario. Luego reemplázalo manualmente en cada dispositivo con el archivo CSV real. Este enfoque solo funciona con la aplicación KoboCollect.

Carga lenta del formulario con archivos grandes Si usas archivos CSV muy grandes, es posible que experimentes una carga lenta del formulario en KoboCollect o en los formularios web. Para mejorar el rendimiento, incluye solo los datos necesarios para el formulario y considera dividir un formulario grande en varios formularios, cada uno con su propio archivo CSV. También puedes dividir los archivos CSV grandes en archivos más pequeños cuando sea posible, y/o usar la columna trigger para extraer datos solo del archivo relevante y solo cuando sea necesario.

Extraer fechas de archivos CSV externos Si almacenas fechas en un archivo CSV externo y quieres extraerlas a un formulario, asegúrate de que estén en el formato AAAA-MM-DD. Si editas tu CSV en Excel, agrega una comilla simple ' delante de la fecha para evitar el formato automático de fechas en Excel.

La función pulldata() no funciona correctamente Si la función pulldata() no funciona correctamente, prueba lo siguiente:
  • Cambia el nombre de tu archivo CSV para eliminar guiones bajos o símbolos especiales.
  • Verifica que tu archivo CSV esté correctamente configurado con una variable por columna (consulta la publicación del Foro de la comunidad).
  • Verifica que estés usando la ortografía exacta para los nombres de archivos y de columnas.
  • Verifica que las celdas de tu archivo CSV no incluyan espacios adicionales antes o después del valor.