Funciones y sintaxis de fórmulas

Formulas funciones hero
Contenido de este artículo

Las fórmulas de Notion pueden operar sobre varias propiedades y funciones. Aquí tienes una lista la mar de completa ➗


¿Quieres aprender lo básico sobre fórmulas? Échale un vistazo a nuestro artículo introductorio:

Las fórmulas de Notion pueden operar sobre varias propiedades y funciones. Aquí tienes una lista la mar de completa.

Las fórmulas admiten muchos tipos de propiedades. Para las que no son compatibles directamente, los datos se convierten de forma automática a otro tipo de datos (normalmente texto).

Tipos de propiedad

Ejemplos

Tipo de fórmula

Título

prop("Title")prop("Title").length()

Texto

Texto

prop("Text")prop("Text").length()

Texto

Seleccionar

prop("Priority") == "High"

Texto

Selección múltiple

prop("Tags").length()prop("Tags").includes("Finance")

Texto

Casilla

prop("Checkbox")
not prop("Checkbox")

Booleano

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

!empty(prop("Phone"))
!empty(prop("Email"))
link("Call", "tel:" + prop("Phone"))

Texto

ID único

prop("Task ID").split("-").at(0) ← Prefijo
prop("Task ID").split("-").at(1) ← ID

Texto

Creado por,
Editado por

prop("Created By").name()
prop("Created By").email()

Persona

Persona

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

Persona

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

prop("Due Date") > now()
dateBetween(prop("Birthday"), now(), "days")

Fecha

Número

prop("Number") / 2pi() *
prop("Radius") ^ 2

Número

Relación

prop("Tasks").length()
prop("Tasks").filter(current.prop("Status") !== "Done")

Página

Rollup

prop("Purchases").length()
prop("Average cost") * 12

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

Los elementos incorporados son símbolos y valores específicos integrados en el lenguaje que contribuyen a designar un cálculo.

Elemento incorporado

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)

Con las fórmulas de Notion podrás usar las siguientes funciones:

Nombre

Descripción

Ejemplo

if

Genera el primer valor si la condición es «verdadera» (true); de lo contrario, genera el segundo valor.

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("Checked") == true ? "Complete" : "Incomplete"

ifs

Genera el valor que corresponde a la primera condición «verdadera» (true). Se puede utilizar como alternativa a varias declaraciones if() anidadas.

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 de un valor de la lista.

length("hello") = 5length([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 «verdadero» (true) si el valor coincide con la expresión regular y «falso» (false) en caso contrario.

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

match

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

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

replace

Sustituye la primera coincidencia de la expresión regular por el valor de sustitución.

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

replaceAll

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

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

lower

Convierte el texto a minúsculas.

lower("NOTION") = "notion"

upper

Convierte 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 hiperenlace a partir del texto de la etiqueta y la URL.

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

style

Añade estilos y colores al texto. Estilos de formato válidos: "b" (negrita), "u" (subrayado), "i" (cursiva), "c" (código) y "s" (tachado). Colores válidos: "gray" (gris), "brown" (marrón), "orange" (naranja), "yellow" (amarillo), "green" (verde), "blue" (azul), "purple" (violeta), "pink" (rosa) y "red" (rojo). Añade "_background"a los colores para establecer los colores de 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()) = "August 30, 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 dividir el primer número entre 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 los argumentos.

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

abs

Genera el valor absoluto del número.

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

round

Genera 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

Muestra un número del texto.

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

now

Genera la fecha y hora actuales.

now() = @August 30, 2023 5:55 PM

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 ISO del año de la fecha (1-53).

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

Añade tiempo a la fecha. El argumento de unidad puede ser cualquiera de los siguientes: "years", "quarters", "months", "weeks", "days", "hours" o "minutes".

dateAdd(now(), 1, "days") = @August 31, 2023 5:55 PMdateAdd(now(), 2, "months") = @October 30, 2023 5:55
PM
dateAdd(now(), 3, "years") = @August 30, 2026 5:55 PM

dateSubtract

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

dateSubtract(now(), 1, "days") = @August 29, 2023 5:55 PMdateSubtract(now(), 2, "months") = @June 30, 2023 5:55 PMdateSubtract(now(), 3, "years") = @August 30, 2020 5:55 PM

dateBetween

Genera la diferencia entre dos fechas. El argumento de unidad puede ser cualquiera de los siguientes: "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 creado a partir de las fechas de inicio y fin.

dateRange(prop("Start Date"), prop("End Date")) = @September 7, 2022 → September 7, 2023

dateStart

Genera el inicio del intervalo de fechas.

dateStart(prop("Date Range")) = @September 7, 2022dateBetween(dateStart(prop("Date Range")), dateEnd(prop("Date Range")), "days") = -365

dateEnd

Genera el final del intervalo de fechas.

dateEnd(prop("Date range")) = @September 7, 2023dateBetween(dateEnd(prop("Date Range")), dateStart(prop("Date Range")), "days") = 365

timestamp

Genera la marca de tiempo de Unix actual, correspondiente al número de 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 corresponde al número de milisegundos transcurridos desde el 1 de enero de 1970. Nota: La fecha generada no conservará los segundos y los milisegundos.

fromTimestamp(1689024900000) = @July 10, 2023 2:35 PM

formatDate

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

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

parseDate

Genera la fecha analizada según la norma ISO 8601.

parseDate("2022-01-01") = @January 1, 2022parseDate("2022-01-01T00:00Z") = @December 31, 2021 4:00 PM

name

Genera el nombre de una persona.

name(prop("Created By"))prop("Pioneers").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"

email

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

email(prop("Created By"))prop("People").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 de la lista.

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

last

Genera el último elemento de la lista.

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

slice

Genera los elementos de la lista desde el índice inicial proporcionado (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 varias listas.

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

sort

Genera la lista ordenada.

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

reverse

Genera la lista invertida.

reverse(["green", "eggs", "ham"]) = ["ham", "eggs", "green"]

join

Genera los valores de la lista con la concatenación entre cada uno de los valores.

join(["a", "b", "c"], ", ") = "a, b, c"join(["dog", "go"], "") = "doggo"

split

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

split("apple,pear,orange", ",") = ["apple", "pear", "orange"]

unique

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

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

includes

Genera «verdadero» (true) si la lista contiene el valor especificado y «falso» (false) en caso contrario.

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

find

Genera el primer elemento de la lista para el que la condición genera «verdadero» (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 genera «verdadero» (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 genera «verdadero» (true).

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

some

Genera «verdadero» (true) si cualquier elemento de la lista cumple la condición y «falso» (false) en caso contrario.

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

every

Genera «verdadero» (true) si todos los elementos de la lista cumplen la condición y «falso» (false) en caso contrario.

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

map

Genera la lista con los resultados de aplicar la expresión a todos los elementos 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 única 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 proporciona ninguna página, devuelve el ID de la página en la que se encuentra la fórmula.

id()
id(prop("Relation").first())

equal

Genera «verdadero» (true) si ambos valores son iguales y «falso» (false) en caso contrario.

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

unequal

Genera «falso» (false) si ambos valores son iguales y «verdadero» (true) en caso contrario.

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

let

Asigna un valor a una variable y evalúa la expresión que usa esa variable.

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

lets

Asigna valores a múltiples variables y evalúa la expresión que usa esas variables.

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


Danos tu opinión

¿Te ha resultado útil este recurso?