Un XLSForm puede repetir un conjunto de preguntas varias veces. A continuación, se ofrecen varios ejemplos de posibles usos de las repeticiones:
- Capture varias respuestas a la misma pregunta en una encuesta.
- Capture conjuntos independientes y más pequeños de registros, como el nombre, la edad y el sexo de todas las personas que integran una unidad familiar.
- Capture varias preguntas de mapa en una sola encuesta.

Cuando publique una encuesta que incluya repeticiones, cada repetición se crea como una tabla relacionada en la capa de entidades o una capa relacionada si su repetición contiene una pregunta geopoint, geotrace o geoshape.
Usar repeticiones
Para repetir un conjunto de preguntas con el fin de capturar varias respuestas, siga estos pasos en la pestaña encuesta de la hoja de cálculo:
- En la fila en la que desee iniciar la repetición, escriba begin repeat en la columna type.
- Proporcione un nombre para la repetición en la columna name.
- En las filas siguientes a esta entrada, introduzca las preguntas que desea incluir en la repetición.
- Justo después de las preguntas, escriba end repeat en la columna type.
En la encuesta se crea un conjunto de preguntas que puede agregar repetidamente a los resultados de la encuesta. De manera predeterminada, no hay ninguna restricción en cuanto al número de veces que puede repetir las preguntas.
Las ubicaciones de puntos de la primera pregunta geopoint en una repetición se pueden mostrar en cualquier mapa de la encuesta. Para obtener más información, consulte Superposiciones de puntos en mapas.
Apariencia
Al establecer la columna apariencia de una pregunta begin repeat en minimal, el conjunto de preguntas no se muestra al iniciar. El usuario debe hacer clic en el botón Agregar más para ver las preguntas de la repetición. Esta posibilidad resulta útil cuando no es necesario completar las preguntas repetidas en una encuesta. Esta apariencia se define en la pregunta de repetición de inicio.

Si una repetición tiene el valor minimal y presenta un recuento de repeticiones de cero, los controles de repetición y su etiqueta son invisibles.
Si la apariencia de una pregunta de repetición de inicio se define como compact, las repeticiones aparecen en un estado contraído al principio, que el usuario puede expandir. Esto resulta útil para encuestas grandes que pueden resultar complicadas de leer y navegar para el usuario. Esta apariencia se define en la pregunta de repetición de inicio.
A diferencia de otras apariencias, repeat puede utilizar tanto minimal como compact a la vez, definiendo la apariencia como minimal compact. De este modo, las preguntas se presentan de forma contraída (compact) y oculta (minimal).
Al establecer la apariencia de una pregunta begin repeat en tabular, las preguntas de la repetición se presentan como una tabla. Para obtener más información, consulte Repeticiones tabulares.
Nota:
En Survey123 Connect, también puede establecer las siguientes apariencias para las repeticiones de las encuestas utilizadas con la aplicación de campo Survey123 o la aplicación web Survey123:
- Al configurar la columna style de la hoja settings en pages y la apariencia de cada pregunta de repetición de inicio en field-list, aparece cada colección repetible de preguntas en una página separada de la encuesta. Este comportamiento es el mismo que para un grupo.
- Al definir la columna style de la hoja settings en fixed-grid o dynamic-grid, puede configurar que las repeticiones de la encuesta muestren las preguntas contenidas en un diseño de cuadrícula. Este comportamiento es el mismo que para un grupo.
Repeticiones tabulares
Nota:
En esta sección se describe una funcionalidad que solo está disponible en Survey123 Studio y Survey123 Mobile.
En Survey123 Connect, la aplicación de campo Survey123 y la aplicación web Survey123, se ignoran la apariencia tabular y sus parámetros XLSForm asociados.
Al establecer la apariencia de una pregunta begin repeat en tabular, las preguntas de la repetición se presentan como una tabla. En la vista tabular, los registros del grupo repetido se presentan como filas y las preguntas, como columnas. La vista tabular permite editar los datos directamente en las celdas, así como ordenar los registros del grupo repetido y desplazarse por ellos.
La vista tabular se muestra en la siguiente imagen:

