El tipo de pregunta select_multiple muestra una lista donde el encuestado puede seleccionar una o más opciones. De forma predeterminada, las opciones se renderizan como casillas de verificación. El valor almacenado es una lista separada por espacios de todos los valores de opciones seleccionadas.

Especificación básica de XLSForm

Hoja de trabajo survey:

typenamelabel
select_multiple cropscrops_grown¿Qué cultivos produce el hogar?

Hoja de trabajo choices:

list_namenamelabel
cropsmaizeMaíz
cropsbeansFrijoles
cropsriceArroz
cropsvegetablesVerduras
cropsotherOtro

Para obtener más detalles, consulte la especificación de XLSForm.

Formato de datos almacenados

La columna exportada contiene una lista de valores seleccionados separados por espacios:

  maize beans vegetables
  

Use la función selected() — no = — al probar los valores de select_multiple en expresiones (consulte a continuación).

Usos

Las preguntas select_multiple se usan para:

  1. Recopilar múltiples respuestas aplicables (p. ej., fuentes de ingresos, cultivos, síntomas)
  2. Elementos de acuerdo tipo casilla de verificación (p. ej., “Seleccione todos los que apliquen”)
  3. Inventarios de idiomas o habilidades
  4. Cualquier pregunta donde múltiples respuestas sean simultáneamente válidas

Opciones de apariencia

AparienciaDescripción
(ninguna)Casillas de verificación predeterminadas, una por línea
minimalWidget de selección múltiple desplegable
compactCuadrícula compacta, columnas se ajustan al ancho de pantalla
compact-NCuadrícula compacta forzada a N columnas
horizontalOpciones dispuestas horizontalmente en una fila (web)
horizontal-compactHorizontal, espaciado compacto (web)
labelMuestra solo etiquetas, sin casillas de verificación (use con list-nolabel)
list-nolabelMuestra solo casillas de verificación, sin etiquetas (use con label)
columns(N)Mostrar en N columnas (extensión de rtSurvey)

Ejemplo: Diseño compacto de 3 columnas

typenamelabelappearance
select_multiple symptomssymptomsSeleccione todos los síntomas observadoscompact-3

Uso de selected() en expresiones

Debido a que el valor almacenado es una cadena separada por espacios, debe usar selected() para probar si se eligió una opción específica. Usar = no funcionará correctamente.

En relevant

Mostrar una pregunta de seguimiento solo si se seleccionó “otro”:

typenamelabelrelevant
select_multiple cropscrops_grown¿Qué cultivos se producen?
textcrops_otherPor favor especifique otros cultivosselected(${crops_grown}, 'other')

En constraint

Requerir al menos 2 opciones:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2Seleccione al menos 2 problemas

Limitar a un máximo de 3:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3Seleccione no más de 3 prioridades

En calculate — unir etiquetas seleccionadas

Combine selected-at(), count-selected() y choice-label() para construir un resumen legible:

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

Opción “Ninguna de las anteriores” / opción exclusiva

Un patrón común es hacer que una opción sea mutuamente excluyente con todas las demás. Use una constraint para hacerlo cumplir:

typenamelabelconstraintconstraint_message
select_multiple issuesissuesSeleccione todos los problemas presentesnot(selected(., 'none') and count-selected(.) > 1)“Ninguno” no puede seleccionarse junto con otras opciones

choices:

list_namenamelabel
issueswaterEscasez de agua
issuesroadsCarreteras deficientes
issueshealthFalta de servicios de salud
issuesnoneNinguno de los anteriores

Conteo y resumen de selecciones

FunciónEjemploResultado
count-selected(field)count-selected(${crops_grown})Número de opciones seleccionadas
selected(field, value)selected(${crops_grown}, 'maize')verdadero/falso
selected-at(field, index)selected-at(${crops_grown}, 0)Primer valor seleccionado
choice-label(field, value)choice-label(${crops_grown}, 'maize')Etiqueta de un valor

Mejores prácticas

  1. Siempre use selected() en relevant, constraint y calculate — nunca = o !=.
  2. Agregue una restricción para limitar el número máximo de selecciones si el diseño de la pregunta lo requiere.
  3. Incluya una opción “Ninguno” o “No aplica” cuando cero selecciones sea una respuesta válida.
  4. Para listas largas (15+ opciones), use minimal (desplegable de selección múltiple) para evitar el desplazamiento excesivo.
  5. Exporte datos y use la división de cadenas en su herramienta de análisis; el formato separado por espacios requiere dividir antes de pivotar.

Limitaciones

  • Los valores de select_multiple no se pueden comparar directamente con =. Siempre use selected().
  • La apariencia compacta puede no renderizarse bien para etiquetas de opciones muy largas.
  • Al filtrar opciones con choice_filter, el filtrado se aplica a todas las opciones mostradas, igual que con select_one.
¿Fue útil esta página?