Select_multiple
Select_multiple-spørsmål lar respondenter velge ett eller flere alternativer fra en forhåndsdefinert liste.
select_multiple-spørsmålstypen viser en liste der respondenten kan velge ett eller flere alternativer. Som standard gjengis valg som avkrysningsbokser. Den lagrede verdien er en mellomrom-separert liste over alle valgte alternativer.
Grunnleggende XLSForm-spesifikasjon
survey-regneark:
| type | name | label |
|---|---|---|
| select_multiple crops | crops_grown | Hvilke vekster dyrker husholdningen? |
choices-regneark:
| list_name | name | label |
|---|---|---|
| crops | maize | Mais |
| crops | beans | Bønner |
| crops | rice | Ris |
| crops | vegetables | Grønnsaker |
| crops | other | Annet |
Lagret dataformat
Den eksporterte kolonnen inneholder en mellomrom-separert liste over valgte verdier:
maize beans vegetables
Bruk selected()-funksjonen — ikke = — når du tester select_multiple-verdier i uttrykk (se nedenfor).
Brukstilfeller
Select_multiple-spørsmål brukes for:
- Samle inn flere gjeldende svar (f.eks. inntektskilder, vekster dyrket, symptomer)
- Avkrysningsboks-stil samtykkeelementer (f.eks. “Velg alle som gjelder”)
- Språk- eller ferdighetsoversikter
- Spørsmål der flere svar er gyldige simultant
Utseendealternativer
| Utseende | Beskrivelse |
|---|---|
| (ingen) | Standard avkrysningsbokser, én per linje |
minimal | Nedtrekksmeny multi-select widget |
compact | Kompakt grid, kolonner justeres til skjermbredde |
compact-N | Kompakt grid tvunget til N kolonner |
horizontal | Valg arrangert horisontalt i en rad (web) |
horizontal-compact | Horisontal, kompakt avstand (web) |
label | Viser bare etiketter, ingen avkrysningsbokser (bruk med list-nolabel) |
list-nolabel | Viser bare avkrysningsbokser, ingen etiketter (bruk med label) |
columns(N) | Vis i N kolonner (rtSurvey-utvidelse) |
Eksempel: 3-kolonne kompakt oppsett
| type | name | label | appearance |
|---|---|---|---|
| select_multiple symptoms | symptoms | Velg alle observerte symptomer | compact-3 |
Bruke selected() i uttrykk
Fordi den lagrede verdien er en mellomrom-separert streng, må du bruke selected() for å teste om et spesifikt alternativ ble valgt. Bruk av = vil ikke fungere korrekt.
I relevant
Vis et oppfølgingsspørsmål bare hvis “other” ble valgt:
| type | name | label | relevant |
|---|---|---|---|
| select_multiple crops | crops_grown | Hvilke vekster dyrkes? | |
| text | crops_other | Vennligst spesifiser andre vekster | selected(${crops_grown}, 'other') |
I constraint
Krev minst 2 valg:
| type | name | constraint | constraint_message |
|---|---|---|---|
| select_multiple issues | issues | count-selected(.) >= 2 | Velg minst 2 problemer |
Begrens til maksimalt 3:
| type | name | constraint | constraint_message |
|---|---|---|---|
| select_multiple priorities | priorities | count-selected(.) <= 3 | Velg ikke mer enn 3 prioriteter |
“Ingen av disse” / eksklusivt alternativ
Et vanlig mønster er å gjøre ett alternativ gjensidig eksklusivt med alle andre. Bruk en constraint for å håndheve det:
| type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| select_multiple issues | issues | Velg alle problemer som er til stede | not(selected(., 'none') and count-selected(.) > 1) | “Ingen” kan ikke velges med andre alternativer |
Telle og oppsummere valg
| Funksjon | Eksempel | Resultat |
|---|---|---|
count-selected(field) | count-selected(${crops_grown}) | Antall valg valgt |
selected(field, value) | selected(${crops_grown}, 'maize') | sant/usant |
selected-at(field, index) | selected-at(${crops_grown}, 0) | Første valgte verdi |
choice-label(field, value) | choice-label(${crops_grown}, 'maize') | Etikett for en verdi |
Beste praksis
- Bruk alltid
selected()irelevant,constraintogcalculate— aldri=eller!=. - Legg til en begrensning for å begrense maksimalt antall valg hvis spørsmålsdesignet krever det.
- Inkluder et “Ingen” eller “Ikke aktuelt”-alternativ når null valg er et gyldig svar.
- For lange lister (15+ valg), bruk
minimal(multi-select nedtrekksmeny) for å unngå overdreven rulling. - Eksporter data og bruk strengdeling i analyseverktøyet — det mellomrom-separerte formatet krever deling før pivotering.
Begrensninger
- Select_multiple-verdier kan ikke sammenlignes direkte med
=. Bruk alltidselected(). - Kompakt-utseendet gjengis kanskje ikke bra for svært lange valgetiketter.
- Når du filtrerer valg med
choice_filter, gjelder filtreringen for alle viste valg, samme somselect_one.