O tipo de pergunta select_multiple exibe uma lista onde o respondente pode selecionar uma ou mais opções. Por padrão, as opções são renderizadas como caixas de seleção. O valor armazenado é uma lista separada por espaço de todos os valores de opções selecionados.

Especificação básica do XLSForm

Planilha survey:

typenamelabel
select_multiple cropscrops_grownQuais culturas o domicílio cultiva?

Planilha choices:

list_namenamelabel
cropsmaizeMilho
cropsbeansFeijão
cropsriceArroz
cropsvegetablesVegetais
cropsotherOutro

Para mais detalhes, consulte a especificação do XLSForm.

Formato de dados armazenados

A coluna exportada contém uma lista separada por espaço dos valores selecionados:

  maize beans vegetables
  

Use a função selected() — não = — ao testar valores select_multiple em expressões (veja abaixo).

Usos

As perguntas select_multiple são usadas para:

  1. Coletar múltiplas respostas aplicáveis (por exemplo, fontes de renda, culturas cultivadas, sintomas)
  2. Itens de concordância no estilo caixa de seleção (por exemplo, “Selecione todos que se aplicam”)
  3. Inventários de idiomas ou habilidades
  4. Qualquer pergunta onde múltiplas respostas são simultaneamente válidas

Opções de aparência

AparênciaDescrição
(nenhuma)Caixas de seleção padrão, uma por linha
minimalWidget de multi-seleção em dropdown
compactGrade compacta, o número de colunas se ajusta à largura da tela
compact-NGrade compacta forçada para N colunas
horizontalOpções dispostas horizontalmente em uma linha (web)
horizontal-compactHorizontal, espaçamento compacto (web)
labelMostra apenas rótulos, sem caixas de seleção (use com list-nolabel)
list-nolabelMostra apenas caixas de seleção, sem rótulos (use com label)
columns(N)Exibir em N colunas (extensão rtSurvey)

Exemplo: Layout compacto de 3 colunas

typenamelabelappearance
select_multiple symptomssymptomsSelecione todos os sintomas observadoscompact-3

Usando selected() em expressões

Como o valor armazenado é uma string separada por espaço, você deve usar selected() para testar se uma opção específica foi escolhida. Usar = não funcionará corretamente.

Em relevant

Mostrar uma pergunta de acompanhamento apenas se “outro” foi selecionado:

typenamelabelrelevant
select_multiple cropscrops_grownQuais culturas são cultivadas?
textcrops_otherPor favor, especifique outras culturasselected(${crops_grown}, 'other')

Em constraint

Exigir pelo menos 2 opções:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2Selecione pelo menos 2 problemas

Limitar a no máximo 3:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3Selecione no máximo 3 prioridades

Em calculate — juntando rótulos selecionados

Combine selected-at(), count-selected() e choice-label() para construir um resumo legível:

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

Opção “Nenhuma das acima” / opção exclusiva

Um padrão comum é tornar uma opção mutuamente exclusiva com todas as outras. Use uma constraint para aplicá-la:

typenamelabelconstraintconstraint_message
select_multiple issuesissuesSelecione todos os problemas presentesnot(selected(., 'none') and count-selected(.) > 1)“Nenhum” não pode ser selecionado com outras opções

choices:

list_namenamelabel
issueswaterEscassez de água
issuesroadsEstradas ruins
issueshealthFalta de serviços de saúde
issuesnoneNenhuma das acima

Contagem e resumo de seleções

FunçãoExemploResultado
count-selected(field)count-selected(${crops_grown})Número de opções selecionadas
selected(field, value)selected(${crops_grown}, 'maize')verdadeiro/falso
selected-at(field, index)selected-at(${crops_grown}, 0)Primeiro valor selecionado
choice-label(field, value)choice-label(${crops_grown}, 'maize')Rótulo para um valor

Práticas recomendadas

  1. Sempre use selected() em relevant, constraint e calculate — nunca = ou !=.
  2. Adicione uma restrição para limitar o número máximo de seleções se o design da pergunta exigir.
  3. Inclua uma opção “Nenhum” ou “Não aplicável” quando zero seleções for uma resposta válida.
  4. Para listas longas (15+ opções), use minimal (dropdown de múltipla seleção) para evitar rolagem excessiva.
  5. Exporte os dados e use divisão de string na sua ferramenta de análise — o formato separado por espaço requer divisão antes de pivotar.

Limitações

  • Os valores select_multiple não podem ser comparados diretamente com =. Sempre use selected().
  • A aparência compacta pode não ser renderizada bem para rótulos de opções muito longos.
  • Ao filtrar opções com choice_filter, a filtragem se aplica a todas as opções exibidas, igual ao select_one.
Esta página foi útil?