Notion Formules 2.0 : Le Guide Complet des Fonctions Avancées
Avec la sortie de Formulas 2.0 en 2023, Notion a complètement réécrit son moteur de formules. Fini les syntaxes alambiquées de l’ancienne version — les nouvelles formules sont plus puissantes, plus lisibles, et plus proches d’un vrai langage de programmation. Si vous avez hésité à vous lancer dans les formules Notion par peur de la complexité, c’est le moment de vous y mettre.
Qu’est-ce qu’une Formule Notion ?
Une formule Notion est une propriété calculée automatiquement à partir d’autres propriétés de la même base de données (ou de bases liées via rollup). Elle retourne un texte, un nombre, une date, un booléen, ou même une liste.
Pensez-y comme une cellule Excel : vous définissez la formule une fois, et Notion calcule le résultat pour chaque entrée de votre base.
⚡ Les meilleurs outils de productivité en 2026
Découvrez notre sélection des outils qui vont transformer votre organisation : Notion, Todoist, Obsidian et plus.
Voir le classement 2026 →La Syntaxe de Base
Accéder aux Propriétés
Dans Formulas 2.0, accédez à n’importe quelle propriété de la ligne avec prop("Nom de la propriété") :
prop("Prénom") + " " + prop("Nom")
// Résultat : "Jean Dupont"
Notez les guillemets doubles autour du nom de la propriété — c’est obligatoire.
Types de Données
Chaque valeur en Notion a un type :
- String (texte) : entre guillemets
"bonjour" - Number (nombre) :
42,3.14 - Boolean (vrai/faux) :
true,false - Date : retourné par des fonctions comme
now()ouprop("Date") - List : liste de valeurs (nouveau dans Formulas 2.0)
Fonctions Indispensables
Fonctions Texte
concat() — Concatène des chaînes :
concat(prop("Prénom"), " ", prop("Nom"))
length() — Compte les caractères :
length(prop("Titre"))
// Utile pour vérifier qu'un titre n'est pas trop long
contains() — Vérifie si un texte contient une sous-chaîne :
contains(prop("Email"), "@gmail.com")
// Retourne true si l'email est un Gmail
slice() — Extrait une partie d’un texte :
slice(prop("Titre"), 0, 50)
// Les 50 premiers caractères
upper() / lower() — Met en majuscules/minuscules :
upper(prop("Code projet"))
// "WEB-042" → "WEB-042" (déjà en maj)
replaceAll() — Remplace toutes les occurrences :
replaceAll(prop("Titre"), " ", "-")
// "Mon Titre" → "Mon-Titre" (pour créer des slugs)
Fonctions Numériques
round() / floor() / ceil() — Arrondi :
round(prop("Taux TVA") * prop("Prix HT"), 2)
// Calcule la TVA arrondie à 2 décimales
max() / min() — Maximum/minimum de plusieurs valeurs :
max(prop("Note 1"), prop("Note 2"), prop("Note 3"))
abs() — Valeur absolue :
abs(prop("Budget") - prop("Dépenses"))
// Écart absolu entre budget et dépenses
Fonctions Logiques
if() — Condition simple :
if(prop("Note") >= 10, "Admis", "Recalé")
and() / or() / not() — Opérateurs logiques :
if(and(prop("Budget") > 0, prop("Statut") == "Actif"), "Valide", "Invalide")
ifs() — Conditions multiples (switch) :
ifs(
prop("Note") >= 16, "Très bien",
prop("Note") >= 14, "Bien",
prop("Note") >= 12, "Assez bien",
prop("Note") >= 10, "Passable",
"Insuffisant"
)
Fonctions Date
now() — La date et heure actuelles :
now()
dateAdd() — Ajouter du temps à une date :
dateAdd(prop("Date création"), 30, "days")
// La date 30 jours après la création
dateSubtract() — Soustraire du temps :
dateSubtract(now(), 7, "days")
// Il y a une semaine
dateBetween() — Différence entre deux dates :
dateBetween(prop("Date fin"), prop("Date début"), "days")
// Nombre de jours entre début et fin
formatDate() — Formater une date :
formatDate(prop("Date"), "DD/MM/YYYY")
// "2025-03-15" → "15/03/2025"
year() / month() / day() — Extraire des composants :
year(now())
// Retourne 2025
Exemples Pratiques
Calculer des Deadlines
// Jours restants avant la deadline
dateBetween(prop("Date limite"), now(), "days")
// Statut deadline avec couleur
if(
dateBetween(prop("Date limite"), now(), "days") < 0, "⚠️ En retard",
dateBetween(prop("Date limite"), now(), "days") <= 3, "🔴 Urgent",
dateBetween(prop("Date limite"), now(), "days") <= 7, "🟡 Bientôt",
"🟢 OK"
)
Calculer une Commission
// Commission avec paliers
if(
prop("CA mensuel") >= 50000, prop("CA mensuel") * 0.05,
prop("CA mensuel") >= 20000, prop("CA mensuel") * 0.03,
prop("CA mensuel") * 0.02
)
Score de Priorité Composite
// Score = (Impact × 3) + (Urgence × 2) + Faisabilité
(prop("Impact") * 3) + (prop("Urgence") * 2) + prop("Faisabilité")
Générer des Slugs URL
lower(replaceAll(replaceAll(prop("Titre"), " ", "-"), "'", "-"))
// "L'outil parfait" → "l-outil-parfait"
Les Nouveautés de Formulas 2.0
Variables Locales avec let
let(ht, prop("Prix HT"),
let(tva, ht * 0.2,
concat(
"HT: ", format(ht), "€",
" | TVA: ", format(tva), "€",
" | TTC: ", format(ht + tva), "€"
)
)
)
Les variables rendent les formules complexes beaucoup plus lisibles.
Manipuler des Listes
// Compter les éléments d'un multi-select
length(prop("Tags"))
// Vérifier si un tag spécifique est présent
includes(prop("Tags"), "Urgent")
// Mapper une liste
map(prop("Notes"), current > 10)
// Retourne une liste de booléens
map(), filter(), reduce()
Nouvelles fonctions inspirées de la programmation fonctionnelle :
// Somme des notes de quizz
reduce(prop("Notes"), 0, (acc, current) => acc + current)
// Filtrer les items urgents
filter(prop("Priorités"), current == "Urgent")
Pièges Classiques à Éviter
Types incompatibles : Vous ne pouvez pas additionner un texte et un nombre sans conversion. Utilisez toNumber() ou format() pour convertir.
Propriétés vides : Si une propriété peut être vide, protégez-vous : if(empty(prop("Date")), "Non défini", formatDate(prop("Date"), "DD/MM")).
Performances : Les formules complexes sur des grandes bases de données peuvent ralentir Notion. Évitez les formules qui accèdent à des rollups très lourds.
Conclusion
Les formules Notion 2.0 ont considérablement réduit l’écart avec des outils comme Airtable ou Excel. Avec ifs(), let(), map() et les fonctions de liste, vous pouvez construire des logiques métier sophistiquées directement dans votre base de données. Commencez par les cas simples (calcul de délai, statut conditionnel) et progressez vers les formules composées.
Guide Productivite

