Formules 2.0 : comment utiliser les nouvelles formules Notion avec vos configurations existantes
Si vous avez déjà utilisé les formules Notion, vous vous demandez peut-être ce qui a changé. Dans ce guide, découvrez ces nouveautés et quelles sont les conséquences sur les formules que vous avez déjà créées.
- Nouveautés pour les formules
- Conséquences directes pour vous
- Générez des données riches grâce à des formules optimisées
- Utilisez les propriétés pour extraire des informations de l’espace de travail
- Créez vos propres variables avec let
- Réutilisez des propriétés d’autres bases de données (sans utiliser les agrégations !)
- Nouveautés sur les fonctions existantes
Nouveautés pour les formules
Nous avons revu l’expérience autour des formules, autour de trois objectifs : 1) elles doivent être plus facile à écrire, 2) elles doivent renvoyer des types de propriété plus variés, et 3) leur langage doit permettre de remplir des besoins plus spécifiques.
Qu’est-ce qui change pour mes formules existantes ?
Dans ce guide, on vous explique ce qui a changé dans nos formules et comment ces changements se répercutent sur vos formules actuelles. Si vous n’avez encore jamais utilisé les formules, vous pouvez jeter un œil à notre guide d’initiation : Comment écrire des formules Notion qui étendent les possibilités de vos bases de données.
Voici les nouvelles fonctionnalités pour cette deuxième version des formules :
Les formules sont plus faciles à écrire et à modifier : les formules peuvent s'étaler sur plusieurs lignes dans l'éditeur (avec des tabulations et des espaces !), et les erreurs sont plus faciles à corriger. La prochaine fois que vous modifierez le contenu d’une formule, vous verrez dans la base de données une nouvelle fenêtre d'édition élargie sur plusieurs lignes, qui permet de mieux voir et éditer les formules longues. De plus, les éventuelles fautes de frappe sont maintenant signalées directement dans la fenêtre de l'éditeur, pour corriger facilement votre syntaxe et vous assurer que vos formules fonctionnent.
Les formules prennent désormais en charge les sorties de données riches : avant, les formules ne prenaient en charge que les sorties de type chaînes de caractères, chiffres et cases à cocher (booléennes). Désormais, elles permettent également d'afficher des pages, des dates, des personnes et des listes.
Vous accédez directement à plus d’informations : les formules sont désormais plus intelligentes et peuvent extraire les propriétés d’une base de données liée ou des informations telles que les adresses électroniques et les noms des membres.
Nouveau langage de formule
Conséquences directes pour vous
Générez des données riches grâce à des formules optimisées
Les anciennes formules convertissaient la plupart des types de données en texte.Grâce aux nouvelles formules, vous pouvez utiliser des types de données plus riches.
Nous savons que les utilisateurs s'attendent à ce que les sorties de formules aient une certaine apparence et se comportent d'une certaine manière. Pour préserver la rétrocompatibilité avec votre utilisation actuelle, toutes les formules existantes qui font référence aux propriétés agrégation, personne, fichier et sélection multiple ont été converties en chaînes de caractère.
Par exemple, à la place de la formule prop("Person")
qui renvoyait les noms des personnes sous forme de chaînes de caractères, vous verrez maintenant prop("Person").map(currentValue.format()).join(",").
En effet, dans la version 2.0 des formules, prop("Person")
renvoie une liste de personnes plutôt qu'à une simple chaîne de caractères séparée par une virgule. Cette mise à jour préserve votre sortie existante en convertissant chaque élément de la liste « person » en une chaîne de caractères séparée par une virgule.
Si vous souhaitez utiliser les nouveaux types de données riches de cette mise à jour, supprimez les instructions de conversion. Dans l'exemple ci-dessus, cela signifie qu'il suffit d'utiliser directement prop("Person")
. Dans cette situation, la formule renverra une liste de personnes avec l’objet Personne, au lieu d’une chaîne de caractères.
Mentions dynamiques de propriétés
Utilisez les propriétés pour extraire des informations de l’espace de travail
Vous pouvez désormais accéder à des informations spécifiques à l’espace de travail, telles que les noms et adresses e-mail des personnes étiquetées dans votre base de données ou dans une base de données liée, sans avoir à créer une nouvelle propriété.
Par exemple, vous pouvez récupérer le nom complet et l'adresse e-mail d’un utilisateur à partir de la propriété « Créé par », en utilisant le suffixe « name » (par exemple prop("Créé par").name()
) ou « email » (par exemple prop("Créé par").email()
).
Cela vous permet de limiter le nombre de propriétés dans vos principales bases de données et de récupérer les informations nécessaires sans devoir en créer de nouvelles.
La notation avec un point est désormais prise en charge
Créez vos propres variables avec let
Les formules prennent désormais en charge la création de variables ! Comme avec du Javascript classique, let
crée une variable en utilisant le nom du premier argument et la valeur du deuxième argument. Le troisième argument est l'endroit où vous écrivez le reste de votre formule, en utilisant la variable nouvellement créée.
Par exemple, si vous rédigez une formule qui fait référence à un coût total, dans laquelle le coût est la somme de plusieurs propriétés, vous pouvez la rédiger sans avoir à additionner ces propriétés plusieurs fois en cours d’édition.
Mais nous vous conseillons plutôt de créer une variable avec let(Taxes, (prop("Sous-total")*0.099), prop("Sous-total") + Taxes)
. De cette manière, à chaque fois que vous taperez Taxes
, vous pourrez utiliser la valeur prédéfinie, correspondant au produit du sous-total par le taux de taxe.
Dans quelles situations devrais-je utiliser une variable ?
Quand vous maîtriserez l’usage de let
, vous pourrez aussi utiliser lets
pour affecter plusieurs variables à la fois !
Par exemple, vous pouvez combiner deux variables avec lets(a, "Bonjour", b, "tristesse", a + " " + b)
.
Réutilisez des propriétés d’autres bases de données (sans utiliser les agrégations !)
Vous pouvez désormais trouver l’information exacte dont vous avez besoin dans une base de données liée, sans avoir à créer d’abord une agrégation pour référencer cette propriété. Vous pouvez aussi éditer et modifier la façon dont la formule affiche les informations. Avec ces deux améliorations, vous disposez d’un outil bien plus puissant qu’une agrégation classique.
Par exemple, si vous avez une base de données de Projets liée à une base de données de Tâches, il peut être intéressant d’afficher un état d'avancement des tâches, comme ✅ Terminé
, ⚠ En cours
ou ❌ Pas encore commencé
en fonction du pourcentage de tâches terminées.
Dans la version précédente, il fallait créer une agrégation pour afficher l'avancement des tâches, puis créer une formule utilisant ces informations pour renvoyer ✅ Terminé
, ⚠️ En cours
ou ❌ Pas encore commencé
.
Avec la nouvelle version des formules, vous pouvez combiner ces actions, et définir une valeur agrégée dans une variable.
Tout d’abord, récupérez le nombre de tâches complétées avec les fonctions
map()
,filter()
etlenght()
.
prop("Tâches").map(current.prop("État")).filter(current == "Terminé").length()
2. Puis, définissez la valeur agrégée dans une variable pourcentageTerminé
(en divisant le nombre de tâches terminées par le nombre total de tâches, puis en multipliant par 100).Vous pouvez désormais utiliser cette valeur dans n’importe quelle fonction !
let(
pourcentageTerminé,
prop("Tâches").map(current.prop("État")).filter(current == "Terminé").length()/ prop("Tâches").map(current.prop("État")).length() * 100),
/* écrivez le reste de votre formule ici */
)
Dans cet exemple précis, la version finale de votre formule pourrait ressembler à ceci.
let(
pourcentageTerminé,
prop("Tâches").map(current.prop("État")).filter(current =="Terminé").length()/ prop("Tâches").map(current.prop("État")).length() * 100),
ifs(pourcentageTerminé == 100, "✅ Toutes les tâches sont terminées", pourcentageTerminé > 0, "⚠️ En cours (" + pourcentageTerminé + ")%","❌ Pas encore commencé"))
Nouveautés sur les fonctions existantes
Cliquez sur le menu dépliant pour chacune des fonctions pour voir les modifications spécifiques à ces fonctions. Notez que toutes vos fonctions ont été automatiquement converties.
Changements pour les références de propriété
Changements pour les fonctions mathématiques
Changements pour la fonction date
Modifications de fonctions de texte
Changements pour la fonction case à cocher (booléenne)
Et évidemment, il existe désormais quelques nouvelles fonctions, comme match()
, style()
et plus encore ! Consultez la liste complète ici.
Des questions ?