Les formules sont la fonctionnalité la plus sous-estimée de Notion pour automatiser vos bases de données sans quitter la plateforme. Avec la syntaxe 2.0, Notion a ajouté plus de 30 nouvelles fonctions, les variables et le support des listes, ce qui transforme les formules en un véritable mini-langage de programmation.

J’utilise les formules Notion au quotidien depuis 2020 dans mes bases de gestion de projet, mon CRM et mes systèmes d’organisation personnelle. Notion compte désormais plus de 100 millions d’utilisateurs selon les chiffres officiels de septembre 2024 (source : Notion), et plus de 50 % des entreprises du Fortune 500 utilisent la plateforme (source : SQ Magazine). Les formules restent pourtant un point de friction pour beaucoup d’entre eux. Voici les 8 formules que je considère indispensables, avec la syntaxe 2.0 à jour.

Anatomie d'une formule Notion -- schema montrant le fonctionnement d'une propriete Formule dans une base de donnees Notion : une colonne formule s'execute sur chaque ligne et produit 5 types de sortie (texte, nombre, booleen, date, liste) Une formule Notion s’applique a toute une colonne, pas a une cellule individuelle.

Comprendre le fonctionnement des formules dans Notion

Avant de passer aux formules concrètes, il faut comprendre une différence importante avec Excel : dans Notion, une formule s’applique à toute une colonne, pas à une cellule individuelle. Chaque ligne de votre base de données exécute la même formule, en utilisant les valeurs de ses propres propriétés comme variables.

Pour créer une formule, ajoutez une propriété de type “Formule” dans votre base de données. L’éditeur 2.0 s’ouvre alors avec un espace multiligne, une coloration syntaxique et un panneau d’erreurs en temps réel. Vous pouvez référencer n’importe quelle propriété de votre base directement par son nom (les tokens s’affichent automatiquement dans l’éditeur).

Les 5 types de données en sortie

Depuis les formules 2.0, une formule peut renvoyer 5 types de données :

  • Texte : chaînes de caractères classiques
  • Nombre : entiers ou décimaux
  • Booléen : vrai ou faux (affiché sous forme de case à cocher)
  • Date : valeurs de date natives Notion
  • Liste : tableaux contenant n’importe quel type de données

Les listes et les dates natives sont des ajouts majeurs des formules 2.0. Avant cette mise à jour, les formules ne pouvaient renvoyer que du texte, des nombres ou des booléens.

Formule 1 : if() pour les conditions

La fonction if() est la base de toute logique conditionnelle dans Notion. Elle évalue une condition et renvoie un résultat différent selon que cette condition est vraie ou fausse.

Syntaxe :

if(condition, valeur_si_vrai, valeur_si_faux)

Exemple concret — afficher le statut d’une tâche en fonction d’une case à cocher :

if(prop("Terminé"), "Fait", "En cours")

Vous pouvez imbriquer plusieurs if() pour gérer des cas multiples. Cependant, au-delà de trois niveaux, je vous recommande d’utiliser des variables avec let() (voir plus bas) pour garder votre formule lisible.

Exemple imbriqué — priorité selon un score :

if(prop("Score") >= 80, "Haute",
  if(prop("Score") >= 50, "Moyenne", "Basse"))

Formule 2 : dateBetween() pour calculer des écarts de dates

La fonction dateBetween() calcule la différence entre deux dates dans l’unité de votre choix. Je l’utilise dans presque toutes mes bases de données qui contiennent des deadlines.

Syntaxe :

dateBetween(date1, date2, "unité")

Les unités disponibles sont : "years", "months", "weeks", "days", "hours", "minutes".

Exemple — nombre de jours restants avant une deadline :

dateBetween(prop("Deadline"), now(), "days")

Exemple combiné avec if() — alerte de retard :

if(dateBetween(prop("Deadline"), now(), "days") < 0,
  "En retard",
  if(dateBetween(prop("Deadline"), now(), "days") <= 3,
    "Urgent", "Dans les temps"))

