Vision DocumentaciónConsultas
DocumentaciónConsultas
Consultas
Años | Lista de Artículos

Fórmulas en Consultas

Última modificación el 05/11/2025

Vision permite obtener nuevas columnas de datos como resultado de la definición de fórmulas, mediante el uso de una sintaxis o lenguaje sencillo. Cada fórmula tiene asociado un tipo, el cual no es necesario definir: Vision lo determina automáticamente en función de lo que indique la gramática.

Añadir Fórmulas

Las fórmulas se pueden añadir de dos formas:

  • Como columnas de un dataset, lo que hace que estén disponibles como un campo más en cualquier dialogo de consulta.
  • En la consulta asociada a un widget en una app, incluyéndolas en un bloque Seleccionar.

En el editor de fórmulas hay un espacio donde se escribe la expresión de la misma. El usuario puede escribirla directamente si conoce el lenguaje y así lo desea, pero para facilitar la tarea el editor cuenta con algunos recursos útiles:

  1. Componentes: sección con los campos disponibles para incluir en la fórmula, separados en función de si son dimensiones (fecha o texto) o medidas. En el caso de fórmulas en datasets dispone todos los campos del dataset, y en el caso de una fórmula en la consulta de un widget dispone los campos que llegan al bloque Seleccionar donde se define la fórmula.
  2. Funciones: permite seleccionar la función u operación que se quiere incluir. Hay una gran cantidad de funciones disponibles para que el lenguaje de fórmulas permita realizar cálculos complejos, que se describen en la siguiente sección.
  3. Variables: incluye ciertos variables o valores relevantes para el uso en fórmulas. Hay de 3 tipos:
    • Estáticas:
      • null: equivalente al valor nulo, vacío o no informado de un campo.
      • now y today: ambas corresponden a la fecha actual, la primera hasta el milisegundo, y la segunda truncada al día.
    • Subconsultas: el uso natural de las subconsultas es a través de fórmulas. Cada subconsulta se calcula de forma independiente a los widgets de una aplicación, y devuelve un conjunto de datos dispuestos en filas (máximo 12) y campos. En una fórmula se puede seleccionar un valor indicando el campo y fila de una subconsulta (0 ? primera fila, 1 ? segunda fila, etc.), o bien incluir todos los valores en forma de array. La variable se escribe como una expresión especial, a partir de la sintaxis ""$SQ_subqueryName_columnName__N"".
    • Filtros: permite incluir valores seleccionados en los filtros. Se puede seleccionar un valor indicando el campo y posición en su lista de valores ordenada (0 ? primera fila, 1 ? segunda fila, etc.), o bien incluir todos los valores en forma de array. En el segundo caso la recomendación es usar campos con lista de valores ""corta"", ya que una lista con muchos valores (miles) afecta directamente al rendimiento de la consulta. La variable se escribe como una expresión especial, a partir de la sintaxis ""$FILTER_columnName__N"".
    • Escenarios: el uso natural de los escenarios es a través de fórmulas. Cualquier palanca o escenario definido está accesible como variable: el valor seleccionado por el usuario será el transmitido a la fórmula a través de su variable.La variable se escribe como una expresión especial, con la sintaxis ""$shifterName"".
  4. Ayuda Interactiva: al escribir texto el editor va mostrando las opciones que coinciden con el texto que el usuario escribe, bien componentes, funciones o variables. Además, en el caso de las funciones, se muestra un tooltip con la descripción de las mismas.

Usar Funciones

La pestaña Funciones contiene todas las operaciones y cálculos que se pueden llevar a cabo en el diálogo de fórmulas. Hay varias categorías, en función de la entrada/salida de la función, cada una con su bloque asociado en la lista de funciones:

  • Arrays
  • Comparación
  • Condicionales
  • Conversión
  • Fechas
  • Lógicas
  • Matemáticas
  • Operadores
  • Texto
  • Trigonométricas

Editor de fórmulas mostrando las clases de funciones

Nota: En caso de usar cadenas de texto con caracteres especiales, como "",+,% u otros, como argumentos de las funciones, se han escribir precedidos por la barra backslash \ para que se interpreten como parte de la cadena de texto y no como símbolos especiales.

Arrays

Estas funciones son especiales ya que manejan arrays o conjuntos ordenados de datos como argumentos. Se usan principalmente para manejar los resultados de las subconsultas o listas de valores de filtros.

Funciones

Contiene el valorElemento del arrayPosición del valorTamaño del array
contains(A, v)elementAt(A, i)indexOfArray(A, v)size(A)

Contiene el valor

Sintaxis: contains(Array, value)

Comprueba si value está contenido en el conjunto de elementos en forma de Array, como por ejemplo sucede con el resultado de una subconsulta. Devuelve true si la expresión forma parte del conjunto o false en caso contrario.

Ejemplos:

EjemploResultado
contains([""a"", ""b"", ""c""], ""a"")true
contains([""a"", ""b"", ""c""], ""d"")false
contains($SQ_Field_Var, [Column])Devuelve true si el valor del campo Column pertenece al conjunto de valores del campo Field devuelto por la subconsulta SQ, y false en caso contrario.

Elemento del array

Sintaxis: elementAt(Array, index)

Devuelve el valor o elemento del array situado en la posición ""index"". Tener en cuenta que un array de N elementos tiene índices desde 0 hasta N-1, si el índice es mayor que N-1 se devuelve vacío.

Ejemplos:

EjemploResultado
elementAt([""a"", ""b"", ""c""], 0)a
elementAt([""a"", ""b"", ""c""], 2)c
elementAt([""a"", ""b"", ""c""], 3)
elementAt($SQ_Field_Var, [Column])Devuelve el elemento con índice igual al valor del campo numérico Column a partir del conjunto de valores del campo Field devuelto por la subconsulta SQ.

