Sintaxe e funções de fórmulas

Imagem principal funções de fórmula
Neste artigo

As fórmulas do Notion funcionam em várias propriedades e funções. Aqui você encontrará uma lista delas ➗


Quer aprender o básico sobre fórmulas? Confira nosso artigo de introdução:

As fórmulas do Notion funcionam em várias propriedades e funções. Aqui você encontrará uma lista delas!

As fórmulas suportam muitos tipos de propriedades. Para aquelas que não são suportados diretamente, os dados são automaticamente convertidos em outro tipo de dados (geralmente texto).

Tipos de propriedade

Exemplos

Tipo de fórmula

Título

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

Texto

Texto

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

Texto

Selecionar

prop("Prioridade") == "Alta"

Texto

Seleção múltipla

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

Texto

Caixa de seleção

prop("Caixa de seleção")
not prop("Caixa de seleção")

Booleano

E-mail, URL, Número de telefone

!empty(prop("Telefone"))
!empty(prop("E-mail"))
link("Chamada", "tel:" + prop("Telefone")

Texto

IDs exclusivos

prop("ID da tarefa").split("-").at(0) ← Prefix
prop("ID da tarefa").split("-").at(1) ← ID

Texto

Criado por,
Editado por

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

Pessoa

Pessoa

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

Pessoa

Data,
Criado em,
Última edição

prop("Prazo") > now()dateBetween(prop("Aniversário"), now(), "dias")

Data

Número

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

Número

Relação

prop("Tarefas").length()
prop("Tarefas").filter(current.prop("Status") !== "Concluído")

Página

Rollup

prop("Compras").length()prop("Custo médio") * 12

Número, data ou lista de qualquer tipo. Depende da configuração do rollup.

Os elementos nativos são símbolos e valores específicos que são intrínsecos à linguagem para auxiliar a designação de um cálculo.

Elementos nativos

Exemplo

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

2 * pi()"hello" + "world"

Valores booleanos:
true, false

truefalse

Operadores de comparação:
==, >, >=, <, <=

123 == 123 = true"Notion" == "Noção" = 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 ternário:
? :

X ? Y : Z equivale a if(X, Y, Z)

As fórmulas do Notion suportam as seguintes funções.

Nome

Descrição

Exemplo

if

Retorna o primeiro valor se a condição for verdadeira; caso contrário, retorna o segundo valor.

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("Verificado") == true ? "Concluído" : "Não concluído"

ifs

Retorna o valor que corresponde à primeira condição verdadeira. Pode ser utilizado como uma alternativa a diversas declarações if() aninhadas.

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

empty

Retorna "true" se o valor estiver vazio. 0, “” e [] são considerados vazios.

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

length

Retorna o comprimento dos valores de texto ou da lista.

length("hello") = 5length([1, 2, 3]) = 3

substring

Retorna a parte do texto do índice inicial (inclusive) até o índice final (opcional e excludente).

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

contains

Retorna "true" se a string pesquisada estiver no valor.

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

Test

Retorna "true" se o valor corresponder à expressão regular; caso contrário, retorna "false".

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

match

Retorna todas as correspondências da expressão regular como uma lista.

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

replace

Substitui a primeira correspondência da expressão regular com o valor de substituição.

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

replaceAll

Substitui todas as correspondências da expressão regular com o valor de substituição.

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

lower

Converte o texto para letras minúsculas.

lower("NOTION") = "notion"

upper

Converte o texto para letras maiúsculas.

upper("notion") = "NOTION"

repeat

Repete o texto uma determinada quantidade de vezes.

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

link

Cria um hiperlink a partir do texto da etiqueta e do URL.

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

style

Adiciona estilos e cores ao texto. Estilos de formatação válidos: "b" (negrito), "u" (sublinhado), "i" (itálico), "c" (código), ou "s" (tachado). Cores válidas: "gray" (cinza), "brown" (marrom), "orange" (laranja), "yellow" (amarelo), "green" (verde), "blue" (azul), "purple" (lilás), "pink" (rosa) e "red" (vermelho). Adicione "_background" às cores para definir as cores do preenchimento.

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

unstyle

Remove os estilos de formatação do texto. Se não houver estilos especificados, todos os estilos serão removidos.

unstyle("Texto")unstyle("Texto", "b")

format

Retorna o valor formatado como texto.

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

add

Retorna a soma de dois números.

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

subtract

Retorna a diferença de dois números.

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

multiply

Retorna o produto de dois números.

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

mod

Divide o primeiro número pelo segundo e retorna o resto da operação.

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

pow

Retorna o resultado de uma base elevada a uma determinada potência.

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

divide

Retorna o quociente de dois números.

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

min

Retorna o menor número dos argumentos.

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

max

Retorna o maior número dos argumentos.

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

sum

Retorna a soma dos argumentos.

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

Mediana

Retorna o valor mediano dos argumentos.

median(1, 2, 4) = 2
median([1, 2, 3], 4) = 2.5

média

Retorna a média aritmética dos argumentos.

mean(1, 2, 3) = 2
mean([1, 2, 3], 4, 5) = 3

abs

Retorna o valor absoluto do número.

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

round

Retorna o valor de um número arredondado para o inteiro mais próximo.

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

ceil

Retorna o menor inteiro maior ou igual do número.

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

floor

Retorna o maior inteiro menor ou igual do número.

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

sqrt

Retorna a raiz quadrada positiva do número.

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

cbrt

Retorna a raiz cúbica do número.

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

exp

Retorna e^x, em que x é o argumento, e e é a constante de Euler (2,718...), a base do logaritmo natural.

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

ln

Retorna o logaritmo natural do número.

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

log10

Retorna o logaritmo de base 10 do número.

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

log2

Retorna o logaritmo de base 2 do número.

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

sign

Retorna 1 se o número for positivo, -1 se for negativo, e 0 se for zero.

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

pi

Retorna o raio da circunferência de um círculo em relação ao diâmetro.

pi() = 3.141592653589793

e

Retorna a base do logaritmo natural.

e() = 2.718281828459045

toNumber

Analisa um número a partir do texto.

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

now

Retorna a data e hora atuais.

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

hoje

Retorna a data atual sem hora.

today() = @19 de abril de 2024

minute

Retorna o minuto da data (0-59).

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

hour

Retorna a hora da data (0-23).

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

day

Retorna o dia da semana da data, entre 1 (segunda-feira) e 7 (domingo).

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

date

Retorna o dia do mês da data (1-31).

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

week

Retorna a semana do ano conforme o padrão ISO da data (1-53).

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

month

Retorna o mês da data (1-12).

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

year

Retorna o ano da data.

year(now()) = 2023

dateAdd

Adiciona um tempo à data.O argumento de unidade pode ser "years" (anos), "quarters" (trimestres), "months" (meses), "weeks" (semanas), "days" (dias), "hours" (horas) ou "minutes" (minutos).

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

Subtrai um tempo da data. O argumento de unidade pode ser "years" (anos), "quarters" (trimestres), "months" (meses), "weeks" (semanas), "days" (dias), "hours" (horas) ou "minutes" (minutos).

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

Retorna a diferença entre duas datas. O argumento de unidade pode ser "years" (anos), "quarters" (trimestres), "months" (meses), "weeks" (semanas), "days" (dias), "hours" (horas) ou "minutes" (minutos).

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

dateRange

Retorna um intervalo de datas formado pela data inicial e data final.

dateRange(prop("Data inicial"), prop("Data final")) = @September 7, 2022 → September 7, 2023

dateStart

Retorna o início do intervalo de datas.

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

dateEnd

Retorna o final do intervalo de datas.

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

timestamp

Retorna o carimbo de data/hora Unix atual, representando a quantidade de milissegundos passados desde 1º de janeiro de 1970.

timestamp(now()) = 1693443300000

fromTimestamp

Retorna a data do carimbo de data/hora Unix. O carimbo de data/hora representa a quantidade de milissegundos passados desde 1º de janeiro de 1970. Nota: a data retornada não armazenará os segundos e milissegundos.

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

formatDate

Formata a data utilizando um formato personalizado. A sequência de formato pode conter o seguinte texto para representar partes da data: "AAAA" para ano, "MM" para mês, "DD" para dia, "h" para hora, "mm" para minuto.

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

parseDate

Retorna a data conforme o padrão ISO 8601.

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

name

Retorna o nome de uma pessoa.

name(prop("Criado por"))prop("Pioneiros").map(name(current)).join(", ") = "Grace Hopper, Doug Engelbart"

email

Retorna o endereço de e-mail de uma pessoa.

email(prop("Criado por"))prop("Pessoas").map(email(current)).join(", ")

at

Retorna o valor de um índice especificado em uma lista.

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

first

Retorna o primeiro item da lista.

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

last

Retorna o último item da lista.

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

slice

Retorna os itens da lista do índice inicial informado (inclusive) até o índice final (opcional e excludente).

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

concat

Retorna a concatenação de várias listas.

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

sort

Retorna a lista em ordem crescente.

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

reverse

Retorna a lista em ordem reversa.

reverse(["alface", "ovos", "presunto"]) = ["presunto", "ovos", "alface"]

join

Retorna os valores da lista com o conector entre os valores.

join(["a", "b", "c"], ", ") = "a, b, c"join(["dog", "uinho"], "") = "doguinho"

split

Retorna a lista de valores criada separando uma entrada de texto com um separador.

split("maçã,pera,laranja", ",") = ["maçã", "pera", "laranja"]

unique

Retorna a lista de valores únicos na lista de entrada.

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

includes

Retorna "true" se a lista contiver o valor especificado; caso contrário, retorna "false".

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

find

Retorna o primeiro item da lista para o qual a condição é verdadeira.

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

findIndex

Retorna o índice do primeiro item da lista para o qual a condição é verdadeira.

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

filter

Retorna os valores da lista para o qual a condição é verdadeira.

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

some

Retorna "true" se algum item da lista satisfizer a condição; caso contrário, retorna "false".

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

every

Retorna "true" se todos os itens da lista satisfizerem a condição; caso contrário, retorna "false".

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

map

Retorna a lista preenchida com os resultados de chamar a expressão para cada item da lista de entradas.

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

flat

Transforma uma lista de listas em uma única lista.

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

id

Retorna o id da página. Se nenhuma página for fornecida, retorna o ID da página em que a fórmula está.

id()⏎id(prop("Relação").first())

equal

Retorna "true" se ambos os valores forem iguais; caso contrário, retorna "false".

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

unequal

Retorna "false" se ambos os valores forem iguais; caso contrário, retorna "true".

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

let

Atribui um valor a uma variável e avalia a expressão utilizando essa variável.

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

lets

Atribui valores a diversas variáveis e avalia a expressão utilizando essas variáveis.

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


Dar feedback

Este recurso foi útil?