Syntaxe et fonctions des formules

Bannière fonctions de formules
Dans cet article

Les formules Notion peuvent utiliser plusieurs propriétés et fonctions. En voici quelques exemples. ➗


Si vous avez besoin d’aide pour vous familiariser avec les formules, jetez un œil à notre article d'introduction :

Les formules Notion peuvent utiliser plusieurs propriétés et fonctions. En voici quelques exemples.

Les formules prennent en charge plusieurs types de propriétés.Pour celles qui ne sont pas prises en charge directement, les données sont automatiquement converties en un autre type de données (généralement du texte).

Type de propriété

Exemples

Type de la formule

Titre

prop("Titre")prop("Titre").length()

Texte

Texte

prop("Texte")prop("Texte").length()

Texte

Sélection

prop("Priorité") == "High"

Texte

Sélection multiple

prop("Étiquettes").length()prop("Étiquettes").includes("Finance")

Texte

Case à cocher

prop("Case à cocher")
not prop("Case à cocher")

Booléen

E-mail, URL, numéro de téléphone

!empty(prop("Téléphone"))
!empty(prop("E-mail"))
link("Appeler", "tel :" + prop("Téléphone")

Texte

Identifiant unique

prop("Identifiant tâche").split("-").first()← Préfixe
prop("Identifiant tâche").split("-").last() ← Identifiant (ID)

Texte

Créé par,
Modifié par

prop("Créé par").name()
prop("Créé par").email()

Personne

Personne

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

Personne

Date,
Date de création,
Dernière modification

prop("Date d'échéance") > now()
dateBetween(prop("Anniversaire"), now(), "days")

Date

Nombre

prop("Nombre") / 2
pi() * prop("Rayon") ^ 2

Nombre

Relation

prop("Tâches").length()
prop("Tâches").filter(current.prop("État") !== "Terminé")

Page

Agrégation

prop("Achats").length()
prop("Coût moyen") * 12

Nombre, date ou tout type de liste. Le type dépend de la configuration de l’agrégation.

Les opérateurs intégrés sont des symboles et valeurs directement inclus dans le langage des formules pour faciliter l'écriture de calculs.

Opérateur

Exemple

Opérateurs mathématiques :+, -, *, %

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

Valeurs booléennes :
true, false

truefalse

Opérateurs de comparaison :
==, >, >=, <, <=

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

Opérateurs logiques :
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

Opérateur ternaire :
? :

X ? Y : Z équivaut à if(X, Y, Z)

Les formules Notion prennent en charge les fonctions suivantes.

Nom

Description

Exemple

if

Renvoie la première valeur si la condition est vérifiée, et la deuxième valeur dans les autres cas.

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("Cochée") == true ? "Complete" : "Incomplete"

ifs

Renvoie la valeur qui correspond à la première condition vérifiée. Cet opérateur peut être utilisé pour remplacer plusieurs instructions if() imbriquées.

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

empty

Renvoie « true » si la valeur est vide. 0, “” et [] sont considérés comme vides.

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

length

Renvoie la valeur de la longueur du texte ou de la liste.

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

substring

Renvoie la partie du texte comprise entre l’index de départ (inclus) et l’index de fin (facultatif, exclus).

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

contains

Renvoie « true » si la chaîne de caractères est contenue dans la valeur.

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

test

Renvoie « true » si la valeur correspond à l’expression régulière, et « false » dans le cas contraire.

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

match

Renvoie toutes les valeurs correspondant à l’expression régulière sous forme de liste.

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

replace

Remplace la première correspondance de l’expression régulière par la valeur de remplacement.

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

replaceAll

Remplace toutes les correspondances de l’expression régulière par la valeur de remplacement.

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

lower

Convertit le texte en minuscules.

lower("NOTION") = "notion"

upper

Convertit le texte en majuscules.

upper("notion") = "NOTION"

repeat

Répète le texte un nombre donné de fois.

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

link

Crée un lien hypertexte en associant du texte et un lien URL.

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

style

Ajoute des styles et des couleurs au texte. Styles de mise en forme pris en charge : "b" (gras), "u" (souligné), "i" (italique), "c" (code), ou "s" (barré). Couleurs prises en charge : "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", et "red". Ajoutez "_background" aux couleurs pour définir des couleurs de fond.

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

unstyle

Supprime des styles de mise en forme du texte. Si aucun style n’est spécifié, tous sont supprimés.

unstyle("Texte")unstyle("Texte", "b")

format

Renvoie la valeur sous forme de texte.

format(1234) = "1234"format(now()) = "August 30, 2023 17:55"

add

Renvoie la somme de deux nombres.

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

subtract

Renvoie la différence entre deux nombres.

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

multiply

Renvoie le produit de deux nombres.

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

mod

Renvoie le reste de la division euclidienne du premier nombre par le second (le modulo du deuxième nombre par le premier).

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

pow

Renvoie le résultat du premier nombre élevé à la puissance du deuxième nombre en exposant.

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

divide

Renvoie le quotient du premier nombre par le deuxième.

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

min

Renvoie le plus petit des arguments.

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

max

Renvoie le plus grand des arguments.

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

sum

Renvoie la somme de ses arguments.

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

abs

Renvoie la valeur absolue du nombre.

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

round

Renvoie la valeur d’un nombre arrondi à l’entier le plus proche.

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

ceil

Renvoie le plus petit entier supérieur ou égal au nombre.

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

floor

Renvoie le plus grand entier inférieur ou égal au nombre.

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

sqrt

Renvoie la racine carrée positive d’un nombre.

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

cbrt

Renvoie la racine cubique du nombre.

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

exp

Renvoie e^x, où x est l’argument, et e le nombre d’Euler (2,718…), la base du logarithme naturel.

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

ln

Renvoie le logarithme naturel d’un nombre.

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

log10

Renvoie le logarithme décimal du nombre (base 10).

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

log2

Renvoie le logarithme binaire du nombre (base 2).

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

sign

Renvoie 1 si le nombre est positif, -1 s’il est négatif et 0 s’il est nul.

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

pi

Renvoie le rapport de la circonférence d’un cercle à son diamètre.

pi() = 3.141592653589793

e

Renvoie la base du logarithme naturel.

e() = 2.718281828459045

toNumber

Identifie un nombre dans un texte.

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

now

Renvoie la date et l’heure actuelles.

now() = @30 août 2023 17:55

minute

Renvoie la minute de la date (0-59).

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

hour

Renvoie l’heure de la date (0-23).

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

day

Renvoie le jour de la semaine de la date, une valeur comprise entre 1 (lundi) et 7 (dimanche).

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

date

Renvoie le jour du mois de la date (1-31).

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

week

Renvoie la semaine ISO de l’année de la date (1-53).

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

month

Renvoie le mois de la date (1-12).

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

year

Renvoie l’année de la date.

year(now()) = 2023

dateAdd

Ajoute l'heure à la date. L’argument de l’unité peut être "years", "quarters", "months", "weeks", "days", "hours", ou "minutes".

dateAdd(now(), 1, "days") = @31 août 2023 17:55dateAdd(now(), 2, "months") = @30 octobre 2023 17:55dateAdd(now(), 3, "years") = @30 août 2026 17:55

dateSubtract

Soustrait l'heure de la date. L’argument de l’unité peut être "years", "quarters", "months", "weeks", "days", "hours", ou "minutes".

dateSubtract(now(), 1, "days") = @29 août 2023 17:55dateSubtract(now(), 2, "months") = @30 juin 30 2023 17:55dateSubtract(now(), 3, "years") = @30 août 2020 17:55

dateBetween

Renvoie la différence entre deux dates. L’argument de l’unité peut être "years", "quarters", "months", "weeks", "days", "hours", ou "minutes".

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

dateRange

Renvoie un intervalle de temps défini à partir des dates de début et de fin.

dateRange(prop("Date de début"), prop("Date de fin")) = @7 septembre 2022 → 7 septembre 2023

dateStart

Renvoie le début de l’intervalle de temps.

dateStart(prop("Intervalle de temps")) = @7 septembre 2022dateBetween(dateStart(prop("Intervalle de temps")), dateEnd(prop("Intervalle de temps")), "days") = -365

dateEnd

Renvoie la fin de l’intervalle de temps.

dateEnd(prop("Intervalle de temps")) = @7 septembre 2023dateBetween(dateEnd(prop("Intervalle de temps")), dateStart(prop("Intervalle de temps")), "days") = 365

timestamp

Renvoie l’horodatage Unix actuel, représentant le nombre de millisecondes qui se sont écoulées depuis le 1er janvier 1970.

timestamp(now()) = 1693443300000

fromTimestamp

Renvoie la date à partir de l’horodatage Unix donné. L’horodatage représente le nombre de millisecondes qui se sont écoulées depuis le 1er janvier 1970. Note : la date et l’heure renvoyées n’afficheront pas les secondes et les millisecondes.

fromTimestamp(1689024900000) = @10 juillet 2023 14:35

formatDate

Affiche une date selon un format personnalisé. Le format final peut contenir les éléments suivants pour représenter les parties de la date : "YYYY" pour l’année, "MM" pour le mois, "DD" pour le jour, "h" pour l’heure et "mm" pour les minutes.

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

parseDate

Renvoie la date au format de la norme ISO 8601.

parseDate("2022-01-01") = @1 janvier 2022parseDate("2022-01-01T00:00Z") = @31 décembre 2021 16:00

name

Renvoie le nom d’une personne.

name(prop("Créé par"))prop("Visionnaires").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"

email

Renvoie l’adresse e-mail d’une personne.

email(prop("Créé par"))prop("Personne").map(email(current)).join(", ")

at

Renvoie la valeur à l’index spécifié dans une liste.

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

first

Renvoie le premier élément de la liste.

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

last

Renvoie le dernier élément de la liste.

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

slice

Renvoie les éléments de la liste compris entre l’index de départ fourni (inclus) jusqu’à l’index de fin (facultatif et exclus).

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

concat

Renvoie la concaténation de plusieurs listes.

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

sort

Renvoie la liste triée dans l’ordre spécifié.

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

reverse

Renvoie la liste dans l’ordre inverse.

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

join

Renvoie les valeurs de la liste avec un caractère de jointure entre chacune des valeurs.

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

split

Renvoie la liste de valeurs créée en séparant le texte avec un caractère spécifié.

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

unique

Renvoie la liste des valeurs en supprimant toutes les valeurs dupliquées.

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

includes

Renvoie « true » si la liste contient la valeur spécifiée, et « false » dans le cas contraire.

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

find

Renvoie le premier élément de la liste pour lequel la condition est vérifiée.

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

findIndex

Renvoie l’index du premier élément de la liste pour lequel la condition est vérifiée.

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

filter

Renvoie les valeurs de la liste pour lesquelles la condition est vérifiée.

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

some

Renvoie la valeur « true » si l’un des éléments de la liste vérifie la condition donnée, et « false » dans le cas contraire.

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

every

Renvoie la valeur « true » si tous les éléments de la liste vérifient la condition donnée, et « false » dans le cas contraire.

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

map

Renvoie la liste créée à partir des résultats de l’appel de l’expression sur chaque élément de la liste d’entrée.

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

flat

Convertit une liste de listes en une seule liste.

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

id

Renvoie l’identifiant de la page. Si aucune page n'est fournie, renvoie l'identifiant de la page sur laquelle se trouve la formule.

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

equal

Renvoie « true » si les deux valeurs sont égales, et « false » dans le cas contraire.

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

unequal

Renvoie « false » si les deux valeurs sont égales, et « true » dans le cas contraire.

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

let

Affecte une valeur à une variable et calcule l’expression avec cette variable.

let(personne, "Guenièvre", "Bonjour, " + person + " !") = "Bonjour, Guenièvre !"let(rayon, 4, round(pi() * rayon ^ 2)) = 50

lets

Affecte des valeurs à plusieurs variables et calcule l'expression avec ces variables.

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


Donner votre avis

Cette ressource vous a-t-elle été utile ?