Notion formules avancées : IF, DATE, CONCATENATE et calculs complexes en 2025
Les Notion formules avancées sont l’une des fonctionnalités les plus puissantes — et les plus mal utilisées — de l’outil. Après avoir configuré des dizaines de workspaces clients, j’ai identifié les formules qui apportent vraiment de la valeur au quotidien. Ce guide va au-delà des bases pour couvrir les cas d’usage réels.
Les fondamentaux des formules Notion
Une propriété Formula dans Notion s’écrit dans une syntaxe propre à Notion. Elle peut lire les autres propriétés d’un enregistrement via la fonction prop("Nom de la propriété").
Types de valeurs retournées :
⚡ 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 →- Texte (string)
- Nombre (number)
- Booléen (checkbox)
- Date
Opérateurs de base :
+pour la concaténation (textes) ou l’addition (nombres)==,!=,>,<,>=,<=pour les comparaisonsand,or,notpour les booléens
Formules IF : la logique conditionnelle
La formule if() est la plus utilisée. Sa syntaxe : if(condition, valeur_si_vrai, valeur_si_faux)
Exemple 1 : Statut coloré selon l’état
if(prop("Statut") == "En retard", "🔴 URGENT", if(prop("Statut") == "En cours", "🟡 En cours", "🟢 OK"))
Cette formule imbrique deux if() pour gérer trois cas. En imbriquant jusqu’à 10 niveaux, vous pouvez gérer des logiques très complexes.
Exemple 2 : Calcul d’une remise
if(prop("Montant HT") > 5000, prop("Montant HT") * 0.9, prop("Montant HT"))
Applique automatiquement une remise de 10% au-delà de 5000€.
Exemple 3 : Priorité calculée
if(prop("Deadline") <= dateAdd(now(), 3, "days") and prop("Statut") != "Terminé", "URGENT", if(prop("Deadline") <= dateAdd(now(), 7, "days"), "Cette semaine", "Planifié"))
Cette formule calcule la priorité en fonction de la proximité de la deadline.
Formules Date : manipulation du temps
Fonctions date principales :
now(): date et heure actuellestoday(): date du jourdateAdd(date, nombre, unité): ajoute du tempsdateSubtract(date, nombre, unité): soustrait du tempsdateBetween(date1, date2, unité): calcule la différenceformatDate(date, "format"): formate une date
Exemple 1 : Jours restants avant deadline
dateBetween(prop("Deadline"), now(), "days")
Retourne un nombre négatif si la deadline est passée — utile pour identifier les retards.
Exemple 2 : Ancienneté d’un client
dateBetween(now(), prop("Date de début"), "months") + " mois"
Affiche l’ancienneté en mois depuis la date de début de collaboration.
Exemple 3 : Rappel automatique
if(dateBetween(prop("Date de relance"), now(), "days") <= 0 and prop("Statut") == "En attente", "RELANCER MAINTENANT", "")
Afiche un message d’alerte quand la date de relance est passée.
Unités disponibles pour dateAdd/dateSubtract/dateBetween : years, quarters, months, weeks, days, hours, minutes, seconds
Formules Texte : CONCATENATE et manipulation de chaînes
Fonctions texte essentielles :
concat(texte1, texte2, ...): concatène des chaîneslength(texte): longueur d’une chaînecontains(texte, recherche): vérifie si une chaîne contient une autrereplace(texte, recherche, remplacement): remplace une occurrenceslice(texte, début, fin): extrait une sous-chaîneupper(texte),lower(texte): majuscules/minusculestrim(texte): supprime les espaces en début/fin
Exemple 1 : Générer un numéro de facture
concat("FAC-", formatDate(prop("Date"), "YYYY"), "-", format(prop("Numéro")))
Génère automatiquement un numéro comme FAC-2025-042.
Exemple 2 : Nom complet depuis prénom/nom
concat(upper(slice(prop("Prénom"), 0, 1)), lower(slice(prop("Prénom"), 1)), " ", upper(prop("Nom")))
Formate le nom complet avec majuscule initiale et nom en majuscules.
Exemple 3 : Email généré automatiquement
concat(lower(replace(prop("Prénom"), " ", ".")), ".", lower(replace(prop("Nom"), " ", ".")), "@entreprise.com")
Formules Nombre : calculs et agrégations
Fonctions nombres :
round(nombre, décimales): arrondifloor(nombre),ceil(nombre): plancher/plafondabs(nombre): valeur absoluemin(a, b),max(a, b): minimum/maximummod(a, b): modulo (reste de division)pow(base, exposant): puissancesqrt(nombre): racine carrée
Exemple 1 : TVA et TTC
round(prop("HT") * 1.2, 2)
Calcule automatiquement le TTC avec 20% de TVA.
Exemple 2 : Marge
round((prop("CA") - prop("Coûts")) / prop("CA") * 100, 1) + "%"
Affiche le taux de marge en pourcentage.
Les erreurs fréquentes à éviter
Erreur 1 : Comparer des types différents
Vous ne pouvez pas comparer directement un texte et un nombre. Utilisez toNumber() pour convertir.
Erreur 2 : Oublier les guillemets
Les noms de propriétés dans prop() doivent être entre guillemets. Les valeurs texte aussi.
Erreur 3 : Propriété vide
Si une propriété peut être vide, testez toujours : if(empty(prop("Valeur")), 0, prop("Valeur")) pour éviter les erreurs.
Erreur 4 : Formules trop complexes
Dès qu’une formule dépasse 3 niveaux d’imbrication, elle devient difficile à maintenir. Créez des propriétés intermédiaires.
Formules avec Rollup et Relations
Les formules peuvent lire des propriétés rollup (agrégations depuis des bases liées). Exemple classique :
Une base Clients avec une relation vers Projets. Un rollup Total facturé additionne les montants de tous les projets liés. Ensuite, une formule sur la base Clients peut utiliser ce rollup :
if(prop("Total facturé") > prop("Budget prévu"), "⚠️ Dépassement", "✅ Dans le budget")
Conclusion : les formules Notion, un vrai levier de productivité
Les formules avancées Notion transforment des bases de données statiques en systèmes intelligents. Le retour sur investissement est énorme : quelques heures de configuration pour des gains de temps quotidiens. Commencez par les formules IF et DATE — elles couvrent 80% des besoins.
Guide Productivite

