Frågtypen select_multiple visar en lista där respondenten kan välja ett eller flera alternativ. Som standard renderas alternativ som kryssrutor. Det lagrade värdet är en mellanslagsseparerad lista med alla valda alternativvärden.

Grundläggande XLSForm-specifikation

survey-kalkylblad:

typenamelabel
select_multiple cropscrops_grownVilka grödor odlar hushållet?

choices-kalkylblad:

list_namenamelabel
cropsmaizeMajs
cropsbeansBönor
cropsriceRis
cropsvegetablesGrönsaker
cropsotherÖvrigt

För mer detaljer se XLSForm-specifikationen.

Lagrat dataformat

Den exporterade kolumnen innehåller en mellanslagsseparerad lista med valda värden:

  maize beans vegetables
  

Använd funktionen selected() — inte = — när du testar select_multiple-värden i uttryck (se nedan).

Användningsområden

Select_multiple-frågor används för:

  1. Samla in flera tillämpliga svar (t.ex. inkomstkällor, odlade grödor, symptom)
  2. Kryssruteliknande samtyckeobjekt (t.ex. “Välj alla som gäller”)
  3. Språk- eller kompetensförteckningar
  4. Alla frågor där flera svar är simultant giltiga

Utseendealternativ

UtseendeBeskrivning
(inget)Standard kryssrutor, en per rad
minimalRullgardinsmeny med flerval
compactKompakt rutnät, kolumner anpassas till skärmbredden
compact-NKompakt rutnät tvingat till N kolumner
horizontalAlternativ arrangerade horisontellt i en rad (webb)
horizontal-compactHorisontellt, kompakt avstånd (webb)
labelVisar bara etiketter, inga kryssrutor (använd med list-nolabel)
list-nolabelVisar bara kryssrutor, inga etiketter (använd med label)
columns(N)Visa i N kolumner (rtSurvey-tillägg)

Exempel: 3-kolumns kompakt layout

typenamelabelappearance
select_multiple symptomssymptomsVälj alla observerade symptomcompact-3

Använda selected() i uttryck

Eftersom det lagrade värdet är en mellanslagsseparerad sträng måste du använda selected() för att testa om ett specifikt alternativ valdes. Att använda = fungerar inte korrekt.

I relevant

Visa en uppföljningsfråga bara om “other” valdes:

typenamelabelrelevant
select_multiple cropscrops_grownVilka grödor odlas?
textcrops_otherVänligen ange andra grödorselected(${crops_grown}, 'other')

I constraint

Kräv minst 2 val:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2Välj minst 2 problem

Begränsa till maximalt 3:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3Välj högst 3 prioriteringar

“Inget av ovanstående” / exklusivt alternativ

Ett vanligt mönster är att göra ett alternativ ömsesidigt uteslutande med alla andra. Använd ett constraint för att tillämpa det:

typenamelabelconstraintconstraint_message
select_multiple issuesissuesVälj alla problem som finnsnot(selected(., 'none') and count-selected(.) > 1)“Inga” kan inte väljas tillsammans med andra alternativ

Räkna och sammanfatta val

FunktionExempelResultat
count-selected(field)count-selected(${crops_grown})Antal valda alternativ
selected(field, value)selected(${crops_grown}, 'maize')true/false
selected-at(field, index)selected-at(${crops_grown}, 0)Första valda värdet
choice-label(field, value)choice-label(${crops_grown}, 'maize')Etikett för ett värde

Bästa praxis

  1. Använd alltid selected() i relevant, constraint och calculate — aldrig = eller !=.
  2. Lägg till ett constraint för att begränsa det maximala antalet val om frågans design kräver det.
  3. Inkludera alternativet “Inget” eller “Ej tillämpligt” när noll val är ett giltigt svar.
  4. För långa listor (15+ alternativ), använd minimal (rullgardinsmeny med flerval) för att undvika alltför mycket scrollning.
  5. Exportera data och använd strängdelning i ditt analysverktyg — det mellanslagsseparerade formatet kräver delning innan pivotering.

Begränsningar

  • Select_multiple-värden kan inte jämföras direkt med =. Använd alltid selected().
  • Det kompakta utseendet kanske inte renderas bra för mycket långa alternativetiketter.
  • Vid filtrering av alternativ med choice_filter gäller filtreringen alla visade alternativ, precis som för select_one.
Var den här sidan hjälpsam?