Cette formule est particulièrement utile dans un système de gestion de projet pour identifier visuellement les tâches en retard.

Formule 3 : formatDate() pour un affichage lisible

La fonction formatDate() transforme une date brute en texte formaté selon le patron que vous définissez. Les dates dans Notion sont souvent peu lisibles par défaut ; cette fonction résout le problème.

Syntaxe :

formatDate(date, "patron")

Patrons courants :

PatronRésultat
"DD/MM/YYYY"25/03/2026
"MMMM YYYY"mars 2026
"dddd DD MMMM"mercredi 25 mars
"DD-MMM-YYYY"25-Mar-2026

Exemple — afficher la date de création dans un format français :

formatDate(prop("Date de création"), "DD/MM/YYYY")

Vous pouvez combiner formatDate() avec now() pour créer des indicateurs temporels dynamiques dans vos bases de données.

Formule 4 : concat() et + pour assembler du texte

La concaténation permet de combiner plusieurs valeurs en une seule chaîne de texte. Depuis les formules 2.0, vous pouvez utiliser l’opérateur + directement entre des chaînes, ce qui simplifie la syntaxe par rapport à concat().

Avec l’opérateur + :

prop("Prénom") + " " + prop("Nom")

Avec concat() :

concat(prop("Prénom"), " ", prop("Nom"))

Exemple pratique — générer un identifiant unique pour chaque ligne :

"PROJ-" + format(prop("Numéro")) + " | " + prop("Nom du projet")

La fonction format() convertit un nombre en texte, ce qui est nécessaire pour le concaténer avec d’autres chaînes.

Formule 5 : let() et lets() pour les variables

Les variables sont l’une des nouveautés les plus utiles des formules 2.0. La fonction let() vous permet de définir une variable réutilisable dans votre formule, ce qui évite les répétitions et rend le code beaucoup plus lisible.

Syntaxe de let() :

let(nomVariable, valeur, expression_qui_utilise_la_variable)

Syntaxe de lets() pour plusieurs variables :

lets(
  var1, valeur1,
  var2, valeur2,
  expression_finale
)

Exemple concret — calcul de TTC avec taux de TVA variable :

lets(
  ht, prop("Prix HT"),
  tva, prop("Taux TVA") / 100,
  ht + (ht * tva)
)

Exemple avancé — score pondéré lisible :

lets(
  score, prop("Note") * prop("Coefficient"),
  seuil, 70,
  if(score >= seuil, "Validé (" + format(score) + ")", "Insuffisant (" + format(score) + ")")
)

Sans lets(), cette formule nécessiterait de répéter prop("Note") * prop("Coefficient") à chaque occurrence, ce qui la rendrait fragile et difficile à maintenir.

Formule 6 : map() et filter() pour manipuler des listes

Les fonctions map() et filter() permettent de travailler avec des listes, y compris les propriétés de type Relation. Ce sont des ajouts des formules 2.0 qui n’existaient pas du tout dans l’ancienne version. Le mot-clé current représente l’élément en cours de traitement dans la liste.

map() — transformer chaque élément d’une liste :

prop("Tâches").map(current.prop("Statut"))

Cette formule extrait le statut de chaque tâche liée par une relation.

filter() — ne garder que les éléments qui remplissent une condition :

prop("Tâches").filter(current.prop("Statut") != "Terminé")

Exemple combiné — pourcentage d’avancement d’un projet :

lets(
  total, prop("Tâches").length(),
  terminées, prop("Tâches").filter(current.prop("Statut") == "Terminé").length(),
  if(total > 0, round(terminées / total * 100), 0)
)

Ce type de formule est exactement ce que j’utilise pour créer des barres de progression sur Notion. La combinaison de filter(), length() et d’un calcul de pourcentage couvre 90 % des cas d’usage de suivi de projet.

Formule 7 : contains() pour la recherche dans le texte

