Rank
Les questions de classement permettent aux répondants d’ordonner un ensemble de choix par préférence ou priorité.
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
| type | name | label |
|---|---|---|
| rank priorities | main_priority | Classez ces besoins communautaires du plus au moins important |
Les choix sont définis dans la feuille choices tout comme pour select_one :
survey :
| type | name | label |
|---|---|---|
| rank priorities | main_priority | Classez ces besoins du plus au moins important |
choices :
| list_name | name | label |
|---|---|---|
| priorities | water | Eau potable |
| priorities | health | Soins de santé |
| priorities | education | Éducation |
| priorities | roads | Routes |
| priorities | electricity | É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 :
| type | name | label | calculation |
|---|---|---|---|
| rank priorities | main_priority | Classer les besoins communautaires | |
| calculate | top_priority | selected-at(${main_priority}, 0) | |
| calculate | second_priority | selected-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 :
| type | name | label | calculation |
|---|---|---|---|
| calculate | first_ranked | rank-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 :
- Classement de priorités — demander aux communautés de classer les besoins de développement
- Ordre de préférence — classer les fonctionnalités de produits, les attributs de service ou les options de politique
- Ordonnancement d’étapes d’examen — disposer les étapes d’un processus dans l’ordre
- Sélection des N premiers — combiné avec
selected-at()pour extraire uniquement les 1, 2 ou 3 premiers choix
Bonnes pratiques
- Gardez la liste courte (3-7 éléments) — le classement devient cognitivement difficile au-delà de 7-8 choix.
- Utilisez des étiquettes de choix claires et mutuellement exclusives pour éviter la confusion sur ce que signifie “premier”.
- Ajoutez un texte d’aide expliquant la direction du classement (ex. : “Faites glisser pour ordonner : premier = le plus important”).
- Validez avec
count-selected(.) = xsi 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.