Le type de question rank présente une liste de choix que le répondant doit faire glisser pour les ordonner (ou classer du premier au dernier). Il stocke le résultat sous forme de liste séparée par des espaces des valeurs de choix dans l’ordre sélectionné, avec le choix de plus haute priorité en premier.

Spécification XLSForm de base

typenamelabel
rank prioritiesmain_priorityClassez ces besoins communautaires du plus au moins important

Les choix sont définis dans la feuille choices tout comme pour select_one :

survey :

typenamelabel
rank prioritiesmain_priorityClassez ces besoins du plus au moins important

choices :

list_namenamelabel
prioritieswaterEau potable
prioritieshealthSoins de santé
prioritieseducationÉducation
prioritiesroadsRoutes
prioritieselectricityÉlectricité

Format de la valeur stockée

La valeur stockée est une liste séparée par des espaces des valeurs de choix dans l’ordre de classement (premier = priorité la plus haute) :

  water education health roads electricity
  

Extraire les positions de classement

Utilisez selected-at() pour obtenir le choix à un rang spécifique :

typenamelabelcalculation
rank prioritiesmain_priorityClasser les besoins communautaires
calculatetop_priorityselected-at(${main_priority}, 0)
calculatesecond_priorityselected-at(${main_priority}, 1)

selected-at(${main_priority}, 0) retourne la valeur placée en premier (index 0 = rang supérieur).

Utiliser rank-index() avec les groupes de répétition

Lorsque rank est utilisé dans un groupe de répétition, rank-index() permet de référencer le rang ordinal depuis l’extérieur de la répétition :

typenamelabelcalculation
calculatefirst_rankedrank-index(1, ${score})

Consultez Fonctions — Fonctions de champ répété pour les détails complets sur rank-index() et rank-index-if().

Utilisations

Les questions de classement sont couramment utilisées pour :

  1. Classement de priorités — demander aux communautés de classer les besoins de développement
  2. Ordre de préférence — classer les fonctionnalités de produits, les attributs de service ou les options de politique
  3. Ordonnancement d’étapes d’examen — disposer les étapes d’un processus dans l’ordre
  4. Sélection des N premiers — combiné avec selected-at() pour extraire uniquement les 1, 2 ou 3 premiers choix

Bonnes pratiques

  1. Gardez la liste courte (3-7 éléments) — le classement devient cognitivement difficile au-delà de 7-8 choix.
  2. Utilisez des étiquettes de choix claires et mutuellement exclusives pour éviter la confusion sur ce que signifie “premier”.
  3. Ajoutez un texte d’aide expliquant la direction du classement (ex. : “Faites glisser pour ordonner : premier = le plus important”).
  4. Validez avec count-selected(.) = x si vous devez vous assurer que tous les choix sont classés.

Limitations

  • Le widget glisser-pour-classer nécessite un écran tactile ou une souris — il peut ne pas fonctionner correctement dans les environnements clavier uniquement.
  • Sur certains clients mobiles plus anciens, le widget de classement peut se replier sur une interface de saisie numérotée.
  • Vous ne pouvez pas classer partiellement (c.-à-d. classer seulement certains choix) — tous les choix doivent être ordonnés.
Cette page vous a-t-elle été utile ?