La fonction contains() vérifie si une chaîne de texte contient un mot ou un groupe de caractères donné. Elle renvoie un booléen (vrai ou faux), ce qui la rend idéale en combinaison avec if().

Syntaxe :

contains(texte, "recherche")

Exemple — identifier les tâches urgentes par mot-clé dans le titre :

if(contains(prop("Nom de la tâche"), "URGENT"), true, false)

Exemple avancé — catégorisation automatique :

if(contains(prop("Email"), "@entreprise.fr"), "Interne",
  if(contains(prop("Email"), "@partenaire.com"), "Partenaire", "Externe"))

Cette formule est très utile dans un CRM construit avec Notion pour segmenter automatiquement vos contacts selon leur domaine de messagerie.

Formule 8 : round(), floor() et ceil() pour les arrondis

Les fonctions d’arrondi sont indispensables dès que vous travaillez avec des calculs financiers ou des pourcentages. Notion propose trois variantes qui couvrent tous les cas.

  • round() : arrondi à l’entier le plus proche
  • floor() : arrondi à l’entier inférieur
  • ceil() : arrondi à l’entier supérieur

Exemple — prix TTC arrondi à deux décimales :

round(prop("Prix HT") * 1.20 * 100) / 100

L’astuce de multiplier par 100 puis diviser par 100 permet d’obtenir un arrondi à deux décimales, car round() arrondit à l’entier par défaut.

Exemple combiné — pourcentage d’avancement formaté :

lets(
  pct, round(prop("Tâches terminées") / prop("Total tâches") * 100),
  format(pct) + " %"
)

Echelle de difficulte des 8 formules Notion indispensables -- de debutant (if, dateBetween, formatDate, concat, contains) a intermediaire (round, let/lets, map/filter) positionnees sur un axe de progression Les 8 formules essentielles couvrent 80 % des cas d’usage courants dans Notion.

Récapitulatif des 8 formules

FormuleUsage principalDifficulté
if()Conditions et logiqueDébutant
dateBetween()Écarts entre datesDébutant
formatDate()Affichage de datesDébutant
concat() / +Assemblage de texteDébutant
let() / lets()Variables réutilisablesIntermédiaire
map() / filter()Manipulation de listesIntermédiaire
contains()Recherche dans le texteDébutant
round() / floor() / ceil()Arrondis numériquesDébutant

Conseils pratiques pour écrire de meilleures formules

Après avoir écrit des centaines de formules dans Notion, voici les trois principes que j’applique systématiquement.

Utilisez des variables dès que votre formule dépasse deux lignes. La fonction lets() rend le code lisible et évite les erreurs de copier-coller. Selon la documentation officielle de Notion, l’éditeur 2.0 supporte désormais les commentaires inline avec /* */, ce qui est un atout supplémentaire pour documenter vos formules longues (source : Notion Help Center).

Testez avec des cas limites. Que se passe-t-il si une propriété est vide ? La plupart des erreurs de formule viennent de valeurs nulles. Utilisez empty() pour vérifier si une propriété contient une valeur avant de la traiter.

Privilégiez la notation par points. Depuis les formules 2.0, vous pouvez écrire (-20).abs() au lieu de abs(-20). Cette syntaxe par chaînage est plus intuitive quand vous enchaînez plusieurs transformations, par exemple : prop("Tâches").filter(current.prop("Statut") == "Terminé").length().

Mon verdict

Les formules 2.0 ont transformé Notion d’un outil de notes en une véritable plateforme de bases de données programmables. Les 8 formules présentées dans cet article couvrent, selon mon expérience, plus de 80 % des cas d’usage courants. Si vous débutez, commencez par if() et dateBetween(), puis progressez vers let() et map() une fois à l’aise.

Pour aller plus loin, j’ai rédigé un article détaillé sur les différences entre les formules 1.0 et 2.0 qui couvre la migration et les nouveautés en profondeur. Si vous souhaitez découvrir Notion plus largement, mon guide ultime Notion est le meilleur point de départ.