Posición del valor

Sintaxis: indexOfArray(Array, value)

Comprueba si value está contenido en el conjunto de elementos en forma de Array, como por ejemplo sucede con el resultado de una subconsulta. Devuelve el número igual al índice del elemento igual a value si la expresión forma parte del conjunto o -1 en caso contrario. Tener en cuenta que un array de N elementos tiene índices desde 0 hasta N-1

Ejemplos:

EjemploResultado
indexOfArray([""a"", ""b"", ""c""], ""a"")0
indexOfArray([""a"", ""b"", ""c""], ""c"")2
indexOfArray([""a"", ""b"", ""c""], ""d"")-1
indexOfArray($SQ_Field_Var, [Column])Devuelve el índice del valor del campo Column si éste pertenece al conjunto de valores del campo Field devuelto por la subconsulta SQ, y -1 en caso contrario.

Tamaño del array

Sintaxis: size(Array)

Devuelve un valor numérico igual al número de elementos o tamaño de Array. Los elementos del array deben de tener todos el mismo tipo.

Ejemplos:

EjemploResultado
size(["a", "b"])2
size([15,29,33])3
size([])0

Comparación (igualdad)

Funciones

ComparaciónIgualNo igual
cmp(v1,v2)eq(v1,v2)ne(v1,v2)

Comparación

Sintaxis: cmp(value1, value2)

Compara el tipo y el valor de los dos argumentos:

  • Si los tipos son iguales devuelve 1 si el primer valor es mayor que el segundo, -1 si es menor y 0 si son iguales.
  • Si los tipos son diferentes se sigue el criterio de orden de menor a mayor: nulo, número, texto, array, booleano (true, false) y fecha.
EjemploResultado
cmp(1, ""a"")-1
cmp(1, 1)0
cmp(1, 2)-1
cmp(2, 1)1
cmp(""a"", ""b"")-1
cmp(false, 1)1
cmp(1, $null)1

Igual

Sintaxis: eq(value1, value2)

Compara dos valores entre sí, y devuelve true si los dos valores y sus tipos son iguales, y false en caso contrario.

Ejemplos:

EjemploResultado
eq(3, 15)false
eq(3, 3)true
eq(3, ""3"")false
eq([Column], 15)true si el valor del campo Column es igual al número 15, y false en caso contrario.
eq([Column], $null)true si el valor del campo Column es el valor nulo (vacío) y false en caso contrario.

No igual

Sintaxis: ne(value1, value2)

Compara dos valores entre sí, y devuelve true si los dos valores o sus tipos son diferentes, y false en caso contrario.

Ejemplos:

EjemploResultado
ne(3, 15)true
ne(3, 3)false
ne(3, ""3"")true
ne([Column], 15)false si el valor del campo Column es igual al número 15, y true en caso contrario.
ne([Column], $null)false si el valor del campo Column es el valor nulo (vacío) y true en caso contrario.

Comparación (mayor/menor)

Funciones

Mayor o igualMayorMenor o igualMenor
gte(v1,v2)gt(v1,v2)lte(v1,v2)lt(v1,v2)

Mayor o igual

Sintaxis: gte(value1, value2)

Compara dos valores entre si, y devuelve true si el primer valor es mayor o igual al segundo y sus tipos son iguales, y false en caso contrario.

Ejemplos:

EjemploResultado
gte(3, 15)false
gte(3, 3)true
gte(15, 3)true
gte(""a"", ""b"")false
gte([Column], 15)true si el valor del campo Column es mayor o igual a 15 y false en caso contrario.
gte(0, $null)true, el criterio de orden entre tipos es de menor a mayor: nulo, número, texto, array, booleano (true, false) y fecha.

Mayor

Sintaxis: gt(value1, value2)

Compara dos valores entre si, y devuelve true si el primer valor es mayor que el segundo y sus tipos son iguales, y false en caso contrario.

Ejemplos:

EjemploResultado
gt(3, 15)false
gt(3, 3)false
gt(15, 3)true
gt(""a"", ""b"")false
gt([Column], 15)true si el valor del campo Column es mayor que 15 y false en caso contrario.
gt(0, $null)true, el criterio de orden entre tipos es de menor a mayor: nulo, número, texto, array, booleano (true, false) y fecha.

Menor o igual

Sintaxis: lte(value1, value2)

Compara dos valores entre si, y devuelve true si el primer valor es menor o igual al segundo y sus tipos son iguales, y false en caso contrario.

Ejemplos:

EjemploResultado
lte(3, 15)true
lte(3, 3)true
lte(15, 3)false
lte(""a"", ""b"")true
lte([Column], 15)true si el valor del campo Column es menor o igual a 15 y false en caso contrario.
lte(0, $null)false, el criterio de orden entre tipos es de menor a mayor: nulo, número, texto, array, booleano (true, false) y fecha.

Menor

Sintaxis: lt(value1, value2)

Compara dos valores entre si, y devuelve true si el primer valor es menor que el segundo y sus tipos son iguales, y false en caso contrario.

Ejemplos:

EjemploResultado
lt(3, 15)true
lt(3, 3)false
lt(15, 3)false
lt(""a"", ""b"")true
lt([Column], 15)true si el valor del campo Column es menor que 15 y false en caso contrario.
lt(0, $null)false, el criterio de orden entre tipos es de menor a mayor: nulo, número, texto, array, booleano (true, false) y fecha.

Condicionales

Las funciones condicionales, de uso muy frecuente, permiten cambiar establecer condiciones para la transformación de los campos originales. Son las siguientes:

Funciones:

Condicional simpleCondicional múltipleSi es nulo
cond(b, v1, v2)switch(b1, v1; b2, v2; ... ; v)ifNull(v, r)

Condicional simple