Las llamadas de la imagen que aparece arriba se detallan a continuación:
- Toque el botón de menú de cada fila para acceder a las opciones Editar en la vista de formulario, Copiar en un registro nuevo y Eliminar.
- El icono de solo lectura indica que una pregunta (columna) no se puede editar en la vista tabular.
- Toque el encabezado de una columna para ordenar la vista tabular en orden ascendente y, si lo desea, haga lo siguiente:
- Vuelva a tocar el encabezado de la columna para ordenar en orden descendente.
- Toque el encabezado de la columna por tercera vez para desactivar la ordenación (volver al orden original de las filas). También puede tocar el encabezado de otra columna para ordenar por esa columna.
- Toque una celda para editar su valor. En la vista tabular solo se pueden editar algunos tipos de preguntas.
- Toque el botón Borrar de una celda para eliminar su valor.
También puede editar registros individuales en la vista de formulario. La vista de formulario presenta los registros individuales de la repetición en un formulario de encuesta independiente con todas las funciones.
La apariencia tabular se puede utilizar junto con las apariencias minimal y compact.
Para empezar a utilizar repeticiones tabulares, siga estos pasos en Survey123 Studio:
- Establezca la apariencia de la pregunta begin repeat en tabular.
La vista tabular permanece vacía hasta que se agregan preguntas.
- Agregue una o varias preguntas a la vista tabular escribiendo showInTabularView=true en la columna body::esri:style de cada pregunta.
- Configure la vista tabular con parámetros opcionales.
Agregar preguntas a la vista tabular
Puede agregar preguntas a la vista tabular escribiendo showInTabularView=true en la columna body::esri:style de las preguntas de la repetición. En la vista tabular puede editar los siguientes tipos de preguntas:
- texto
- entero
- decimal
- fecha
- hora
- dateTime
Todos los demás tipos de preguntas se muestran como columnas de solo lectura en la vista tabular.
Precaución:
Tenga en cuenta lo siguiente al agregar preguntas a la vista tabular:
- Las preguntas de la repetición que contienen una expresión (incluido yes) en la columna readonly no se pueden editar en la vista tabular.
- Las preguntas de la repetición que contienen una expresión en la columna body::esri:visible o que tienen la apariencia hidden no se muestran en la vista tabular.
- Las preguntas de la repetición que contienen una expresión en la columna relevant no se muestran en la vista tabular.
- Las preguntas de la repetición que contienen una expresión (incluido yes) en la columna required o una expresión en la columna constraint se muestran en la vista tabular. Cuando no se cumple una o varias condiciones obligatorias o restricciones, se muestra una advertencia general sobre la vista tabular y aparece un icono de advertencia junto a cada registro (fila) que contiene errores. No puede enviar la encuesta hasta que se solucionen estos problemas. Puede editar los registros en la vista de formulario para ver los mensajes de advertencia de restricciones y campos obligatorios correspondientes a cada pregunta. Cuando la repetición contiene errores, la opción Editar en la vista de formulario está disponible incluso si el parámetro editInFormView de la columna body::esri:style está establecido en false.
Opciones de la vista tabular
Puede configurar opciones relacionadas con los registros (filas) de la vista tabular especificando parámetros en la columna body::esri:style de una pregunta begin repeat. Estos parámetros opcionales se describen en la tabla siguiente. Puede agregar varios parámetros separándolos con espacios. A continuación, encontrará un ejemplo:
addRecordMode=form copyToNewRecord=false
Cuando establece la apariencia de una pregunta begin repeat en tabular y no especifica ningún parámetro en la columna body::esri:style de esta pregunta, las opciones Editar en la vista de formulario, Copiar en un registro nuevo y Eliminar están disponibles de forma predeterminada en la vista tabular.
| Parámetro | Descripción |
|---|---|
| addRecordMode | Especifique el modo del botón Agregar registro y de la opción Copiar en un registro nuevo en la vista tabular. El valor predeterminado es row. Cuando el valor es row, el nuevo registro se agrega a la vista tabular. Cuando el valor es form, el nuevo registro se abre en la vista de formulario. Valores: row | form Ejemplo: |
| editInFormView | Muestre u oculte la opción Editar en la vista de formulario en la vista tabular. El valor predeterminado es true. Nota:Cuando la repetición contiene errores, la opción Editar en la vista de formulario está habilitada incluso si el parámetro editInFormView está establecido en false. Valores: true | false Ejemplo: |
| copyToNewRecord | Muestre u oculte la opción Copiar a nuevo registro en la vista tabular. Esta opción permite a los usuarios duplicar un registro de la repetición. El valor predeterminado es true. El parámetro addRecordMode determina cómo se agrega el registro duplicado. Valores: true | false Ejemplo: |
| editInTabularView | Habilite o deshabilite la edición en la vista tabular. El valor predeterminado es true. Cuando el valor es false, todas las celdas de la vista tabular son de solo lectura. Valores: true | false Ejemplo: |
Limitaciones al utilizar repeticiones tabulares
Las siguientes limitaciones se aplican a las repeticiones tabulares:
- La apariencia tabular no se admite en repeticiones anidadas.
- La opción Copiar en un registro nuevo no copia los adjuntos ni las repeticiones anidadas en el nuevo registro. Este comportamiento coincide con el de la copia de registros de encuesta en un registro nuevo desde la carpeta Enviado o la bandeja de entrada.
- Cuando la vista tabular está ordenada, se recomienda no editar los valores de la columna por la que se ha aplicado la ordenación, ya que esta se actualiza inmediatamente con cada pulsación de tecla.
- Cuando una repetición tabular se encuentra dentro de un grupo que contiene una expresión relevante, su vista tabular estará vacía cuando el grupo pase a ser relevante.
- En los idiomas de derecha a izquierda, el orden de las columnas de la vista tabular no se invierte y los encabezados de las columnas no siempre se alinean a la derecha.
Especificar el número de registros repetidos
Nota:
Esta sección describe funciones que solo están disponibles en Survey123 Connect y en la aplicación de campo Survey123. Estas funciones no están disponibles en Survey123 Studio ni en Survey123 Mobile.
Para especificar el número de registros de repetición, establezca un recuento de repeticiones siguiendo estos pasos:
- En la fila en la que desee iniciar la repetición, escriba begin repeat en la columna type de la pestaña survey.
- Proporcione un valor numérico para el número de repeticiones en la columna repeat_count.
Si lo desea, proporcione un nombre de pregunta o un cálculo que devuelve un valor numérico.
- Proporcione un nombre para la repetición en la columna name.
- En las filas siguientes a esta entrada, introduzca las preguntas que desea incluir en la repetición.
- En la última fila, escriba end repeat en la columna type.
Cuando un usuario abre la encuesta, ya se ha creado el número de repeticiones definido en la columna repeat_count. Los usuarios no pueden crear ni eliminar repeticiones.
Los usuarios deben navegar a todos los registros repetidos definidos por el valor repeat_count antes de enviar la respuesta a la encuesta. De lo contrario, no se enviarán todos los registros repetidos, ya que las expresiones y los valores predeterminados no se pueden aplicar a las repeticiones hasta que los usuarios naveguen hasta el registro. Para asegurarse de que se envíen todas las repeticiones, puede hacer que las preguntas sean obligatorias en las repeticiones. Las preguntas de las repeticiones que tengan aplicada una instrucción relevant o conditionally required no se evaluarán en el envío.
Nota:
El comportamiento de una repetición que tiene un recuento de repeticiones cambiante es distinto dependiendo de si el usuario está creando una respuesta a la encuesta o editando una que se había enviado anteriormente, como sigue:
- Al crear una respuesta a una encuesta, la aplicación de campo muestra un botón en la parte superior de la repetición para eliminar todos los registros existentes por encima del nuevo recuento de repetición que contiene datos; los registros vacíos se eliminan automáticamente. Independientemente de si se pulsa este botón, al enviar la respuesta a una encuesta se envían todos los registros excepto los que están vacíos.
- Al editar una respuesta existente a una encuesta, la aplicación de campo muestra un mensaje en la parte superior de la repetición para indicar que el número de registros no coincide con el recuento de repeticiones. Solo es posible agregar nuevos registros de repetición si allowAdds tiene el valor true en la columna bind::esri:parameters. Los registros que superen el número de repeticiones no se pueden eliminar porque la aplicación de campo no admite la eliminación de registros repetidos existentes. Las respuestas editadas a la encuesta se pueden enviar incluso cuando el número de registros repetidos no coincide con el recuento de repeticiones.
Funciones de agregación
Nota:
Esta sección describe funciones que solo están disponibles en Survey123 Connect y en la aplicación de campo Survey123. Estas funciones no están disponibles en Survey123 Studio ni en Survey123 Mobile.
Puede utilizar encuestas con funciones añadidas que devuelven valores derivados de respuestas en repeticiones. Para ello, una pregunta fuera de la repetición hace referencia a una pregunta de una repetición. Por ejemplo, la fórmula siguiente contará las respuestas a una pregunta única en repeticiones:
count(${repeated_question})
Puede usar las siguientes funciones para agregar respuestas:
- count
- sum
- min
- max
- join
Estas funciones solo se aplican a la respuesta de la encuesta actual. No se tienen en cuenta otros registros de la capa de entidades. También puede incluir preguntas con sum y count en la repetición. Sin embargo, aunque los valores de sum y count se calculen para cada nuevo registro que se agrega a la repetición, los cálculos de entradas anteriores de la repetición no se actualizan automáticamente. Puede refrescar manualmente estos cálculos con el botón Refrescar situado junto a la pregunta. El uso de min y max solo se admite fuera de la repetición.
Nota:
Cuando se utiliza en la aplicación de campo Survey123, las funciones sum, count y join se puede colocar dentro o fuera de la repetición. Si sum, count y join se van a utilizar en la aplicación web Survey123, deben colocarse fuera de la repetición. En un cálculo dentro de la repetición se puede hacer referencia a un valorsum, count o join de fuera de la repetición.
Puede utilizar la función join para concatenar preguntas que devuelven una cadena de caracteres. Puede utilizar también la función sum para conectar preguntas geopoint en la repetición como una pregunta geotrace o geoshape ajena a esta.
Para obtener información sobre el uso de estas funciones, consulte Fórmulas.
Devolver el índice de un registro repetido
Puede utilizar la función position(..) para devolver un entero que refleje el índice del registro de repetición en una repetición. Por ejemplo, el primer registro de una repetición devolverá 1, el segundo devolverá 2, y así sucesivamente. En el siguiente ejemplo, la función position(..) se usa en una pregunta de tipo entero oculta en una repetición:

