Rank
Las preguntas de rango permiten a los encuestados ordenar un conjunto de opciones por preferencia o prioridad.
El tipo de pregunta rank presenta una lista de opciones que el encuestado debe arrastrar en orden (u ordenar de alguna manera de primero a último). Almacena el resultado como una lista de valores de opciones separada por espacios en el orden seleccionado, con la opción de mayor prioridad primero.
Especificación básica de XLSForm
| type | name | label |
|---|---|---|
| rank priorities | main_priority | Clasifique estas necesidades de la comunidad de más a menos importante |
Las opciones se definen en la hoja de trabajo choices igual que select_one:
survey:
| type | name | label |
|---|---|---|
| rank priorities | main_priority | Clasifique estas necesidades de más a menos importante |
choices:
| list_name | name | label |
|---|---|---|
| priorities | water | Agua potable |
| priorities | health | Atención médica |
| priorities | education | Educación |
| priorities | roads | Carreteras |
| priorities | electricity | Electricidad |
Formato del valor almacenado
El valor almacenado es una lista de valores de opciones separada por espacios en orden clasificado (primero = mayor prioridad):
water education health roads electricity
Extracción de posiciones clasificadas
Use selected-at() para obtener la opción en un rango específico:
| type | name | label | calculation |
|---|---|---|---|
| rank priorities | main_priority | Clasificar necesidades de la comunidad | |
| calculate | top_priority | selected-at(${main_priority}, 0) | |
| calculate | second_priority | selected-at(${main_priority}, 1) |
selected-at(${main_priority}, 0) devuelve el valor colocado primero (índice 0 = rango superior).
Uso de rank-index() con grupos de repetición
Cuando se usa rank dentro de un grupo de repetición, rank-index() le permite referenciar el rango ordinal desde fuera de la repetición:
| type | name | label | calculation |
|---|---|---|---|
| calculate | first_ranked | rank-index(1, ${score}) |
Consulte Funciones — Funciones de campos repetidos para obtener detalles completos sobre rank-index() y rank-index-if().
Usos
Las preguntas de rango se usan comúnmente para:
- Clasificación de prioridades — pedir a las comunidades que clasifiquen las necesidades de desarrollo
- Ordenamiento de preferencias — clasificar características de productos, atributos de servicio u opciones de política
- Ordenamiento de elementos de examen — organizar pasos en un proceso
- Selección de los N primeros — combinado con
selected-at()para extraer solo las 1, 2 o 3 mejores opciones
Mejores prácticas
- Mantenga la lista corta (3–7 elementos); clasificar se vuelve cognitivamente agotador más allá de 7–8 opciones.
- Use etiquetas de opciones claras y mutuamente excluyentes para evitar confusión sobre qué significa “primero”.
- Agregue texto de indicación explicando la dirección de clasificación (p. ej., “Arrastre para ordenar: primero = más importante”).
- Valide usando
count-selected(.) = xsi necesita asegurarse de que todas las opciones estén clasificadas.
Limitaciones
- El widget de arrastrar para clasificar requiere una pantalla táctil o un ratón; puede no funcionar bien en entornos solo de teclado.
- En algunos clientes móviles más antiguos, el widget de rango puede recurrir a una interfaz de entrada numerada.
- No puede clasificar parcialmente (es decir, clasificar solo algunas opciones); todas las opciones deben ordenarse.