Sintaxis: cond(boolean, value1, value2)

El primer argumento es un booleano (true o false), por ejemplo el resultado de una función de comparación. Si boolean es igual a true la función devuelve value1, y en caso contrario Value2. Además, value1 y value2 deben de tener obligatoriamente el mismo tipo de dato.

Ejemplos:

EjemploResultado
cond(true, 1, 0)1
cond(false, 1, 0)0
cond(eq(1, ""1""), 1, 0)0
cond(gt(5, 22), 1, 0)*1
cond(gt([Reference], 100), [Column1], [Column2])Devuelve el valor del campo Column1 si el valor de la columna Reference es mayor que 100, y el valor del campos Column2 en caso contrario.

Condicional múltiple

Sintaxis: switch(boolean1, value1; boolean2, value2; ...; value)

La función recibe parejas de valores (booleanvalue) separadas por "";"". Si boolean1 es igual a true la función devuelve value1, y sino se pasa a la siguiente pareja; si boolean2 es igual a true la función devuelve value2, y sino se pasa a la siguiente pareja; este proceso se repite tantas veces como parejas (booleanvalue) se indiquen; finalmente, si todos los boolean son false, se devuelve value. Particularidades:

  • Hay que definir como mínimo 2 condiciones, de lo contrario se debe usar la función condicional simple.
  • El valor por defecto no es obligatorio, se devuelve un valor nulo en caso de no estar definido.

Ejemplos:

EjemploResultado
switch(true, 1; false, 2; 0)1
switch(false, 1; false, 2)null
switch(eq(1, ""a""), 1; eq(1, true), 2; eq(1, 1), 3; 0)3
switch(eq(1, ""a""), 1; eq(1, true), 2; eq(1, 2), 3; 0)0
switch(lt([Column], 5), ""lt""; gt([column], 5), ""gt""; ""eq"")Si el valor del campo numérico Column es menor que 5 devuelve ""lt"", si es mayor ""gt"", y ""eq"" en el resto de casos.

Si es nulo

Sintaxis: ifNull(value, replacement)

La función ifNull permite reemplazar los valores null de una columna por otro valor. Si value tiene valor null la función devuelve el valor replacement, y en caso contrario value. Es obligatorio que replacement tenga el mismo tipo de dato que value.

Ejemplos:

EjemploResultado
ifNull(0, 1)0
ifNull($null, 1)1
ifNull([Column], 0)Devuelve 0 si el valor del campo numérico Column es null, y en caso contrario el valor de Column.

Conversión

Las funciones de conversión permiten cambiar el tipo de un campo. Este proceso es, por lo general, delicado, especialmente cuando cuando hay decimales, signos de puntuación o formatos especiales. Es recomendable hacer un test y validar que todo funciona correctamente al usar estas funciones.

Funciones:

Número a textoTexto a número
toString(n)toNumber(t)

Número a Texto

Sintaxis: toString(number)

Convierte el valor number en un texto. Los números enteros se devuelven sin decimales, y los números con decimales se devuelven con un máximo de 5 decimales. Además, a partir de 10 dígitos enteros se da formato exponencial al número.

Ejemplos:

EjemploResultado
toString(1)1
toString(3.1416)3.1416
toString(3.1415926535)3.14159
toString(123456789)123456789
toString(12345678901)1.23457e+10
toString([Column])Devuelve como texto el valor numérico del campo Column.

Texto a Número

Sintaxis: toNumber(text)

Convierte la cadena text en un número, siempre que esto sea posible.

Ejemplos:

EjemploResultado
toNumber(""1"")1.00
toNumber(""3.1416"")3.1416
toNumber(""3a"")null
toNumber([Column])Devuelve, si es posible, el valor numérico del campo de tipo texto Column, y en caso contrario el valor nulo.

Fechas (partes)

Estas funciones permiten obtener información de las diferentes partes de una fecha.

Funciones:

AñoMesNombre del mesDía del mesNombre del díaTrimestre
year(d[,b])month(d[,b])monthName(d[,l])day(d[,b])dayName(d[,l])quarter(d[,p])

Año

Sintaxis: year(date [, boolean])

La función extrae el año del valor date. Si se indica el booleano true como segundo argumento el retorno de la función es numérico, mientras que en caso contrario o cuando solo se proporciona el primer argumento el retorno es de tipo texto.

Ejemplos:

EjemploResultado
year($now)20XY (texto)
year($now, true)20XY.00 (número)
year(dateFromParts(2023,1,1))2023
year(dateFromParts(2024,1,1), true)2024.00
year([Column])Año (text) asociado a cada fecha del campo Column.

Mes

Sintaxis: month(date [, boolean])

La función extrae el mes del valor date. Si se indica el booleano true como segundo argumento el retorno de la función es numérico (1-12), mientras que en caso contrario o cuando solo se proporciona el primer argumento el retorno es de tipo texto (01-12).

Ejemplos:

EjemploResultado
month(dateFromParts(2023,7,1))07
month(dateFromParts(2024,9,1), true)9.00
month([Column])Mes (01-12) asociado a cada fecha del campo Column.

Nombre del mes

Sintaxis: monthName(date [, language])

La función extrae el mes del valor date y devuelve el nombre del mes (""January"", ""February"", ...). El idioma del texto se determina de acuerdo al siguiente criterio de prioridad: idioma en el que se consume la aplicación (multilingüe) si está definido, idioma por defecto de la aplicación (multilingüe) si no se ha indicado ningún idioma específico, idioma por defecto del usuario en Vision (aplicación no multilingüe), idioma por defecto del navegador donde se consume la aplicación (no multilingüe).

Opcionalmente recibe un segundo parámetro que indica el idioma utilizado si este se quiere fijar. Para cambiar el idioma se debe pasar el parámetro utilizando el código ISO de dos letras relativo al idioma (""en"", ""pt"", ""es"").

