select_multiple 질문 유형은 응답자가 하나 이상의 옵션을 선택할 수 있는 목록을 표시합니다. 기본적으로 선택지는 체크박스로 렌더링됩니다. 저장된 값은 선택된 모든 선택지 값의 공백으로 구분된 목록입니다.

기본 XLSForm 사양

survey 워크시트:

typenamelabel
select_multiple cropscrops_grown가구에서 어떤 작물을 재배합니까?

choices 워크시트:

list_namenamelabel
cropsmaize옥수수
cropsbeans
cropsrice
cropsvegetables채소
cropsother기타

자세한 내용은 XLSForm 사양을 참조하세요.

저장된 데이터 형식

내보낸 열에는 선택된 값의 공백으로 구분된 목록이 포함됩니다:

  maize beans vegetables
  

표현식에서 select_multiple 값을 테스트할 때는 = 대신 selected() 함수를 사용합니다 (아래 참조).

용도

Select_multiple 질문은 다음 용도로 사용됩니다:

  1. 여러 해당 답변 수집 (예: 소득원, 재배 작물, 증상)
  2. 체크박스 스타일 동의 항목 (예: “해당하는 모든 것을 선택하세요”)
  3. 언어 또는 기술 목록
  4. 여러 답변이 동시에 유효한 모든 질문

Appearance 옵션

Appearance설명
(없음)기본 체크박스, 한 줄에 하나
minimal드롭다운 다중 선택 위젯
compact컴팩트 그리드, 화면 너비에 맞게 열 조정
compact-NN열로 강제된 컴팩트 그리드
horizontal가로로 배열된 선택지 (웹)
horizontal-compact가로, 컴팩트 간격 (웹)
label체크박스 없이 레이블만 표시 (list-nolabel과 함께 사용)
list-nolabel레이블 없이 체크박스만 표시 (label과 함께 사용)
columns(N)N열로 표시 (rtSurvey 확장)

예시: 3열 컴팩트 레이아웃

typenamelabelappearance
select_multiple symptomssymptoms관찰된 모든 증상을 선택하세요compact-3

표현식에서 selected() 사용

저장된 값은 공백으로 구분된 문자열이므로, 특정 선택이 선택되었는지 테스트하려면 반드시 selected()를 사용해야 합니다. =를 사용하면 올바르게 작동하지 않습니다.

relevant에서

“기타"가 선택된 경우에만 후속 질문 표시:

typenamelabelrelevant
select_multiple cropscrops_grown어떤 작물을 재배합니까?
textcrops_other다른 작물을 명시해 주세요selected(${crops_grown}, 'other')

constraint에서

최소 2개의 선택 요구:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2최소 2개의 문제를 선택하세요

최대 3개로 제한:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3최대 3개의 우선순위를 선택하세요

calculate에서 — 선택된 레이블 결합

selected-at(), count-selected(), choice-label()을 결합하여 읽기 가능한 요약 만들기:

typenamecalculation
calculatecrops_summaryjoin(’, ‘, ${crops_grown})

“해당 없음” / 독점 옵션

일반적인 패턴은 하나의 옵션을 다른 모든 옵션과 상호 배타적으로 만드는 것입니다. constraint를 사용하여 강제합니다:

typenamelabelconstraintconstraint_message
select_multiple issuesissues현재 있는 모든 문제를 선택하세요not(selected(., 'none') and count-selected(.) > 1)“없음"은 다른 옵션과 함께 선택할 수 없습니다

choices:

list_namenamelabel
issueswater물 부족
issuesroads도로 불량
issueshealth의료 서비스 부족
issuesnone해당 없음

선택 횟수 세기 및 요약

함수예시결과
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')값의 레이블

모범 사례

  1. relevant, constraint, calculate에서 항상 selected()를 사용합니다 — = 또는 !=를 절대 사용하지 않습니다.
  2. 질문 설계에 필요한 경우 최대 선택 수를 제한하는 제약 조건을 추가합니다.
  3. 선택 없음이 유효한 답변인 경우 “없음” 또는 “해당 없음” 옵션을 포함합니다.
  4. 긴 목록 (15개 이상)의 경우 minimal (다중 선택 드롭다운)을 사용하여 과도한 스크롤을 피합니다.
  5. 데이터를 내보내고 분석 도구에서 문자열 분할을 사용합니다 — 공백으로 구분된 형식은 피벗 전에 분할이 필요합니다.

제한 사항

  • Select_multiple 값은 =로 직접 비교할 수 없습니다. 항상 selected()를 사용합니다.
  • 컴팩트 appearance는 매우 긴 선택지 레이블에서 잘 렌더링되지 않을 수 있습니다.
  • choice_filter로 선택지를 필터링할 때 select_one과 마찬가지로 표시된 모든 선택지에 필터링이 적용됩니다.
이 페이지가 도움이 되었나요?