Calculation and statistics in a form

Bonjour à tous,

J’ai deux questions et j’aimerais avoir votre aide pour trouver des solutions. J’ai créé un formulaire avec une question qui fonctionne comme suit :

Lorsque je saisis le nombre d’arbres dans un carré, la question suivante se répète autant de fois que le nombre d’arbres que j’ai entré. Par exemple, si je saisis 100 arbres, 100 questions apparaissent pour demander le nombre de fruits sur chaque arbre.

La première question, est de savoir, comme ajouter le numéro d’ordre de l’arbre à la question répété ?

Et la deuxième,
Comment obtenir les résultats suivants, directement dans mon questionnaire :

  • Le nombre d’arbres (parmi les 100) ayant moins de 10 fruits.
  • Le nombre d’arbres (parmi les 100) ayant entre 10 et 50 fruits.
  • Le nombre d’arbres (parmi les 100) ayant plus de 50 fruits.

Merci d’avance pour votre aide !

You could pack all questions inside the loop additionally into a group.
You can then reference the loop-count in the label for this group, based on a calculate variable with the position value.

1 Like

Salut @ism.yeo et bienvenu sur le forum!

Je te proposes de suivre les 3 étapes suivantes:
1- Paramétrer le nombre de répétitions équivalent à chaque arbre du carré

  • Sous xlsform, tu dois ajouter une colonne repeat_count
  • Sur la ligne correspondant au groupe répété, tu appelles la variable de la question “Nombre d’arbre dans le carré” (ex. ${nb_arbre})
    Ta question se répètera autant de fois que le nombre d’arbres
    Pour plus d’infos: Grouping Questions and Repeating Groups — KoboToolbox documentation

2-Ajouter le numero de l’arbre pour chaque répétition
Voici un lien qui explique comment faire Referencing repeat the iteration number within a question in a repeat group - #2 by wroos, mais je te l’explique tout de même:

  • Tu dois récupérer l’index de la répétition, pour cela, tu dois ajouter une ligne calculate et tu donnes un nom à la variable. Dans la colonne calculation, tu ajoutes ‘position(..)’
  • Dans le label de ta question “Nombre de fruits sur l’arbre X”, tu changes X par la variable que tu viens de nommer
    Le numero de l’arbre changera alors en fonction du numero de répétition

3-Donner les résultats

  • Dans ton groupe répété tu crées 3 questions calculate qui récupèrent chacun une certaine valeur selon si l’arbre contient moins de 10 fruits, 10 à 50 fruits, ou plus de 50 fruits
  • Par exemple la première question calculate pourrait être nommée “moins_10_fruits”, dans la colonne calculate du fais une expression conditionnelle: ‘if(${nb_fruit}<10, 1, 0)’. La question renvoi donc la valeur 1 si l’arbre contient moins de 10 fruits, autrement elle renvoi 0
  • Tu faits ça pour les 3 cas (3 questions calculate)
  • Tu crée ensuite 3 autres questions calculate qui calcule chacun le nombre d’arbre selon les 3 cas de figure. Tu nommes par exemple pour le premier cas “total_moins_10_fruits”. Dans calculate tu utilises alors l’expression ‘sum(${moins_10_fruits})’
  • Ensuite tu utilises une question note pour afficher le résultat pour chaque cas en faisant appel à la variable correspondante dans le label de la question. Exemple ‘Nombre d’arbres avec moins de 10 fruits: ${total_moins_10_fruits}’

J’espère que ça peut t’aider, sinon je te conseille de partager ton fichier xlsform pour que la communauté puisses mieux t’orienter.

1 Like

Salut @Mandranto !

Je tiens vraiment à te remercier pour ta réponse super claire et détaillée ! Je suis vraiment très content d’avoir trouvé la solution grâce à toi. Ça a parfaitement marché de mon côté. :raising_hands:

Il y a seulement le symbole && qui n’est pas passé, je l’ai juste remplacé par and et ça marché.

À bientôt et encore merci ! :blush:

1 Like