On this page
code
質問のスキップ
スキップロジック(分岐または条件付きロジックとも呼ばれる)により、回答者の回答に適応する動的な調査を作成できます。rtSurveyでは、スキップロジックはXLSFormのrelevant列を使用して実装されます。
基本的なスキップロジック
基本的なスキップロジックを実装するには、relevant列を使って条件を指定します:
| type | name | label | relevant |
|----------------|---------------|-----------------------------|--------------------|
| select_one y_n | likes_pizza | ピザは好きですか? | |
| select_multiple pizza_toppings | favorite_topping | お気に入りのトッピング | ${likes_pizza} = 'yes' |
この例では、回答者がピザが好きかどうかに「はい」と答えた場合のみ「お気に入りのトッピング」質問が表示されます。
Relevant式の構文
${ }を使って他の質問変数を参照する。select_one質問では直接比較する:${question_name} = 'answer'select_multiple質問ではselected()関数を使用する。
高度なスキップロジック
複数の条件
and、or、括弧を使って複数の条件を組み合わせることができます:
| type | name | label | relevant |
|---------|-------|-------------------------|-------------------------------------------|
| integer | age | 年齢は何歳ですか? | |
| text | school| どの学校に通っていますか? | ${age} < 18 and (${location} = 'urban' or ${location} = 'suburban') |
select_multiple質問の使い方
select_multiple質問にはselected()関数を使用する:
| type | name | label | relevant |
|----------------|---------------|-----------------------------|-----------------------------------------|
| select_multiple pizza_toppings | favorite_topping | お気に入りのトッピング | |
| text | cheese_type | お気に入りのチーズの種類 | selected(${favorite_topping}, 'cheese') |
多肢選択の「その他」オプション
relevantを使って自由記述の「その他」オプションを実装する:
| type | name | label | relevant |
|----------------|----------------------|-------------------------------------|---------------------------------------|
| select_multiple pizza_toppings | favorite_toppings | お気に入りのピザトッピングは何ですか? | |
| text | favorite_toppings_other | 他にどんなトッピングが好きですか? | selected(${favorite_toppings}, 'other') |
choicesワークシートに’other’をオプションとして含めることを忘れないでください。
rtSurvey固有の機能
動的relevance
rtSurveyは計算フィールドに基づいた動的relevanceを許可します:
| type | name | label | calculation |
|-----------|------------|--------------------|-----------------------------|
| calculate | total_score| 合計スコア | ${score1} + ${score2} + ${score3} |
| text | feedback | フィードバック | ${total_score} > 75 |
繰り返し内のRelevance
rtSurveyは繰り返しグループ内のrelevanceをサポートします:
| type | name | label | relevant |
|--------------|--------------|------------------|------------------------|
| begin repeat | child_info | 子供の情報| |
| integer | child_age | 子供の年齢 | |
| text | school_name | 学校名 | ${child_age} >= 5 |
| end repeat | | | |
カスケードrelevance
rtSurveyは、1つの質問のrelevanceが別の質問に依存し、それがさらに3番目の質問に依存するカスケードrelevanceを効率的に処理します:
| type | name | label | relevant |
|----------------|-------------|------------------------|------------------------|
| select_one y_n | has_car | 車を持っていますか? | |
| select_one car_type | car_type | 車のタイプは? | ${has_car} = 'yes' |
| text | model | 具体的なモデル | ${car_type} = 'sedan' |
rtSurveyでのスキップロジックのベストプラクティス
- シンプルに保つ:可能な限り過度に複雑なrelevance条件を避ける。
- 徹底的にテストする:rtSurveyのプレビュー機能を使って調査のすべての可能なパスをテストする。
- パフォーマンスを考慮する:非常に複雑なスキップロジックは、特にモバイルデバイスで調査のパフォーマンスに影響する場合がある。
- 明確な変数名を使用する:これによりrelevance式の読み取りと維持が容易になる。
- ロジックを文書化する:特にチームコラボレーションのために複雑なスキップパターンを説明するメモを追加する。
- データ分析を念頭に置く:スキップされた質問は欠損データになる。それに応じた分析を計画する。
スキップロジックのトラブルシューティング
- 構文エラー:すべての
${ }が正しく閉じられていて正しくスペルされていることを確認する。 - 循環参照:質問が互いに依存するループを作成しないようにする。
- 大文字小文字の区別:回答の選択肢はrelevance式で大文字小文字を区別することに注意する。
- 数値の比較:数値の比較には適切な演算子(
<、>、=)を使用する。
まとめ
スキップロジックの効果的な使用はrtSurveyプロジェクトの回答者体験とデータ品質を大幅に向上させることができます。rtSurveyの高度な機能を活用してベストプラクティスに従うことで、各回答者のユニークな状況に適応する動的で効率的な調査を作成できます。
このページは役に立ちましたか?