#5 - 6 cas d'usages avec les formules Notion
Maîtriser les fameuses formules "if" une bonne fois pour toutes
Hello, c’est Riri 👋
Je suis ravie de te retrouver pour cette 5ème édition de ma newsletter Les Outils de Riri !
Notion est l’outil le plus puissant que je connaisse. Et si tu en as déjà entendu parlé ou que tu l’as déjà ouvert, tu penses sûrement aussi qu’il a un sacré potentiel. Mais attention, car peu de gens l’utilisent correctement. Et donc encore trop peu de gens (à mon goût) en tirent vraiment profit.
C’est pour ça que je suis là !
Je vais te montrer au fur et à mesure de mes newsletters et de mon contenu comment bien l’utiliser. Pour que tu puisses vraiment gagner en productivité et organiser tes activités.
Au programme aujourd’hui :
Qu’est ce qu’une formule dans Notion ?
Le fameux “if”
6 cas d’usage
Comment apprendre les formules ?
1. Qu’est ce qu’une formule dans Notion ?
Dans Notion, une formule est un type de propriété utilisé au sein des bases de données. Il se trouve juste au dessus des relations et des agrégations dans la liste des propriétés (tes deux autres types favoris n’est-ce pas 😉) !
Les formules te permettent de manipuler des données existantes (= des inputs), pour obtenir de nouvelles informations utiles (= les outputs). Ces inputs peuvent être n’importe quelle propriété de la base de données dans laquelle tu ajoutes une formule.
Le but des formules est de pouvoir faire des choses dans tes bases de données qui seraient impossible à faire sans les formules. Avec les formules, tu ouvres donc tout un nouveau champ de possibilités sur ton espace Notion.
Pourquoi les formules font-elles si peur ?
Le menu qui s’affiche lorsque tu édites une formule peut paraître impressionnant et en décourager plus d’un.e. Il y a effectivement 4 sections différentes et chacune d’entre elles contient beaucoup d’éléments. Mais en vérité, personnellement, je n’en utilise pas la moitié et pourtant je construis quotidiennement des choses très puissantes pour mes clients.
Les propriétés : tout simplement la liste des propriétés de ta base de données afin de pouvoir t’en servir facilement dans tes formules
Les constantes : les constantes mathématiques courantes. Il y en 4, j’en utilise régulièrement 0.
Les opérateurs : des calculs simples à exécuter. Il y en a 18, j’en utilise régulièrement 4.
Les fonctions : des formules prédéfinies plus complexes. Il y en a 40, j’en utilise régulièrement 10.
Ça fait 22% des éléments utilisés. Est-ce qu’on serait pas sur une bonne vieille règle de 80/20 ? Je pense bien que oui.
Règle n°1 : ne te laisse pas impressionner par tous ces éléments.
Les concepts fondamentaux à maîtriser :
Si tu utilises Notion en entreprise, voici donc les opérateurs et les fonctions sur lesquels tu devrais te concentrer :
Il faut également comprendre la syntaxe utilisée : c’est-à-dire l’ordre des lettres et des termes à utiliser dans ta formule pour qu’elle renvoie la bonne valeur. La syntaxe utilisée dans les formules est propre à Notion, mais elle est très similaire à celle utilisée dans les formules Excel (ou Google Sheets).
Mais une fois que tu comprends comment fonctionne chaque opérateur et chaque fonction (enfin, les 22%), il n’y aura plus de grand mystère (sachant qu’il y en a des très très faciles).
Enfin, et c’est peut-être la chose la plus importante à comprendre : les formules Notion fonctionnent avec seulement ces 4 type de données différentes :
Les chaînes de caractères (string)
Les nombres
Les booléens, nul autre que les “checkbox”
Les dates
Cela veut dire 2 choses :
Notion ne retourne que l’un de ces 4 types comme output
Les opérateurs doivent avoir des “opérandes” du même type, et les arguments au sein des fonctions doivent être du type spécifié par la fonction.
Les icônes à gauche des opérateurs et fonctions indiquent les types de propriétés avec lesquelles ils fonctionnent.
Une fois que tu as compris ça, tu as déjà compris pas mal de choses.
2. Le fameux “if”
Sans pour autant faire un cours super détaillé, j’aimerais t’exposer dans cette section tous les concepts les plus importants à maîtriser pour que tu puisses écrire des formules if en toute sérénité 😀
Les fondamentaux
Je pense que ce qui donne le plus de fil à retordre dans les formules, c’est l’opérateur if mais c’est celui qui vous permettra de construire le plus de valeur donc c’est important de le maîtriser une bonne fois pour toute.
Dans Notion, “if” est considéré comme un opérateur et non une fonction (je ne vais vous embrouiller en expliquant pourquoi) mais pour la simplicité de ce qui suit, je ferai référence à “la fonction if”.
La fonction if permet d’écrire des instructions de type “if-then-else” au sein d’une formule Notion, c’est-à-dire des instructions conditionnelles.
Pour ceux qui ne sont pas familiers avec ce langage informatique anglophone, l’expression if-then-else en anglais correspond à “si-alors-sinon” en français. Autrement dit : si la condition est vraie, execute ceci, sinon execute cela.
Il y a 3 arguments à remplir lorsque tu écris une formule if. Si tu ne remplis pas tous les arguments, la fonction renverra une erreur.
Un argument est tout simplement une valeur entrée dans une fonction, par exemple : une propriété, une chaîne de caractère, un nombre, une autre fonction, etc…
Voici les 3 arguments :
La condition : une déclaration qui est évaluée pour vérifier sa véracité. C’est comme une question.
Par exemple : est-ce que la date d’échéance du projet est antérieure à la date du jour ?
La déclaration “then” : une déclaration qui est exécutée si la condition est vraie. Dans cet argument, l’idée est que tu écrives ce que tu veux voir apparaître dans la “cellule” de ta base de données.
Par exemple : “Projet en retard”
La déclaration “else” : une déclaration qui est exécutée si la condition est fausse. Si la condition exprimée dans le premier argument n’est pas vérifiée, alors la formule retournera comme output ce que tu définis ici.
Très important pour ne pas te tromper :
Le premier argument (la condition) doit toujours retourner une valeur booléenne, c’est-à-dire qu’on doit pouvoir répondre “vrai” ou “faux” à la question.
Les arguments 2 et 3 doivent toujours retournée le même type de données (rappelez-vous qu’il y a 4 types de données). Voici donc les 4 possibilités d’expression :
if(Boolean, string, string)
if(Boolean, number, number)
if(Boolean, Boolean, Boolean)
if(Boolean, date, date)
Dans la déclaration “else” (argument 3), cela arrive régulièrement de retourner une valeur vide.
Si ton argument 2 est une chaîne de caractère, c’est simple, tu vas mettre “ “ dans ton argument 3.
Mais si ton argument 2 est un nombre, un booléen ou une date, “ “ ne sera pas accepté car les deux types de données doivent être équivalents.
Voici donc comment retourner une valeur vide pour les 4 types de données différents :
Chaîne de caractère : “ “
Nombre : toNumber(” “)
Date : fromTimestamp(toNumber(""))
Checkbox : pour les checkbox c’est un peu plus compliqué, il n’y a pas moyen de retourner une valeur vide directement. Il te faut formater ton argument 2 pour le transformer en chaîne de caractère avec la fonction format() (je ne souhaite pas t’embrouiller donc je ne vais pas rentrer dans les détails mais n’hésite pas à m’envoyer un message si t’as une question à ce sujet)
Nested If
Souvent, tu vas vouloir tester plusieurs conditions l’une après l’autre et déterminer des réponses différentes pour chacune des conditions. Pour cela, il te faudra écrire une fonction avec des “if” imbriqués les uns dans les autres.
C’est vraiment pas aussi compliqué que ça en a l’air.
Pour faire ça, tu vas simplement mettre une nouvelle fonction if dans le 3ème argument de la fonction if précédente. Comme ceci :
if(condition, argument 2, if(condition, argument 2, argument 3))
Tu vois ci dessus que la deuxième fonction if est en fait l’argument 3 de la première fonction.
Tant que chaque fonction if a bien 3 arguments, tu peux faire ça à l’infini.
Aussi simple que ça.
Regarde le cas d’usage n°2 pour voir à quoi ça ressemble en pratique 😉
Ce qui devient difficile, c’est plutôt de veiller à ce qu’il y ait les bonnes parenthèses au bon endroit. Le plus simple pour éviter cela : lorsque tu ouvres une fonction, la première parenthèse se met automatiquement, écris tout de suite la deuxième parenthèse et ensuite écris tous les arguments nécessaires à l’intérieur.
3. 6 cas d’usages de formules
Ci-dessous, je vais te montrer 6 cas d’usages différents afin que tu te rendes compte ce qui est possible de faire avec 20% des éléments existants dans l’outil formule de Notion.
J’en avais 10 mais il y en avait 4 plutôt complexes donc je préfère les garder pour une prochaine édition 😉
Mon but n’est absolument pas de t’impressionner avec des formules à rallonge super compliquées mais plutôt de te montrer comment créer rapidement de la valeur.
1. Calculer le nombre de jours écoulés entre deux dates
C’est la formule dateBetween qui permet de calculer le nombre de jours / semaines / mois / années (etc.) écoulés entre 2 dates. Dans ce cas, nous voulons connaître le nombre de jours écoulés entre la Date de création de la page de la base de données et la date d’aujourd’hui exprimée par now().
Si nous nous arrêtions là, nous aurions juste “34” comme résultat, par exemple.
Pour que cela soit beaucoup plus clair, j’utilise la fonction “concat” qui permet de concaténer plusieurs chaînes de caractères et qui peut s’utiliser tout simplement en rajoutant des “+” entre chaque chaîne.
Pour faire une concaténation, il faut que tous mes éléments soit du type “string”. Ce n’est pas le cas de la fonction dateBetween qui renvoie un nombre (comme le petit sigle # le montre à gauche du nom de la fonction dans le panneau latéral gauche).
J’utilise donc la fonction format() qui permet de mettre sous forme de chaîne de caractère (string) n’importe quel autre type de données.
Voilà le résultat :
Pour aller plus loin, nous aurions pu construire une fonction if qui grosso modo dirait : si le nombre de jour est inférieur ou égal à 1, écris “jour”, sinon écris “jours”.
Personnellement dans ce genre de cas pour gagner du temps, je ne me prends pas la tête et j’écris jour(s) 😉
Rappelle-toi toujours de la règle 80/20. Ne perds pas ton temps pour des choses inutiles.
2. Créer des alertes visuelles
Le but d’utiliser un outil comme Notion, c’est de gagner du temps et d’obtenir des informations rapidement. Les formules te permettent de faire ça, en créant ce que j’appelle des alertes visuelles.
Ces alertes donnent des informations très précieuses sur les éléments de ta base de données.
Dans le cas ci-dessus, l’utilisateur souhaite un visuel vert, orange ou rouge en fonction du temps écoulé depuis la dernière mise à jour d’un élément de sa base de données.
Pour cela, on utilise une fonction de “if imbriqués” (”nested if”) ainsi que la fonction dateBetween pour calculer le nombre d’années / mois / jours écoulés depuis la dernière mise à jour.
Voici les règles traduites ici :
Si l’élément n’a pas été mis à jour depuis plus d’un an, afficher “🔴”
Si l’élément a été mis a jour il y a moins de 10 mois, afficher “✅”
Si l’élément a été mis à jour entre il y a 10 mois et il y a 1 an, afficher “🔸”
Si non, n’affiche rien (en clair si la propriété est vide)
Il y a plein de manière différentes d’écrire cette formule, nous aurions pu utiliser l’opérateur “and” et nous aurions pu utiliser la fonction “empty” - mais tant que ça fonctionne et que tu ne perds pas trop de temps à écrire la formule, c’est l’essentiel !
L’output de cette formule est une chaîne de caractère qui est un emoji.
Il est intéressant d’afficher ces alertes visuelles dans une vue galerie afin de voir en un coup d’oeil les états de chacun des éléments de la base de données.
3. Faire des agrégations (rollups) filtrées
Une des grandes faiblesses de Notion est qu’il n’est pas possible de filtrer un rollup.
Je m’explique :
Tu as une base de clients
Tu as une base de factures, avec une propriété “État” qui définit si la facture est “à envoyer”, “envoyée”, “payée”.
Dans ta base “Clients”, tu aimerais rapporter la somme de toutes les factures payées par ce client pour connaître le CA effectué sur ce client.
Pour cela, tu lies tes deux bases en créant une relation. Ensuite, dans ta base “Client” tu crées une nouvelles propriété “CA du client” et là l’intuition serait de faire une agrégation sur la propriété “Montant HTVA” qui se trouve dans la base des factures en ne prenant uniquement celles qui ont le statut “payée” et puis d’en faire la somme.
Sauf qu’il n’est pas possible de filtrer seulement sur certaines factures. Notion ne le permet pas.
Le contournement est donc celui présenté dans la formule ci-dessus. Dans ta base facture, crées une propriété “Montant si payé” et établis le résultat suivant : si la facture est payée, retourne le montant de la facture, si non, retourne 0.
Voici ce que ça donne :
Ensuite, dans ta base client, tu pourras cette fois-ci faire une agrégation sur la nouvelle propriété “Montant si payé” de ta base “Factures”.
La formule est très simple en soi, mais permet de contourner ce manque de fonctionnalité 😉
4. Définir automatiquement une date d’échéance
Tout simplement, la fonction dateAdd permet de rajouter un certain nombre de jours / semaines / mois, etc. à une autre date.
Par exemple, si tu définis une échéance d’un mois pour toutes tes factures, inutile d’aller chercher la bonne date à chaque fois, utilise plutôt la formule ci-dessus.
Comme le résultat de la fonction dateAdd est une date, tu pourras bien évidemment trier tes données par la date d’échéance ou les afficher dans un calendrier comme une propriété “Date” classique.
5. Visiter ses clients en fonction d’une fréquence définie
Dans le cas ci-dessus, nous allons une étape plus loin dans la définition automatique d’une date car elle dépend de la valeur d’une autre propriété.
Dans l’exemple, l’utilisateur aimerait connaître la date idéale de sa prochaine visite chez son client. Pour chacun de ses clients (en fonction de son importance), il décide de les visiter mensuellement, trimestriellement ou annuellement. Il détermine cela une fois dans une propriété “Fréquence de visite” de type “Sélection”.
Ensuite, on utilise une fonction “if” pour déterminer la prochaine visite de cette manière :
Si mon client requiert une visite mensuelle, ajoute 1 mois à la dernière visite
Si mon client requiert une visite trimestrielle, ajoute 3 mois à la dernière visite
Si mon client requiert une visite annuelle, ajoute 1 an à la dernière visite
Remarque comme j’utilise l’expression “fromTimestamp(toNumber(””))” qui permet de retourner une valeur vide dans le cas où aucune des conditions n’est vraie.
6. Déterminer l’échéance d’un contrat en fonction de la durée définie
Même chose ici, l’utilisateur souhaite répertorier dans une base de données tous les contrats conclus avec ses clients. Il y a 6 durées possibles pour ses contrats qu’il détermine facilement via une propriété de type “Sélection”.
Il détermine la date de début du contrat via une simple propriété de type “Date”.
Ensuite, avec une formule il peut afficher automatiquement la date d’échéance du contrat en fonction de la durée qu’il aura sélectionnée.
L’avantage de cette formule, c’est que l’utilisateur peut rajouter autant de durées qu’il veut, la formule ne doit pas bouger (comparé à celle construire au point 5)
Remarque l’utilisation de toNumber pour convertir en nombre les chiffres qui viennent de la propriété de type “Sélection”. En effet, ce type de propriété produit une chaîne de caractère même si le texte est un chiffre.
4. Comment apprendre les formules
Je ne vais malheureusement pas te donner de recette magique ici.
Je ne pense pas qu’il soit nécessaire de devenir une “bête des formules” pour construire ce que tu as besoin sur Notion. Ne te laisse pas impressionné.e par les “experts Notion” qui construisent des formules à rallonge qui dans la plupart des cas, ne te serviront pas à toi.
L’important, c’est de connaître et comprendre les principes fondamentaux.
Ensuite, de comprendre ce qu’il est possible de faire.
Enfin, de construire ta formule.
Pour le faire, il y a quelque chose de génial qu’on appelle… Google.
Il y a vraiment énormément de ressources en ligne. Ce que t’essaies de faire, quelqu’un a sûrement déjà voulu le faire et a posté sa question dans un forum. Donc, soit curieux.se et un peu autodidacte et tu parviendras toujours à tes fins.
Pour plus de résultats, j’écris généralement ce que je recherche sur Google en Anglais.
Sinon, il y a le Discord Notion en français avec une communauté assez incroyable qui répond à tes questions. Il y a même un salon #formules pour poser tes questions directement à ce sujet.
J’espère sincèrement que cette édition aura démystifié un peu les formules Notion et que tu ne te décourages pas juste à l’idée de t’en servir.