Rank
Питання типу rank дозволяють респондентам впорядкувати набір варіантів за перевагою або пріоритетом.
Тип питання rank представляє список варіантів, які респондент повинен перетягнути у порядку (або іншим чином ранжувати від першого до останнього). Він зберігає результат як список значень варіантів, розділений пробілами, у вибраному порядку, причому варіант найвищого пріоритету — першим.
Базова специфікація XLSForm
| type | name | label |
|---|---|---|
| rank priorities | main_priority | Rank these community needs from most to least important |
Варіанти визначаються в таблиці choices так само, як для select_one:
Таблиця survey:
| type | name | label |
|---|---|---|
| rank priorities | main_priority | Rank these needs from most to least important |
Таблиця choices:
| list_name | name | label |
|---|---|---|
| priorities | water | Clean water |
| priorities | health | Healthcare |
| priorities | education | Education |
| priorities | roads | Roads |
| priorities | electricity | Electricity |
Формат збережених даних
Збережене значення — це список значень варіантів, розділений пробілами, у ранжованому порядку (перше = найвищий пріоритет):
water education health roads electricity
Вилучення ранжованих позицій
Використовуйте selected-at() для отримання варіанту на певному рангу:
| type | name | label | calculation |
|---|---|---|---|
| rank priorities | main_priority | Rank community needs | |
| calculate | top_priority | selected-at(${main_priority}, 0) | |
| calculate | second_priority | selected-at(${main_priority}, 1) |
selected-at(${main_priority}, 0) повертає значення, поміщене першим (індекс 0 = найвищий ранг).
Використання rank-index() з групами повторів
Коли rank використовується всередині групи повторів, rank-index() дозволяє посилатися на порядковий ранг ззовні повтору:
| type | name | label | calculation |
|---|---|---|---|
| calculate | first_ranked | rank-index(1, ${score}) |
Дивіться Функції — Функції полів повторів для повної інформації про rank-index() та rank-index-if().
Використання
Питання типу rank зазвичай використовуються для:
- Ранжування пріоритетів — прохання громад ранжувати потреби розвитку
- Впорядкування переваг — ранжування функцій продукту, атрибутів послуг або варіантів політики
- Впорядкування кроків іспиту — розташування кроків у процесі
- Вибір топ-N — у поєднанні з
selected-at()для вилучення лише топ 1, 2 або 3 варіантів
Найкращі практики
- Тримайте список коротким (3–7 елементів) — ранжування стає когнітивно виснажливим понад 7–8 варіантів.
- Використовуйте чіткі, взаємовиключні мітки варіантів, щоб уникнути плутанини щодо того, що означає “перший”.
- Додайте текст підказки, що пояснює напрямок ранжування (наприклад, “Перетягніть для впорядкування: перший = найважливіший”).
- Валідуйте за допомогою
count-selected(.) = x, якщо потрібно переконатися, що всі варіанти ранжовані.
Обмеження
- Віджет перетягування для ранжування вимагає сенсорного екрана або миші — він може погано працювати в середовищах лише з клавіатурою.
- На деяких старих мобільних клієнтах віджет rank може переходити до інтерфейсу з нумерованим введенням.
- Неможливо ранжувати частково (тобто ранжувати лише деякі варіанти) — усі варіанти повинні бути впорядковані.