Ejemplos:

EjemploResultado
monthName(dateFromParts(2023,7,1))July
monthName(dateFromParts(2024,9,1))September
monthName(dateFromParts(2024,9,1), ""es"")septiembre
monthName(dateFromParts(2024,9,1), ""pt"")setembro
monthName([Column])Nombre del mes asociado a cada fecha del campo Column.

Día del mes

Sintaxis: day(date [, boolean])

La función extrae el día del mes del valor date. Si se indica el booleano true como segundo argumento el retorno de la función es numérico (1-31), mientras que en caso contrario o cuando solo se proporciona el primer argumento el retorno es de tipo texto (01-31).

Ejemplos:

EjemploResultado
day(dateFromParts(2023,7,1))01
day(dateFromParts(2024,9,14), true)14.00
day([Column])Día del mes (01-31) asociado a cada fecha del campo Column.

Nombre del día de la semana

Sintaxis: dayName(date [, language])

La función extrae el día de la semana del valor date y devuelve su nombre ("Monday", "Tuesday", ...). El idioma del texto se determina de acuerdo al siguiente criterio de prioridad: idioma en el que se consume la aplicación (multilingüe) si está definido, idioma por defecto de la aplicación (multilingüe) si no se ha indicado ningún idioma específico, idioma por defecto del usuario en Vision (aplicación no multilingüe), idioma por defecto del navegador donde se consume la aplicación (no multilingüe).

Opcionalmente recibe un segundo parámetro que indica el idioma utilizado si este se quiere fijar. Para cambiar el idioma se debe pasar el parámetro utilizando el código ISO de dos letras relativo al idioma ("en", "pt", "es").

Ejemplos:

EjemploResultado
dayName(dateFromParts(2023,7,1))Saturday
dayName(dateFromParts(2024,9,1))Sunday
dayName(dateFromParts(2024,9,1), "es")domingo
dayName(dateFromParts(2024,9,2), "pt")segunda-feira
dayName([Column])Nombre del día de la semana asociado a cada fecha del campo "Column".

Trimestre

Sintaxis: quarter(date [, prefix])

La función extrae el trimestre del año del valor date (1-4), y lo devuelve como texto. Opcionalmente puede recibir un un texto entre comillas como segundo parámetro, que se usará como prefijo.

Ejemplos:

EjemploResultado
quarter(dateFromParts(2023,1,1))1
quarter(dateFromParts(2024,4,1), "T-")T-2
quarter(dateFromParts(2024,7,1))3
quarter(dateFromParts(2024,10,2), "Q")Q4
quarter([Column])Trimestre del año (1-4) asociado a cada fecha del campo "Column".

Fechas (completas)

Estas funciones permiten crear, transformar o convertir campos de naturaleza temporal.

Funciones:

Fecha a textoFecha desde textoFecha por componentes
dateToString(d, f)dateFromString(t)dateFromParts(y[, m, d, h, m, s, ms])

Fecha a texto

Sintaxis: dateToString(date, format)

Convierte la fecha a texto con el formato indicado.

Opciones de formato.

OpciónDescripciónValores
%YAño (4 dígitos)0000-9999
%mMes (2 dígitos)01-12
%dDía del mes (2 dígitos)01-31
%HHora (2 dígitos)00-23
%MMinutos (2 dígitos)00-59
%SSegundos (2 dígitos)00-60
%LMilisegundos (3 dígitos)000-999
%jDía del año (3 dígitos)001-366
%uDía de la semana (1-Lunes, 7-Domingo)1-7
%wDía de la semana (1-Domingo, 7-Sábado)1-7
%VSemana del año (2 dígitos)01-53
%USemana del año (2 dígitos)00-52

Ejemplos:

EjemploResultado
dateToString(dateFromParts(2023,1,1), "%Y")2023
dateToString(dateFromParts(2024,4,1,17,5,45,433), "%Y-%m-%d %H:%M:%S.%L")2024-04-01 17:05:45.433
dateToString(dateFromParts(2024,1,1), "%j from %Y")001 from 2024
dateToString(dateFromParts(2024,1,1), "%U or %V starting the year?")01 or 00 starting the year?
dateToString([Column]"%Y-%m-%d")Texto asociado a cada fecha del campo "Column" con formato "YYYY-MM-DD".

Fecha desde texto

Sintaxis: dateFromString(text)

Devuelve una fecha a partir del valor indicado en la cadena text, que se ha de construir con el formato "YYYY-MM-DD H24:MI:SS.sss". Se han de proporcionar el año y el mes obligatoriamente, el resto de formato es opcional.

Ejemplos:

EjemploResultado
dateFromString("2024-03")date "2024/03/01 00:00:00.000Z"
dateFromString("2024")ERROR
dateFromString("2024-03-28")date "2024/03/28 00:00:00.000Z"
dateFromString("2024-03-28 19:50:25.128")date "2024/03/28 19:50:25.128Z"
dateFromString([ColumnText])Fecha asociada al valor del campo "ColumnText", que debe de tener con formato ""YYYY-MM-DD H24:MI:SS.sss"".
dateFromString(dateToString(dateFromParts(2024,1,1),"%Y-%m-%d"))date "2024/01/01 00:00:00.000Z"
dateFromString(dateToString([ColumnDate]"%Y-%m-%d"))Fecha truncada al día para cada valor del campo fecha "ColumnDate".

Fecha por componentes

Sintaxis: dateFromParts(YYYY[, MM, DD, H24, MI, SS, sss])

Devuelve una fecha compuesta a partir de sus partes: año, mes, día, hora (formato 24h), minuto, segundos y milisegundos. Es obligatorio indicar al menos el año.

Ejemplos:

