Réutiliser une formule / bibliothèque de formules

Bonjour !

Dans un document, j’ai quelques formules assez costaud qui contiennent de la logique métier (par exemple : calculer le coût « chargé » d’un collaborateur à partir de son statut, son taux, la marge d’un intermédiaire, etc.). Et parfois, la même formule va apparaître dans deux tables différentes. C’est problématique pour des questions de maintenance (si je mettais à jour l’une mais pas l’autre).

Existe-t-il une façon de créer une « bibliothèque » de formules ou de fonctions que je pourrais réutiliser à divers endroits ? Quitte à en faire un module Python à importer.

Tiens, trouvé une solution : ajouter une fonction à builtins.

def my_function:
  return 123

import builtins
builtins.my_function = my_function
return None

Suffit d’ajouter une formule comme ça quelque part, et après, my_function est utilisable partout ailleurs. Si ça n’est pas le cas, un « Reload data engine » peut aider.

1 « J'aime »

En créant les fonctions dans une table à part, il semble nécessaire de forcer l’évaluation de celle-ci avant d’appeler la fonction. Sinon, à une prochaine consultation, la formule est erronée.

Déclarer une formule (type indéfini) qui va renvoyer un dictionnaire de formules

Colonne « Calcul »

prix_ht = $Quantite * $PrixUnitaire
tva = prix_ht * 0.2
return {"ht": prix_ht, "tva": tva, "ttc": prix_ht + tva}

Puis dans les colonnes souhaitée, déclencher l’appel :
$Calcul["ttc"]
$Calcul["ht"]

1 « J'aime »

Une alternative :

Je n’ai pas encore eu l’occasion de la jouer, mais ça peut en effet être très utile de stocker une seule fois la formule et de l’appeler dans les colonnes où l’on en a besoin.
Le cas d’usage que j’envisageais concernait notamment les formules d’initialisation à des fins de data cleaning ou de contrôle de validité d’une saisie : valider le format d’une adresse mail, standardiser la forme d’un n° de téléphone, fabriquer une empreinte nom-prénom (supprimer tous les accents, espaces en trop, caractères spéciaux, etc. pour faciliter l’identification des doublons), formater un lien mailto…