Syntaxe et fonctions des formules

Dans ce document d’aide

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


  • Vous souhaitez vous familiariser avec les formules Notion ? Lisez cet article →

  • Si une formule ne semble pas fonctionner, vous pouvez en savoir plus sur les erreurs courantes et comment les rĂ©soudre danscet article →

Vous savez ce que vous voulez que votre formule fasse, mais vous ne savez pas comment la crĂ©er ? Vous pouvez utiliser l'IA de Notion pour crĂ©er et modifier des formules. En savoir plus ici →

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

Les formules prennent en charge presque tous les types de propriétés. Notez que les types de formules diffÚrent des types de propriétés.

Type de propriété

Exemples

Type de la formule

Titre

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

Texte

Texte

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

Texte

Sélection

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

Texte

Sélection multiple

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

Texte (liste)

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 de la tĂąche").split("-").first() ← PrĂ©fixe
prop("Identifiant de la tñche").split("-").last() ← Identifiant

Texte

Créée par,
Modifiée par

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

Personne

Personne

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

Personne (liste)

Date,
Date de création,
DerniĂšre modification

prop("Date d’échĂ©ance") > now(
)dateBetween(prop("Anniversaire"), now(), "days")

Date

Nombre

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

Nombre

Relation

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

Page (liste)

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 intĂ©grations 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() "bonjour" + "monde"

Valeurs booléen :
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("Checked") == 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 valides : "b" (gras), "u" (soulignĂ©), "i" (italique), "c" (code) ou "s" (barrĂ©). Couleurs valides : "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink" et "red". Ajoutez "_background" aux couleurs pour dĂ©finir les couleurs d’arriĂšre-plan.

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("Text")unstyle("Text", "b")

format

Renvoie la valeur sous forme de texte.

format(1234) = "1234"format(now()) = "30 août 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

median

Renvoie la valeur médiane de ses arguments.

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

mean

Renvoie la moyenne arithmétique de ses arguments.

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

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. Prend en charge un ou deux arguments. Dans le cas de deux arguments, le premier reprĂ©sente la valeur et le second reprĂ©sente le nombre de dĂ©cimales auxquelles arrondir.

round(0,4) = 0round(-0,6)=
-1round(1,234, 0)
=
1round(1,234, 2)= 1,23round (1234, -2) = 1200

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

panneau

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

today

Renvoie la date actuelle sans l’heure.

today() = @April 19, 2024

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:
55
dateAdd(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 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 2022 dateBetween
(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 2023 dateBetween
(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"

formatNumber

"Revenu : " + formatNumber(prop("Nombre"), "usd", 0).style("green")

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éée par"))prop("Visionnaires").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"

e-mail

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

email(prop("Créée 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"]

trier

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(person, "Alain", "Bonjour " + person + " !") = "Bonjour Alain !"let(rayon, 4, round(pi() * rayon ^ 2)) = 50

lets

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

lets(a, "Bonjour", b, "tout le monde", a + " " + b) = "Bonjour tout le monde"lets(base, 3, hauteur, 8, base * hauteur / 2) = 12

trim

Supprime les espaces au début et à la fin du texte.

" notion ".trim() = "notion"


Donner votre avis

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


Powered by Fruition