Search the knowledge base, browse our resources, and visit our forum for more detailed information
Read in English | Lire en français | اقرأ باللغة العربية Última actualización: 2 de diciembre de 2021
Algunos formularios avanzados pueden requerir que se realice un cálculo interno como parte del formulario (en lugar de después durante el análisis). Esto se puede hacer agregando un Cálculo y escribiendo la expresión matemática en el campo de etiqueta de la pregunta.
Este artículo proporciona instrucciones paso a paso sobre cómo agregar cálculos mientras usas el editor de formularios de KoboToolbox (Formbuilder) o descargándolo y agregándolo directamente al XLSForm.
Para ver una lista completa y detallada de todas las funciones, visita la excelente documentación de Funciones XPath de ODK.
Paso 1: Agrega una pregunta de cálculo

Paso 2: Escribe tu fórmula de cálculo donde normalmente escribirías tu pregunta.

Nota:
Tu pregunta de cálculo no se mostrará al realizar la entrada/recolección de datos, ya sea en KoboCollect o Enketo. Sin embargo, se mostrará al ver los datos en la vista de tabla o en la versión descargada.
Debes seguir reglas similares a las de los XLS Forms (consulta nuestra sección de reglas a continuación).
Recomendamos este enfoque cuando trabajas con funciones de cálculo más avanzadas.
Los XLS Forms permiten el uso de la función de cálculo en diferentes tipos de preguntas.
Puedes imitar el enfoque utilizado en el editor de formularios donde la pregunta no se mostrará en la recolección de datos simplemente definiendo el tipo de pregunta como “calculate” y luego escribiendo tu cálculo dentro de la columna calculate.
Puedes usar “calculate” para diferentes tipos de preguntas, y en este caso la pregunta se mostrará durante la recolección de datos. Puedes elegir hacer que esa pregunta sea de solo lectura para que nadie pueda cambiar la entrada. Los tipos de preguntas que hemos probado con este enfoque incluyen:
a. integer (solo tomará funciones de cálculo numérico)
b. text (solo tomará funciones de cálculo de cadena)
c. note (solo tomará referencias de preguntas y no funciones de cálculo)
d. date (solo tomará funciones de cálculo de fecha)
e. time (solo tomará funciones de cálculo de hora)

No puedes usar cálculos numéricos y de cadena dentro de la misma pregunta
Tus cálculos numéricos seguirán la regla BODMAS al aplicar cálculos, es decir, el orden de ejecución de los cálculos será Paréntesis, Divisiones, Multiplicaciones, Sumas y luego Restas (Siempre recuerda esto al ordenar una pregunta)
Las preguntas de cálculo que hacen referencia a otras preguntas no deben colocarse en el mismo grupo que las preguntas de referencia, ya que el cálculo no aparecerá a menos que te muevas del grupo
Al hacer referencia a una pregunta en un cálculo, debes indicarla como ${Pregunta} donde pregunta es el nombre de la pregunta
Puedes «forzar» que un cálculo se evalúe estableciendo “required” en TRUE
(Siéntete libre de recomendar adicionales y las actualizaremos)


Recomendado para usuarios/as avanzados/as
Digamos que tienes una pregunta como P1 ¿Tienes una pregunta? Respuestas Sí=1 No=2 No sé=999
En este caso, es posible que desees crear una P1 ficticia justo después de P1 para tener en cuenta las diferencias en la codificación y definir el equivalente matemático. Entonces crearás una pregunta de cálculo P1d (_nota: esta es mi propia convención de nomenclatura, d significa dummy/ficticia) y definirás el valor predeterminado como 0 pero escribirás la fórmula como If (${P1}=1,1,0)
Observa que en mi formulario de prueba logré crear la situación y los datos aparecen como codificados para P1 y como calculados para el significado matemático para P1d. Este debería ser el significado que se pretende con tu puntuación. Puedes hacer esto para cálculos como riqueza donde Sí y No podrían significar un valor diferente en diferentes países.
Una vez que hagas esto para todas tus preguntas, puedes agregar una pregunta de cálculo que sume todas las ficticias como:
${P1d}+${P2d}+ etc
Did you find what you were looking for? Was the information clear? Was anything missing?
Share your feedback to help us improve this article!
KoboToolbox is maintained by Kobo Inc.