Sintaxis y funciones de las fórmulas

Héroe funciones de fórmulas
En este artículo

Las fórmulas de Notion pueden usarse con varias propiedades y funciones. Aquí te dejamos una lista ➗


¿Te entera sabes aprender sobre fórmulas?Consulta nuestro artículo introductorio:

Las fórmulas de Notion pueden usarse con varias propiedades y funciones. ¡Aquí te dejamos una lista!

Las fórmulas son compatibles con varios tipos de propiedades. Para las propiedades que no son compatibles, los datos se convierten de forma automática (generalmente en texto).

Tipos de propiedades

Ejemplos

Tipos de fórmulas

Título

prop("Título")prop("Título").length()

Texto

Texto

prop("Texto")prop("Texto").length()

Texto

Selección

prop("Prioridad") == "Alta"

Texto

Selección múltiple

prop("Etiquetas")prop("Etiquetas").includes("Finanzas")

Texto

Casilla

prop("Casilla")
not prop("Casilla")

Booleano

Correo electrónico, URL, número de teléfono

!empty(prop("Teléfono"))
!empty(prop("Correo electrónico"))
link("Llamar", "tel:" + prop("Teléfono")

Texto

ID único

prop("ID").split("-").first() ← Prefix
prop("ID").split("-").last() ← ID

Texto

Creado por,
Editado por

prop("Creado por").name()
prop("Creado por").email()

Persona

Persona

prop("Persona")
prop("Persona").at(0).name()
prop("Persona").map(current.email())

Persona

Fecha,
Hora de creación,
Última edición

prop("Fecha límite") > now()
dateBetween(prop("Cumpleaños"), now(), "días)

Fecha

Número

prop("Número") / 2
pi() * prop("Radio") ^ 2

Número

Relación

prop("Tareas").length()
prop("Tareas").filter(current.prop("Estado") !== "Completada")

Página

Rollup

prop("Compras").length()
prop("Costo promedio") * 12

Número, fecha o lista de cualquier tipo. Depende de la configuración del rollup.

Los elementos integrados son símbolos y valores específicos incorporados en el lenguaje para facilitar la designación de un cálculo.

Elemento integrado

Ejemplo

Operadores matemáticos:+, -, *, %

2 * pi()"Hola" + "Mundo"

Valores booleanos:
TRUE, FALSE

TRUEFALSE

Operadores de comparación:
==, >, >=, <, <=

123 == 123 = true"Notion" == "Motion" = false

Operadores lógicos:
AND, OR, NOT

and:
true and false
true && false
and(true, false)
or:
true or false
true || false
or(true, false)
not:
not true
!true

Operador ternario:
? :

X ? Y : Z es equivalente a if(X, Y, Z)

Las fórmulas de Notion son compatibles con las siguientes funciones.

Nombre

Descripción

Ejemplo

if

Genera el primer valor si la condición es “TRUE”; de lo contrario, genera el segundo valor.

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("Marcado") == true ? "Completo" : "Incompleto"

ifs

Genera el valor que corresponde a la primera condición que sea “TRUE”. Se puede utilizar como alternativa a varias declaraciones if() alojadas.

ifs(true, 1, true, 2, 3) = 1ifs(false, 1, false, 2, 3) = 3

empty

Genera “TRUE” si un valor está vacío. 0, “” y [] se consideran valores vacíos.

empty(0) = trueempty([]) = true

length

Genera la longitud del texto o un valor de la lista.

length("Hola") = 4length([1, 2, 3]) = 3

substring

Genera la subcadena del texto desde el índice inicial (de forma inclusiva) hasta el índice final (de forma opcional y exclusiva).

substring("Notion", 0, 3) = "Not"substring("Notion", 3) = "ion"

contains

Genera “TRUE” si la cadena de búsqueda está presente en el valor.

contains("Notion", "ot") = true

test

Genera “TRUE” si el valor coincide con la expresión regular y “FALSE” en caso contrario.

test("Notion", "Not") = truetest("Notion", "\\d") = false

match

Genera todas las coincidencias de la expresión regular como una lista.

match("Notion Notion", "Not") = ["Not", "Not"]match("Notion 123 Notion 456", "\\d+") = ["123", "456"]

replace

Sustituye la primera coincidencia de la expresión regular con el valor de reemplazo.

replace("Notion Notion", "N", "M") = "Motion Notion"

replaceAll

Sustituye todas las coincidencias de la expresión regular por el valor de reemplazo.

replaceAll("Notion Notion", "N", "M") = "Motion Motion"replaceAll("Notion 123", "\\d", "") = "Notion"

lower

Pasa el texto a minúsculas.

lower("NOTION") = "notion"

upper

Pasa el texto a mayúsculas.

upper("notion") = "NOTION"

repeat

Repite el texto un número determinado de veces.

repeat("0", 4) = "0000"repeat("~=", 10) = "~=~=~=~=~=~=~=~=~=~="

link

Crea un hipervínculo a partir del texto de la etiqueta y la URL.

link("Notion", "https://notion.so") = "Notion"

style

Agrega estilos y colores al texto.Estilos de formato válidos: "b" (negrita), "u" (subrayado), "i" (itálicas), "c" (código), or "s" (tachado). Colores válidos: "gray" (gris) , "brown" (marrón), "orange" (naranja), "yellow" (amarillo), "green" (verde), "blue" (azul), "purple" (morado), "pink" (rosa) y "red" (rojo). Agrega “_background” a los colores para establecer el color del fondo.

style("Notion", "b", "u") = "Notion"style("Notion", "blue", "gray_background")

unstyle

Elimina los estilos de formato del texto. Si no se especifica ningún estilo, se eliminan todos.

unstyle("Text")unstyle("Text", "b")

format

Genera el valor con formato de texto.

format(1234) = "1234"format(now()) = "30 de agosto de 2023 17:55"

add

Genera la suma de dos números.

add(5, 10) = 155 + 10 = 15

subtract

Genera la diferencia entre dos números.

subtract(5, 10) = -55 - 10 = -5

multiply

Genera el producto de dos números.

multiply(5, 10) = 505 * 10 = 50

mod

Genera el resto de la división del primer número por el segundo.

mod(5, 10) = 55 % 10 = 5

pow

Genera el resultado de un número base elevado a la potencia de un exponente.

pow(5, 10) = 97656255 ^ 10 = 9765625

divide

Genera el cociente de dos números.

divide(5, 10) = 0.55 / 10 = 0.5

min

Genera el número menor de entre los argumentos.

min(1, 2, 3) = 1min([1, 2, 3]) = 1

max

Genera el número mayor de entre los argumentos.

max(1, 2, 3) = 3max([1, 2, 3]) = 3

sum

Genera la suma de sus argumentos.

sum(1, 2, 3) = 6sum([1, 2, 3], 4, 5) = 15

abs

Devuelve el valor absoluto del número.

abs(10) = 10abs(-10) = 10

round

Devuelve el valor de un número redondeado al entero más cercano.

round(0,4) = 0round(-0,6) = -1

ceil

Genera el entero más pequeño mayor o igual que el número.

ceil(0.4) = 1ceil(-0.6) = 0

floor

Genera el entero más grande menor o igual que el número.

floor(0.4) = 0floor(-0.6) = -1

sqrt

Genera la raíz cuadrada positiva del número.

sqrt(4) = 2sqrt(7) = 2.6457513110645907

cbrt

Genera la raíz cúbica del número.

cbrt(9) = 2.080083823051904cbrt(64) = 4

exp

Genera “e^x”, donde “x” es el argumento y “e” es el número de Euler (2,718…), la base del logaritmo natural.

exp(1) = 2.718281828459045exp(-1) = 0.36787944117144233

ln

Genera el logaritmo natural del número.

ln(2.718281828459045) = 1ln(10) = 2.302585092994046

log10

Genera el logaritmo en base 10 del número.

log10(10) = 1log10(100000) = 5

log2

Genera el logaritmo en base 2 del número.

log2(4) = 2log2(1024) = 10

sign

Genera 1 si el número es positivo, -1 si es negativo y 0 si es cero.

sign(-10) = -1sign(10) = 1

pi

Genera la relación entre la circunferencia de un círculo y su diámetro.

pi() = 3.141592653589793

e

Genera la base del logaritmo natural.

e() = 2.718281828459045

toNumber

Analiza un número del texto.

toNumber("2") = 2toNumber(now()) = 1693443300000toNumber(true) = 1

now

Devuelve la fecha y hora actuales.

now() = @30 de agosto de 2023 17:55

minute

Genera los minutos de la fecha (0-59).

minute(parseDate("2023-07-10T17:35Z")) = 35

hour

Genera la hora de la fecha (0-23).

hour(parseDate("2023-07-10T17:35Z")) = 17

day

Genera el día de la semana de la fecha, entre 1 (lunes) y 7 (domingo).

day(parseDate("2023-07-10T17:35Z")) = 1

date

Genera el día del mes de la fecha (1-31).

date(parseDate("2023-07-10T17:35Z")) = 10

week

Genera la semana (1-53) del año para la fecha según la norma ISO 8601.

week(parseDate("2023-01-02")) = 1

month

Genera el mes de la fecha (1-12).

month(parseDate("2023-07-10T17:35Z")) = 7

year

Genera el año de la fecha.

year(now()) = 2023

dateAdd

Agrega tiempo a la fecha. El argumento de la unidad puede ser: "years", "quarters", "months", "weeks", "days", "hours" o "minutes".

dateAdd(now(), 1, "days") = @31 de agosto de 2023 17:55dateAdd(now(), 2, "months") = 30 de octubre de 2023 17:55
dateAdd(now(), 3, "years") = 30 de agosto de 2026 17:55

dateSubtract

Resta tiempo de la fecha. El argumento de la unidad puede ser: "years", "quarters", "months", "weeks", "days", "hours" o "minutes".

dateAdd(now(), 1, "days") = @29 de agosto de 2023 17:55dateSubtract(now(), 2, "months") = 30 de junio de 2023 17:55
dateSubtract(now(), 3, "years") = 30 de agosto de 2020 17:55

dateBetween

Genera la diferencia entre dos fechas. El argumento de la unidad puede ser: "years", "quarters", "months", "weeks", "days", "hours" o "minutes".

dateBetween(now(), parseDate("2022-09-07"), "days") = 357dateBetween(parseDate("2030-01-01"), now(), "years") = 6

dateRange

Genera un intervalo de fechas a partir de la fecha inicial y final.

dateRange(prop("Fecha inicial"), prop("Fecha final")) = @7 de septiembre de 2022 → 7 de septiembre de 2023

dateStart

Genera el inicio del intervalo de fechas.

dateStart(prop("Intervalo de fechas")) = @7 de septiembre de 2022dateBetween(dateStart(prop("Intervalo de fechas")), dateEnd(prop("Intervalo de fechas")), "days") = -365

dateEnd

Genera el final del intervalo de fechas.

dateEnd(prop("Intervalo de fechas")) = @7 de septiembre de 2023dateBetween(dateEnd(prop("Intervalo de fechas")), dateStart(prop("Intervalo de fechas")), "days") = 365

timestamp

Genera la marca de tiempo de Unix actual, que representa los milisegundos transcurridos desde el 1 de enero de 1970.

timestamp(now()) = 1693443300000

fromTimestamp

Genera la fecha a partir de la marca de tiempo de Unix. La marca de tiempo representa los milisegundos transcurridos desde el 1 de enero de 1970. Nota: la fecha generada no conservará los segundos ni los milisegundos.

fromTimestamp(1689024900000) = @10 de julio de 2023 14:35

formatDate

Da formato a la fecha usando una cadena de formato personalizada. La cadena de formato puede contener el siguiente texto para representar partes de la fecha: "YYYY" para año, "MM" para mes, "DD" para día, "HH" para hora, "mm" para minuto.

formatDate(now(), "MMMM D, Y") = "agosto 30, 2023"
formatDate(now(), "MM/DD/YYYY")
= "08/30/2023"
formatDate(now(), "h:mm A")
= "17:55"

parseDate

Genera la fecha analizada en función de la norma ISO 8601.

parseDate("2022-01-01") = @1 de enero de 2022parseDate("2022-01-01T00:00Z") = @31 de diciembre de 2021 16:00

name

Genera el nombre de una persona.

name(prop("Creado por"))prop("Pioneros").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"

email

Genera la dirección de correo electrónico de una persona.

email(prop("Creado por"))prop("Persona").map(email(current)).join(", ")

at

Genera el valor en el índice especificado en una lista.

at([1, 2, 3], 1) = 2

first

Genera el primer elemento en la lista.

first([1, 2, 3]) = 1

last

Genera el último elemento en la lista.

last([1, 2, 3]) = 3

slice

Genera los elementos de la lista desde el índice inicial (de forma inclusiva) hasta el índice final (de forma opcional y exclusiva).

slice([1, 2, 3], 1, 2) = [2]slice(["a", "b", "c"], 1) = ["b", "c"]

concat

Genera la concatenación de múltiples listas.

concat([1, 2], [3, 4]) = [1, 2, 3, 4]concat(["a", "b"], ["c", "d"]) = ["a", "b", "c", "d"]

sort

Genera una versión ordenada de la lista.

sort([3, 1, 2]) = [1, 2, 3]

reverse

Genera una versión invertida de la lista.

reverse(["lechuga", "huevos", "jamón"]) = ["jamón", "huevos", "lechuga"]

join

Genera los valores de la lista con el elemento conector entre cada uno de los valores.

join(["a", "b", "c"], ", ") = "a, b, c"join(["auto", "pista"], "") = "autopista"

split

Genera la lista de valores creada al dividir un texto por un separador.

split("manzana,pera,naranja", ",") = ["manzana", "pera", "naranja"]

unique

Genera la lista de valores únicos en la lista de entrada.

unique([1, 1, 2]) = [1, 2]

includes

Genera el valor “TRUE” si la lista contiene el valor determinado y “FALSE” en caso contrario.

includes(["a", "b", "c"], "b") = trueincludes([1, 2, 3], 4) = false

find

Genera el índice del primer elemento de la lista para el que la condición es “TRUE”.

find(["a", "b", "c"], current == "b") = "b"find([1, 2, 3], current > 100) = Empty

findIndex

Genera el índice del primer elemento de la lista para el que la condición tiene valor “TRUE”.

findIndex(["a", "b", "c"], current == "b") = 1findIndex([1, 2, 3], current > 100) = -1

filter

Genera los valores de la lista para los que la condición tiene valor “TRUE”.

filter([1, 2, 3], current > 1) = [2, 3]filter(["a", "b", "c"], current == "a") = ["a"]

some

Genera el valor “TRUE” si cualquier elemento de la lista se ajusta a la condición dada y “FALSE” en caso contrario.

some([1, 2, 3], current == 2) = truesome(["a", "b", "c"], current.length > 2) = false

every

Genera el valor “TRUE” si todos los elementos de la lista se ajustan a la condición dada y “FALSE” en caso contrario.

every([1, 2, 3], current > 0) = trueevery(["a", "b", "c"], current == "b") = false

map

Genera una lista de los resultados obtenidos al aplicar la expresión a cada elemento de la lista de entrada.

map([1, 2, 3], current + 1) = [2, 3, 4]map([1, 2, 3], current + index) = [1, 3, 5]

flat

Simplifica una lista de listas en una sola lista.

flat([1, 2, 3]) = [1, 2, 3]flat([[1, 2], [3, 4]]) = [1, 2, 3, 4]

id

Genera el ID de la página.Si no se provee ninguna página, genera el ID de la página donde se encuentra la fórmula.

id()
id(prop("Relación").first())

equal

Genera el valor “TRUE” si ambos valores son iguales y “FALSE” en caso contrario.

equal(1, 1) = true"a" == "b" = false

unequal

Genera el valor “FALSE” si ambos valores son iguales y “TRUE” en caso contrario.

unequal(1, 2) = true"a" != "a" = false

let

Asigna un valor a una variable y evalúa la expresión con dicha variable.

let(person, "Alan", "Hola, " + person + "!") = "Hola, Alan!"let(radius, 4, round(pi() * radius ^ 2)) = 50

lets

Asigna valores a distintas variables y evalúa la expresión usando esas variables.

lets(a, "Hola", b, "Mundo", a + " " + b) = "Hola Mundo"lets(base, 3, height, 8, base * height / 2) = 12


Cuéntanos tu opinión

¿Te ha resultado útil este recurso?