Precaución:
La función position(..) siempre devuelve 0 en Survey123 Mobile y la aplicación de campo Survey123 o 1 en la aplicación web Survey123 cuando se utiliza fuera de una repetición o en un grupo que está dentro de una repetición.
También puede usar la función position(..) en una expresión. En el siguiente ejemplo, la función selected-at() utiliza position(..) para devolver la opción que se seleccionó en la pregunta select_multiple en la misma posición que el registro de repetición actual y mostrar la opción en la repetición como una nota. La función selected-at() empieza a contar las opciones desde cero, por lo que una se resta de position(..) para garantizar que los índices coincidan, como sigue:
selected-at(${issues}, position(..)-1)

Puede usar la función position(..) junto con indexed-repeat() para extraer valores de preguntas de registros repetidos específicos.
Utilizar valores de repeticiones indexadas
Nota:
Esta sección describe funciones que solo están disponibles en Survey123 Connect y en la aplicación de campo Survey123. Estas funciones no están disponibles en Survey123 Studio ni en Survey123 Mobile.
Puede utilizar la función indexed-repeat() para devolver el valor de una pregunta específica de un registro de repetición. Requiere el nombre de la pregunta, el nombre de la repetición y el número de índice de la repetición, en ese orden. El siguiente ejemplo devuelve la respuesta a la pregunta room_no para el tercer registro de la repetición floor:
indexed-repeat(${room_no}, ${floor}, 3)
Puede usar la función indexed-repeat() para las repeticiones dentro de repeticiones. Cuando se utiliza de esta forma, solo recibirá valores accesibles desde la repetición principal visible actualmente.
Precaución:
La función indexed-repeat() no se puede utilizar dentro de la repetición a la que hace referencia, ya que esto provocará una referencia circular. Por ejemplo, la siguiente expresión no se puede utilizar para un cálculo dentro de la repetición denominada defects:
indexed-repeat(${defect_type}, ${defects}, 3)
Limitaciones conocidas
A continuación, se muestran limitaciones conocidas y comportamientos inesperados relacionados con el uso de repeticiones en Survey123:
- Si una encuesta contiene varias repeticiones, y una de estas repeticiones tiene una pregunta geopoint, geotrace o geoshape, la denominación de la relación podría publicarse desordenada.
- Las repeticiones anidadas admiten solo las relaciones de uno a muchos y cada elemento secundario puede tener un único elemento principal.
- Las repeticiones anidadas con una expresión en la columna relevant y una expresión de la columna repeat_count borran todos los datos guardados existentes en el primer registro repetido. Para evitarlo, incorpore la expresión relevante a la expresión repeat_count para que no se cree ningún registro de repetición si la repetición no es relevante.
- Editar respuestas individuales en la aplicación web Survey123 o en el sitio web de Survey123 no es compatible con las encuestas que contienen repeticiones anidadas.