Funciones contextuales


Función Operador Ejemplo Notas
respuesta actual a la pregunta . .<10.51 La respuesta debe ser menor a 10.51
hoy today() today() Devuelve la fecha de hoy
ahora now() now() Devuelve una marca de tiempo para este instante

Funciones matemáticas


NOTA: Debes colocar un espacio entre los operadores matemáticos en tus fórmulas - e.g. {{precio1}}-{{precio3}} no es válido, sino {{precio1}} - {{precio3}}


Función Operador Ejemplo Notas
suma + {{precio1}} + {{precio2}}
resta -

{{precio1}} - {{precio2}}


multiplicación *

{{precio1}} * {{precio2}}


división div

{{precio1}} div {{precio2}}

Debes usar el operador 'div'. Usar '/' no funcionará
mayor que >

{{precio}} > 10.51

mayor que 10.51 también puede combinarse con igual: >=
menor que  <

{{precio}} < 10.51

menor que 10.51 también puede combinarse con igual: <=

aproximar round(valor,potencia) round({{precio}},3) Devuelve el valor aproximado, como en Excel

Funciones de texto


Función Operador Ejemplo Nota
valores de cadena concatenados concat(valor1, valor2, ...) concat({{name}}, 'con id:', {{id_nacional}}) Devuelve los valores de cadena concatenados. Añade saltos de línea con '\n' - e.g. concat('Hola', '\n', 'Adiós'):
Hola
Adiós
extraer una subcadena substr(valor, inicio)

substr(valor, inicio, extensión)
substr('test', 1, 2) = 'es' Devuelve la subcadena empezando por el inicio con índice 0 y se extiende hasta el final de la cadena, a menos que se especifique la extensión.
extensión de la cadena string-length(valor) string-length('test')=4
Devuelve la extensión de una cadena que no está vacía.
concatenar valores con un separador join(separatorString, valor1, valor2, ...) concat('The answers are:', join(', ', {{pregunta1}}, {{pregunta2}})) Concatena las respuestas utilizando el primer argumento como un separador.

Funciones repetibles de grupo


Función Operador Ejemplo Notas
sumar valores repetidos sum(nombrerepetido) sum({{precioprod}}) Devuelve la suma de los valores de respuesta para todas las repeticiones de una pregunta especifica.
concatenar respuestas repetidas con un separador join(separatorString, valorrepetido) concat('Los productos ordenados son:', join('\n', 

{{nombreprod}}))

Devuelve las respuestas repetidas concatenadas, usando el primer argumento como un separador. 
Para agregar saltos de línea usa '\n'.
contar repeticiones count(nombrerepetido) count({{productos}}) Devuelve un recuento de los sucesos repetidos en una pregunta/grupo.
máximo valor de las repeticiones max(nombrerepetido)

max({{precioprod}})

Devuelve el valor de respuesta máximo de todas las repeticiones de una pregunta especificada.
mínimo valor de las repeticiones

min(nombrerepetido)

max({{precioprod}})

Devuelve el valor de respuesta mínimo de todas las repeticiones de una pregunta especificada.


Funciones lógicas


Función Operador Ejemplo Notas
no not(expresión) not(selected({{seleccion1}},'c')) Siempre y cuando 'c' no sea la respuesta seleccionada en una pregunta especifica.
y and selected(., 'c') and selected (., 'd') Ambas 'c' y 'd' deben estar seleccionadas en la respuesta.
o or

selected(., 'c') or selected (., 'd')

Cualquier 'c' o 'd' debe estar seleccionada en la respuesta.
verdad true() true()
falso false() false()
expresión regular regex(expresion)

regex(., '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}')

Esta fórmula comprueba que el correo electrónico sea válido.
igual a = = number('10') La respuesta debe ser igual a 10.
condicional if(condicion, a, b)

if(selected({{pregunta1}}, 'si') and selected({{pregunta2}}, 'si'), 'si', 'no')

Si es verdad devuelve a, de lo contrario devuelve b.
primer valor no vacío coalesce(a, b) coalesce({{nombre}}, {{id_nacional}}) Si nombre tiene un valor, devuelve el nombre, de lo contrario devuelve el id_nacional.
al menos X, como máximo X checklist(min, max, v1, v2, v3, ..., vn)

checklist(min, max, v1, v2, v3, ..., vn)

De v1 a vn son un conjunto n de respuesta de sí/no. Devuelve verdadero si la suma de "sí" se encuentra entre los valores máximos y mínimos. Los valores máximo y mínimos pueden ser cada uno -1 para indicar "no aplica" ("not applicable").


Funciones de conversión de datos


Función Operador Ejemplo Notas
convertir a número number (marcador de posición o número fijo) number({{edad}}) La conversión varía en función de X.
convertir a cadena

string (marcador de posición o número fijo)

string({{edad}})

La conversión varía en función de X.

convertir a fecha

date (marcador de posición o número fijo)

date({{edad}})

La conversión varía en función de X. El formato es yyyy-mm-dd

booleano de cadena

boolean-from-string(marcador de posición o número fijo)

boolean({{superior30}}) Devuelve verdadero si x es "verdadero" o "1", de lo contrario devuelve falso. Ten en cuenta que se comporta diferente que boolean(x).
fecha de formato como cadena

format-date(marcador de posición, formato)

format-date(today(), 'yyyy-MMM-dd')

Devuelve el valor del campo en el formato definido en la fórmula. El argumento de formato debe ser un formato de cadena válido.

Las especificaciones de formato más usadas, incluyen:
yy - año (2 dígitos)
yyyy - año (4 dígitos)
MM - mes (2 dígitos)
MMM - mes (abreviado en 3 caracteres)
dd - día (2 dígitos)


Funciones de opciones


Función Operador Ejemplo Notas
selección selected(marcador de posición, valor) selected({{pregunta}}, 'n') Comprueba si se ha seleccionado una respuesta en preguntas de opciones.
sumar selecciones

count-selected(marcadores de posición multiple)

count-selected({{respuestamultiple}})

Devuelve el número de respuestas seleccionadas.