On this page
check_box
Select_multiple
Select_multiple質問タイプは回答者が定義済みのリストから1つ以上のオプションを選択できるようにします。
select_multiple質問タイプは、回答者が1つ以上のオプションを選択できるリストを表示します。デフォルトではチェックボックスとして表示されます。保存された値は、すべての選択された選択肢の値をスペース区切りのリストとして格納します。
基本XLSForm仕様
surveyワークシート:
| type | name | label |
|---|---|---|
| select_multiple crops | crops_grown | 世帯ではどの作物を栽培していますか? |
choicesワークシート:
| list_name | name | label |
|---|---|---|
| crops | maize | トウモロコシ |
| crops | beans | 豆 |
| crops | rice | 米 |
| crops | vegetables | 野菜 |
| crops | other | その他 |
詳細についてはXLSForm仕様を参照してください。
保存データ形式
エクスポートされた列には、選択された値のスペース区切りリストが含まれます:
maize beans vegetables
式でselect_multipleの値をテストする際は、=ではなくselected()関数を使用してください(下記参照)。
用途
Select_multiple質問は以下に使用されます:
- 複数の該当する回答の収集(例:収入源、栽培作物、症状)
- チェックボックス式の同意項目(例:「該当するものをすべて選択してください」)
- 言語やスキルのインベントリ
- 複数の回答が同時に有効な質問
外観オプション
| 外観 | 説明 |
|---|---|
| (なし) | デフォルトのチェックボックス、1行に1つ |
minimal | ドロップダウンマルチ選択ウィジェット |
compact | コンパクトグリッド、画面幅に応じて列数を調整 |
compact-N | N列に強制されたコンパクトグリッド |
horizontal | 水平行に配置された選択肢(Web) |
horizontal-compact | 水平、コンパクトスペーシング(Web) |
label | チェックボックスなしでラベルのみを表示(list-nolabelと使用) |
list-nolabel | ラベルなしでチェックボックスのみを表示(labelと使用) |
columns(N) | N列で表示(rtSurvey拡張) |
例:3列コンパクトレイアウト
| type | name | label | appearance |
|---|---|---|---|
| select_multiple symptoms | symptoms | 観察されたすべての症状を選択してください | compact-3 |
式でのselected()の使用
保存された値はスペース区切りの文字列であるため、特定の選択肢が選択されたかどうかをテストするには必ずselected()を使用してください。=を使用すると正しく機能しません。
relevantでの使用
「その他」が選択された場合にのみフォローアップ質問を表示する:
| type | name | label | relevant |
|---|---|---|---|
| select_multiple crops | crops_grown | どの作物を栽培していますか? | |
| text | crops_other | その他の作物を指定してください | selected(${crops_grown}, 'other') |
constraintでの使用
少なくとも2つの選択を要求する:
| type | name | constraint | constraint_message |
|---|---|---|---|
| select_multiple issues | issues | count-selected(.) >= 2 | 少なくとも2つの問題を選択してください |
最大3つに制限する:
| type | name | constraint | constraint_message |
|---|---|---|---|
| select_multiple priorities | priorities | count-selected(.) <= 3 | 優先度は3つまでしか選択できません |
calculateでの使用 — 選択ラベルの結合
selected-at()、count-selected()、choice-label()を組み合わせて読みやすいサマリーを構築する:
| type | name | calculation |
|---|---|---|
| calculate | crops_summary | join(’, ‘, ${crops_grown}) |
「上記のいずれでもない」/排他的オプション
一般的なパターンは、1つのオプションを他のすべてと相互に排他的にすることです。constraintを使用して強制します:
| type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| select_multiple issues | issues | 存在するすべての問題を選択してください | not(selected(., 'none') and count-selected(.) > 1) | 「なし」は他のオプションと一緒に選択できません |
choices:
| list_name | name | label |
|---|---|---|
| issues | water | 水不足 |
| issues | roads | 道路状態が悪い |
| issues | health | 医療サービスの欠如 |
| issues | none | 上記のいずれでもない |
選択のカウントとサマリー
| 関数 | 例 | 結果 |
|---|---|---|
count-selected(field) | count-selected(${crops_grown}) | 選択された選択肢の数 |
selected(field, value) | selected(${crops_grown}, 'maize') | true/false |
selected-at(field, index) | selected-at(${crops_grown}, 0) | 最初に選択された値 |
choice-label(field, value) | choice-label(${crops_grown}, 'maize') | 値のラベル |
ベストプラクティス
relevant、constraint、calculateでは常にselected()を使用してください —=や!=は使用しないでください。- 質問設計で必要な場合は、最大選択数を制限するための制約を追加してください。
- ゼロ選択が有効な回答の場合は「なし」または「該当なし」オプションを含めてください。
- 長いリスト(15個以上の選択肢)の場合は、過度のスクロールを避けるために
minimal(マルチ選択ドロップダウン)を使用してください。 - データをエクスポートして分析ツールで文字列分割を使用してください — スペース区切り形式はピボット前に分割が必要です。
制限事項
- Select_multipleの値は
=で直接比較できません。常にselected()を使用してください。 - コンパクト外観は選択肢ラベルが非常に長い場合には適切に表示されない場合があります。
choice_filterで選択肢をフィルタリングする場合、フィルタリングはすべての表示される選択肢に適用されます(select_oneと同様)。
このページは役に立ちましたか?