EjemploResultado
dateFromParts(2024)date "2024/01/01 00:00:00.000Z"
dateFromParts(2024, 3, 28)date "2024/03/28 00:00:00.000Z"
dateFromParts(2024, 3, 28, 19, 50,25, 128)date "2024/03/28 19:50:25.128Z"
dateFromParts(year([ColumnDate], true), month([ColumnDate], true), day([ColumnDate], true))Fecha construida a partir de las partes anual, mensual y diaria del campo Column.
dateFromParts(year($now, true), month($now, true), day($now, true))Fecha $now truncada al día, cuyo valor es igual a la variable $today.
dateFromParts([ColumnYear], [ColumnMonth], [ColumnDay])Fecha construida a partir del año, mes y día indicados por los campos numéricos ColumnYearColumnMonth y ColumnDay.

Lógicas

Las funciones lógicas realizan una operación lógica con sus argumentos, de tipo booleano. Su retorno es a su vez de tipo booleano (true/false), por lo que no se usan directamente como resultado de una fórmula, sino como variables en otras funciones que precisan booleanos como variables.

Funciones:

Función "O"Función "No"Función "Y"
or(b1, b2, ...)not(b)and(b1, b2, ...

Función "O"

Sintaxis: or(boolean1, boolean2, ...)

Devuelve true si alguno de los argumentos es true, y false en caso contrario.

Ejemplos:

EjemploResultado
or(true, false, false)true
or(false, false, false)false
or(eq(1,1), ne(1,2))true
or(gt(1,1), ne(1,2))true
or(gt(1,1), ne(1,1))false
or(gt([Column], 10), lt([Column], 4))Devuelve true si el valor del campo Column es mayor que 10 o menor que 4, y false en caso contrario.

Función "No"

Sintaxis: not(boolean)

Realiza la operación "negación": si el argumento es true devuelve false, y si es false devuevle true.

Ejemplos:

EjemploResultado
not(true)false
not(false)true
not(eq(1,2))true
not(ne(1,2))false
not(gt([Column], 10))Devuelve false si el valor del campo Column es mayor que 10, y true en caso contrario.

Función "Y"

Sintaxis: and(boolean1, boolean2, ...)

Devuelve true si todos los argumentos son true, y false en caso contrario.

Ejemplos:

EjemploResultado
and(true, true, false)false
and(true, true, true)true
and(eq(1,1), ne(1,2))true
and(gt(1,1), ne(1,2))false
and(gt(1,1), ne(1,1))false
and(gt([Column], 10), lt([Column], 4))Devuelve true si el valor del campo Column es mayor que 10 y menor que 4, y false en caso contrario.

Matemáticas (aproximación)

Estas funciones matemáticas devuelven un valor aproximado de un número.

Funciones:

Entero superiorEntero inferiorParte enteraRedondear decimales
ceil(n)floor(n)trunc(n)round(n[,p])

Entero superior

Sintaxis: ceil(number)

Devuelve el entero más pequeño que sea mayor o igual al número dado.

Ejemplos:

EjemploResultado
ceil(0.95)1
ceil(9.003)10
ceil(-2.8)-2
ceil(1.5)2

Entero inferior

Sintaxis: floor(number)

Devuelve el entero más grande que sea menor o igual al número dado.

Ejemplos:

EjemploResultado
floor(0.95)0
floor(9.003)9
floor(-2.8)-3
floor(1.5)1

Parte entera

Sintaxis: trunc(number)

Trunca el número dado a su valor entero: el entero inferior si es positivo y el superior si es negativo.

Ejemplos:

EjemploResultado
trunc(0.95)0
trunc(9.003)9
trunc(-2.8)-2
trunc(1.5)1

Redondear decimales

Sintaxis: round(number[, precision])

Redondea number a la precisión (accuracy) decimal indicada, y si no se indica ésta explícitamente se entiende como 0. Cuando redondea a valores enteros, el valor X.5 lo redondea a X si X es par, y a X+1 si X es impar, mientras que cuando se redondea a uno o más decimales, el valor X.Y5 lo redondea siempre a X.Y (cuestiones de precisión en la representación de los valores numéricos decimales).

Ejemplos:

EjemploResultado
round(0.95)1
round(9.003)9
round(-2.8)-3
round(1.5)2
round(2.5)2
round(0.957432, 3)0.957
round(0.957432, 1)1.0
round(0.857432, 1)0.9
round(0.95, 1)0.9
round(0.85, 1)0.8

Matemáticas (generales)

Funciones matemáticas de uso común, aplican únicamente a valores numéricos y devuelven un número.

Funciones:

Raiz cuadradaValor absoluto
sqrt(n)abs(n)

Raíz cuadrada

Sintaxis: sqrt(number)

Calcula la raíz cuadrada de number.

Ejemplos:

EjemploResultado
sqrt(0)0
sqrt(2)1.414213...
sqrt(4)2
sqrt(-2)ERROR

Valor Absoluto

Sintaxis: abs(number)

Devuelve el valor absoluto de number.

Ejemplos:

EjemploResultado
abs(-1)1
abs(0)0
abs(1)1

Matemáticas (exponencial y logaritmo)

Estas funciones matemáticas permiten obtener exponenciales y logaritmos.

Funciones:

ExponencialLogaritmo naturalLogaritmo
exp(n)ln(n)log(n)

Exponencial

Sintaxis: exp(number)

Eleva el número e al exponente number (enumber).

Ejemplos:

EjemploResultado
exp(0)1
exp(1)2.718282...
exp(-1)0.367879...

Logaritmo

Sintaxis: log(number, base)

Calcula el Logaritmo de number en la base indicada.

Ejemplos:

EjemploResultado
log(2, 2)1
log(4, 2)2
log(2, 10)0.301029...
log(-2, 10)ERROR

Logaritmo natural

Sintaxis: ln(number)

Calcula el logaritmo natural de number.

Ejemplos:

EjemploResultado
ln(1)0
ln(2.718282)1.000000...
ln(0.367879)-1.000001...
ln(-1)ERROR

Operadores

Los operadores aplican unicamente cuando se sitúan entre números. No tienen una sintaxis de función con argumentos, simplemente el operador va en medio de los 2 números o componentes.

Funciones:

SumaRestaMultiplicaciónDivisiónPotenciaResto de la división
+-//^%

Suma (+)

Sintaxis: addend1 + addend2

Calcula la suma de dos números o de un número y una fecha. Si una de las expresiones es de tipo fecha la otra expresión se trata como el número de milisegundos a añadir a la fecha.

El tipo de retorno de la fórmula es numérico si los sumandos son números, o una fecha si uno de los sumandos es de tipo fecha.

Ejemplos:

EjemploResultado
7+310
dateFromParts(2023,1,1,10,50) + 60000date 2023-01-01 10:51:00.000Z
[ColumnA] + [ColumnB]Devuelve el valor del campo ColumnA más el valor del campo ColumnB, excepto cuando alguno de los valores es nulo, que devuelve null.

Resta (-)

Sintaxis: minuend - subtrahend

Calcula la resta de dos números, de una fecha menos un número, o de dos fechas. Cuando se resta un número de una fecha el número se interpreta en milisegundos, y cuando resta 2 fechas ambas se convierten a milisegundos para proceder a una resta numérica.

El tipo de retorno de la fórmula es numérico si minuend y subtrahend son números, es una fecha si minuend es una fecha y subtrahend un número, y un número igual a la diferencia en milisegundos si minuend y subtrahend son ambos fechas.

Ejemplos:

EjemploResultado
7 – 34
dateFromParts(2023,1,1,10,50) - 60000date 2023-01-01 10:49:00.000Z
dateFromParts(2023,1,1,10,50) - dateFromParts(2023,1,1,10,49)60000
[ColumnA] - [ColumnB]Devuelve el valor del campo ColumnA menos el valor del campo ColumnB, excepto cuando alguno de los valores es nulo, que devuelve null.

Multiplicación (*)

Sintaxis: factor1 * factor2

Calcula la multiplicación de dos números, retornando a su vez un número.

Ejemplos

EjemploResultado
7 * 321
1 * 00
[ColumnA] * [ColumnB]Devuelve el valor del campo ColumnA multiplicado por el valor del campo ColumnB, excepto cuando alguno de los valores es nulo, que devuelve null.

División (/)

Sintaxis: dividend / divisor

Calcula la división de dos números, retornando a su vez un número. Cuando divisor toma el valor 0 el resultado es null, al igual que cuando o dividend o divisor sean nulo.

Ejemplos:

EjemploResultado
7 / 23.5
8 / 42
[ColumnA] / [ColumnB]Devuelve el valor del campo ColumnA dividido entre el valor del campo ColumnB, excepto cuando alguno de los valores es nulo o el valor de ColumnB es 0, que devuelve null.

Potencia (^)

Sintaxis: base ^ power

Eleva el número base al exponente numérico power especificado, retornando a su vez un número base power.

Ejemplos:

EjemploResultado
2 ^ 38
[ColBase] ^ 2Devuelve un número cuyo valor es el resultado de elevar el valor del campo ColBase al cuadrado, o null si el valor de ColBase es nulo.
2 ^ [ColPower]Devuelve un número cuyo valor es el resultado de elevar 2 al valor del campo ColPower, o null si el valor de ColPower es nulo.

Resto de la división (%)

Sintaxis: dividend % divisor

Permite calcular el resto de la división de dos números, retornando a su vez un número. Cuando divisor toma el valor 0 el resultado es null, al igual que cuando o dividend o divisor sean nulo.

Ejemplos:

EjemploResultado
7 % 21
8 % 40
[ColumnA] % [ColumnB]Devuelve el resto de dividir el valor del campo ColumnA entre el valor del campo ColumnB, excepto cuando alguno de los valores es nulo o el valor de ColumnB es 0, que devuelve null.

Texto (general)

Estas funciones permiten la manipulación de cadenas de texto. Son las siguientes:

Funciones

Comparación de cadenasConcatenaciónLongitudPosiciónSeparar texto
strCaseCmp(t1, t2)concat(t1, t2, ...)strLen(t)indexOf(t, s [, f, t])split(t, s)

Comparación de cadenas

Sintaxis: strCaseCmp(text1, text2)

Dados dos argumentos de tipo texto se realiza una comparación alfanumérica e ignorando las mayúsculas. El retorno es numérico:

  • 1 si text1 es mayor que text2.
  • 0 si ambos textos son iguales.
  • -1 si text2 es mayor text1.

Ejemplos:

EjemploResultado
strCaseCmp("hello", "bye")1 ("h" > "b")
strCaseCmp("hello", "Hello")0 ("h" = "H")
strCaseCmp("bye", "hello")-1 ("b" < "h")
strCaseCmp("123", "hello")-1 ("1" < "h")
strCaseCmp([Column1], [Column2])1 si el valor del campo Column1 es alfanuméricamente mayor que el del campo Column2, 0 si son iguales y -1 en caso contrario.

Concatenación

Sintaxis: concat(text1, text2, ...)

Concatena dos o más cadenas de texto.

Ejemplos:

EjemploResultado
concat("This", " ", "text", " ", "comes", " ", "from", " ", "a", " ", "concat", " ", "function.")"This text comes from a concat function."
concat("prefix - ", [Column])Añade la cadena de texto "prefix - " al valor del campo Column, o devuelve null si el valor del campo es nulo.

Longitud

Sintaxis: strLen(text)

Devuelve el número de caracteres (estrictamente el número de UTF-8 code points) de la cadena text.

Ejemplos:

EjemploResultado
strLen("Hello")5
strLen("Hello Jack")10
strLen("#<@^¥®¾Øæ?????")14
strLen([Column])Devuelve el número de caracteres del valor del campo Column.

Posición

Sintaxis: indexOf(text, string [, from, to])

Esta función devuelve la posición de la primera coincidencia de string en text, donde la posición comienza con el valor 0 y termina con el valor L-1, siendo L el número de caracteres de text (strLen(text)). En caso de no haber coincidencia devuelve el valor -1.

Opcionalmente, se puede acotar el intervalo de búsqueda, esto es, buscar la coincidencia solo en el intervalo [from, to] de caracteres de text, desechando cualquier coincidencia fuera de ese rango.

Ejemplos:

EjemploResultado
indexOf("Hello", "H")0
indexOf("hello", "H")-1
indexOf("Hello world", "world")6
indexOf("Hello world", " ")5
indexOf("Hello world", "world", 2)6
indexOf("Hello world", "world", 0, 6)-1
indexOf("Hello world", "world", 7, strLen("Hello world")-1)6
indexOf([Column], "p")Devuelve la posición de la primera aparición de la cadena "p" para cada valor del campo Column en caso de que haya coincidencia, y -1 en caso contrario.

Separar texto

Sintaxis: split(text, sep)

Separa la cadena text usando el separador sep, y devuelve un array con tantos elementos como divisiones se obtienen.

Ejemplos:

EjemploResultado
split("a,b,c", ",")["a","b","c"]
split("a,b,c", ".")["a,b,c"]
split("", ".")[""]
split("hello world", "l")["he","","o wor","d"]

Texto (modificar)

Estas funciones permiten la transformación y conversión de de cadenas de texto. Son las siguientes:

Funciones

MayúsculasMinúsculasRecortarSubcadena
toUpper(t)toLower(t)trim(t, [s])substr(t, f, l)

Mayúsculas

Sintaxis: toUpper(text)

Convierte todas las letras de text en mayúsculas. Aplica la conversión solo a caracteres ASCII.

Ejemplos:

EjemploResultado
toUpper("Hello")"HELLO"
toUpper("Exit, this WAY")"EXIT, THIS WAY"
toUpper([Column])Devuelve cada valor del campo Column convertido a mayúsculas.

Minúsculas

Sintaxis: toLower(text)

Convierte todas las letras de text en minúsculas. Aplica la conversión solo a caracteres ASCII.

Ejemplos:

EjemploResultado
toLower("Hello")"hello"
toLower("Exit, this WAY")"exit, this way"
toLower([Column])Devuelve cada valor del campo Column convertido a minúsculas.

Recortar

Sintaxis: trim(text, [string])

Elimina todos los caracteres "espacio" al inicio y final de text. En caso de pasar un segundo argumento string elimina todos los caracteres que formen parte de string.

Ejemplos:

EjemploResultado
trim("hello")"hello"
trim(" hello ")"hello"
trim("hello", "h")"ello"
trim("hello", "ho")"ell"
trim("hello", "l")"hello"
trim("hello", "hl")"ello"
trim([Column])Devuelve el valor asociado al campo Column sin espacios al inicio y al final de la cadena.

Subcadena

Sintaxis: substr(text, from, length)

Obtiene la subcadena de text desde la posición from tomando length caracteres, teniendo en cuenta que las posiciones comienzan a contarse por el 0.

Ejemplos:

EjemploResultado
substr("hello world", 0, 4)"hell"
substr("hello world", 0, 5)"hello"
substr("hello world", 1, 4)"ello"
substr("hello world", 1, 5)"ello "
substr("hello world", 6, 2)"wo"
substr([Column], 0, 5)Devuelve los 5 primeros caracteres de cada valor del campo Column.

Trigonométricas (generales)

Las funciones trigonométricas son funciones matemáticas especificas para su uso con medidas relacionadas con ángulos. Son las siguientes:

Funciones:

Grados a radianesRadianes a gradosSenoCosenoTangente
degreesToRadians(n)radiansToDegrees(n)sin(n)cos(n)tan(n)

Grados a Radianes

Sintaxis: degreesToRadians(number)

Hace la conversión de number grados a radianes: 1° × ?/180 = 0.0174533... rad.

Ejemplos:

EjemploResultado
degreesToRadians(1)0.017453...
degreesToRadians(45)0.785398... (?/4)
degreesToRadians(60)1.047198... (?/3)
degreesToRadians(90)1.570796... (?/2)
degreesToRadians(180)3.141593... (?)
degreesToRadians([Column])Interpreta como grados cada valor del campo Column y lo retorna como convertido a radianes.

Radianes a Grados

Sintaxis: radiansToDegrees(number)

Hace la conversión de number radianes a grados: 1 rad × 180/? = 57.2958...°.

Ejemplos:

EjemploResultado
radiansToDegrees(0.017453)0.999983... (~1°)
radiansToDegrees(0.785398)44.999991... (~45°)
radiansToDegrees(1.047198)60.000026... (~60°)
radiansToDegrees(1.570796)89.999981... (~90°)
radiansToDegrees(3.141593)180.000020... (~180°)
radiansToDegrees([Column])Interpreta como radianes cada valor del campo Column y lo retorna como convertido a grados.

Seno

Sintaxis: sin(number)

Obtiene el seno de number, entendiendo el valor en radianes.

Ejemplos:

EjemploResultado
sin(0.017453)0.017452...
sin(0.785398)0.707107... (~?2/2)
sin(1.047198)0.866026... (~?3/2)
sin(1.570796)1.000000... (~1)
sin(3.141593)0.000000... (~0)
sin(90)0.893997...
sin([Column])Interpreta como radianes cada valor del campo Column y lo retorna aplicando la función seno.

Coseno

Sintaxis: cos(number)

Obtiene el coseno de number, entendiendo el valor en radianes.

Ejemplos:

EjemploResultado
cos(0.017453)0.999848...
cos(0.785398)0.707107... (~?2/2)
cos(1.047198)0.500000... (~1/2)
cos(1.570796)0.000000... (~0)
cos(3.141593)-1.000000... (~-1)
cos(90)-0.448074...
cos([Column])Interpreta como radianes cada valor del campo Column y lo retorna aplicando la función coseno.

Tangente

Sintaxis: tan(number)

Obtiene la tangente de number, entendiendo el valor en radianes.

Ejemplos:

EjemploResultado
tan(0.017453)0.017455...
tan(0.785398)1.000000... (1)
tan(1.047198)1.732053... (~?3)
tan(1.570796)3,060,023.306953... (~?)
tan(3.141593)0.000000... (~0)
tan(90)-1.995200...
tan([Column])Interpreta como radianes cada valor del campo Column y lo retorna aplicando la función tangente.

Trigonométricas (arcoseno)

Funciones:

ArcosenoArcoseno hiperbólico
asin(n)asinh(n)

Arcoseno

Sintaxis: asin(number)

Obtiene el arcoseno de number, siempre que éste sea un número mayor o igual que -1 y menor o igual que 1. Retorna un valor en radianes.

Ejemplos:

EjemploResultado
asin(-1)-1.570796... (-?/2)
asin(-0.5)-0.523599... (~-?/6)
asin(0)0
asin(0.866026)1.047199... (~?/3)
asin(1)1.570796... (?/2)
asin(7)ERROR
asin([Column])Obtiene el arcoseno de cada valor del campo Column, y devuelve nulo en caso de que el valor sea menor que -1 o mayor que 1.

Arcoseno Hiperbólico

Sintaxis: asinh(number)

Obtiene el arcoseno hiperbólico de number.

Ejemplos:

EjemploResultado
asinh(-3.626860)-2,000000... (~-2)
asinh(-2)-1.443635...
asinh(0)0
asinh(1)0.881374...
asinh(1.175201)1.000000... (~1)
asinh([Column])Obtiene el arcoseno hiperbólico de cada valor del campo Column.

Trigonométricas (arcocoseno)

Funciones:

ArcocosenoArcocoseno hiperbólico
acos(n)acosh(n)

Arcocoseno

Sintaxis: acos(number)

Obtiene el arcocoseno de number, siempre que éste sea un número mayor o igual que -1 y menor o igual que 1. Retorna un valor en radianes.

Ejemplos:

EjemploResultado
acos(-1)3.141593... (-?)
acos(-0.5)2.094395... (2?/3)
acos(0)1.570796... (?/2)
acos(0.707107)0.785398... (~?/4)
acos(1)0
acos(7)ERROR
acos([Column])Obtiene el arcocoseno de cada valor del campo Column, y devuelve nulo en caso de que el valor sea menor que -1 o mayor que 1.

Arcocoseno Hiperbólico

Sintaxis: acosh(number)

Obtiene el arcocoseno hiperbólico de number, siempre que éste sea un número mayor o igual que 1.

Ejemplos:

EjemploResultado
acosh(0)ERROR
acosh(1)0
acosh(1.543081)1.000000... (~1)
acosh(2)1.316958...
acosh(3.762196)2.000000... (~2)
acosh([Column])Obtiene el arcocoseno hiperbólico de cada valor del campo Column, y devuelve nulo en caso de que el valor sea menor que 1.

Trigonométricas (arcotangente)

Funciones:

ArcotangenteArcotangente 2 parámetrosArcotangente hiperbólica
atan(n)atan2(n1,n2)atanh(n)

Arcotangente

Sintaxis: atan(number)

Obtiene el arcotangente de number, retornando un valor en radianes.

Ejemplos:

EjemploResultado
atan(-1)-0.785398... (-?/4)
atan(-0.577350)-0.523599... (~?/6)
atan(0)0
atan(1)0.785398... (?/4)
atan(1.732051)1.047198... (~?/3)
atan(7)1.428899...
atan([Column])Obtiene el arcotangente de cada valor del campo Column.

Arcotangente de 2 Parámetros

Sintaxis: atan2(number1, number2)

Obtiene el arcotangente de 2 parámetros number1 y number2, esto es, el arcotangente de number1/number2.

Ejemplos:

EjemploResultado
atan2(1,1)0.785398... (?/4)
atan2(0,1)0
atan2(1,0)1.570796... (?/2)
atan2(7,2)1.292497...
atan2(-1.732051,1)-1.047198... (~-?/3)
atan2([Column1], [Column2])Obtiene el arcotangente de cada valor Column1/Column2, y devuelve nulo en caso de que Column2 sea igual a 0.

Arcotangente Hiperbólico

Sintaxis: atanh(number)

Obtiene el arcotangente hiperbólico de number, siempre que éste sea un número mayor que -1 y menor que 1.

Ejemplos:

EjemploResultado
atanh(-2)ERROR
atanh(-1)null
atanh(-0.999999)-7.254329...
atanh(-0.964028)-2.000006... (~-2)
atanh(0)0
atanh(0.5)0.549306...
atanh(0.761594)1.000000... (~1)
atanh([Column])Obtiene el arcotangente hiperbólico de cada valor del campo Column, y devuelve nulo en caso de que el valor sea menor o igual que -1 o mayor o igual que 1.
Bookmark or share this article
Esta página foi útil?
Obrigado pelo seu voto.
Artículos Relacionados
Bloque Combinar Bloque Ventana Bloque Combinar Bloque Ventana Fórmulas en Consultas