A chaque nouvelle version, Excel présente de nouvelles fonctions qui repoussent les limites de l’analyse de données et de la création de formules. La fonction LAMBDA est une de ces nouveautés.
Cette fonction permet aux utilisateurs de créer des fonctions personnalisées adaptées à leurs besoins spécifiques. Dans cet article, nous explorerons la fonction LAMBDA et fournirons quelques exemples bien concrets.
Ecrire des fonctions personnalisées avec la fonction LAMBDA :
Traditionnellement, les utilisateurs d’Excel étaient limités (façon de parler vu le nombre de fonctions proposées nativement…) à un ensemble fixe de fonctions intégrées. Pour créer des fonctions personnalisées, l’utilisateur devait se plonger dans la programmation VBA.
Avec LAMBDA, l’utilisateur peut désormais créer des fonctions personnalisées plus facilement lui assurant des gains de temps et simplifiant les calculs complexes et tout ça sans écrire une ligne de code VBA. Cette flexibilité favorise la réutilisation et la lisibilité, ce qui rend les formules plus compréhensibles et plus faciles à maintenir.
L’introduction de la fonction LAMBDA apporte plusieurs avantages qui améliorent considérablement l’utilité et l’efficacité d’Excel :
- Réutilisabilité : Les fonctions personnalisées peuvent être utilisées à plusieurs reprises dans le classeur, favorisant des formules plus claires et concises.
- Adaptabilité : LAMBDA permet aux utilisateurs d’adapter Excel à leurs besoins spécifiques, en faisant de cet outil un atout polyvalent dans divers secteurs d’activité.
- Simplification et lisibilité des formules : En attribuant des noms significatifs aux fonctions et aux paramètres d’entrée, les formules deviennent plus intuitives et compréhensibles. Avec LAMBDA, les utilisateurs peuvent encapsuler des calculs complexes dans des fonctions personnalisées, ce qui conduit à des formules plus lisibles et réduit les risques d’erreurs.
Le processus de création d’une fonction personnalisée à l’aide de LAMBDA comprend deux étapes essentielles : la définition de la fonction et son appel.
- Étape 1 : Définir et nommer la fonction
L’utilisateur commence par créer une formule personnalisée en la faisant précéder de la fonction LAMBDA et lui donner un nom.
La fonction LAMBDA nécessite des paramètres d’entrée (tout comme une fonction classique) puis la formule de calcul, chacun séparé les uns des autres par un point-virgule (;) :
=LAMBDA(param1;param2;…;formule)
Les paramètres peuvent être un montant, la référence à une cellule voire une plage de cellules…
La particularité d’une formule de calcul introduite par =LAMBDA est qu’elle ne doit pas être saisie dans une cellule (sinon une erreur #CALC apparaît dans la cellule) :
Bien au contraire !
Les formules LAMBDA sont saisies dans le gestionnaire de noms (menu Formules puis Gestionnaire de noms) :
Le nom de la fonction est entré dans le champ Nom et la formule LAMBDA dans la zone de saisie “Fait référence à” :
Ceci fait, cliquer sur OK.
- Étape 2 : Appeler la fonction. Une fois que la fonction personnalisée est définie, elle peut être appelée dans la feuille de calcul comme n’importe quelle autre fonction intégrée nativement.
Exemple de calcul avec la fonction LAMBDA : calcul du TTC à partir du HT et du taux de TVA
Le calcul d’un montant TTC nécessite les paramètres suivants :
- Un montant HT, par exemple : MtHT = 1 000 € ;
- Un taux de TVA, par exemple : TxTVA = 20 %.
Ainsi que la formule de calcul : = MtHT * (1 + TxTVA) soit 1 200 € TTC. Ces trois éléments associés ensemble avec la fonction LAMBDA :
=LAMBDA(MtHT;TxTVA;MtHT*(1+TxTVA))
Vue du gestionnaire de noms (la fonction est nommée Calcule_MtTTC) :
La fonction s’utilise ainsi :
Cette nouvelle fonction est totalement intégrée à Excel parmi les fonctions natives, de sorte que lorsque l’on commence à taper son nom, elle apparaît dans les suggestions :
Voilà une fonction pleinement opérationnelle… crée sans efforts fastidieux !
Finalement, pour créer des fonction : LAMBDA ou VBA ?
La création de fonctions avec LAMBDA et VBA offre aux utilisateurs d’Excel deux approches distinctes mais complémentaires pour étendre les capacités de la feuille de calcul.
Avec la fonction LAMBDA, les utilisateurs peuvent créer des fonctions personnalisées de manière plus simple et accessible en utilisant la syntaxe familière d’Excel. Cela offre une approche plus intuitive pour les utilisateurs qui ne sont pas familiers avec la programmation et qui souhaitent créer des fonctions spécifiques à leurs besoins sans avoir à se plonger dans le code.
D’un autre côté, Visual Basic for Applications (VBA) est une approche plus traditionnelle pour créer des fonctions personnalisées. VBA est un langage de programmation intégré à Excel qui permet aux utilisateurs de créer des macros et des fonctions avancées en utilisant du code. Cette méthode offre une flexibilité et une puissance inégalées, permettant aux utilisateurs de créer des fonctions complexes et de manipuler efficacement les données dans Excel. Cependant, cela nécessite une certaine connaissance en programmation et peut être plus complexe pour les utilisateurs moins familiers avec le codage. >>> Toutes les infos pour créer une fonction VBA : Créer une fonction VBA.
Equivalent VBA de =LAMBDA(MtHT;TxTVA;MtHT*(1+TxTVA)) :
Function Calcule_MtTTC(MtHT As Double, TxTVA As Double) As Double Calcule_MtTTC = MtHT * (1 + TxTVA) End Function
Toutefois, LAMBDA ne peut pas remplacer le VBA dans tous les cas ; certaines figures de programmation à l’image des boucles ou de traitement de fichiers ne pouvant être réalisées avec LAMBDA.
A noter : si la fonction LAMBDA ajoute de la lisibilité par rapport aux formules de calcul Excel conventionnelles, elles n’offrent tout de même pas le même confort de lecture que du code VBA. Des formules LAMBDA trop longues finissent par ressembler aux fameux DEULIGNES des années 80 :
Les deux méthodes ont leurs avantages et leur place dans l’outil Excel, permettant aux utilisateurs de choisir l’approche qui correspond le mieux à leurs compétences et à leurs besoins en matière de création de fonctions personnalisées. Utilisateur novice ou expert en programmation, Excel offre des possibilités infinies pour étendre ses fonctionnalités et améliorer l’efficacité dans la gestion des données et des formules.
Cadeau bonus : combiner les fonctions LAMBDA et LET
En combinant les fonctions LAMBDA et LET (fonction déjà abordée ici), les utilisateurs d’Excel peuvent tirer parti d’une puissante combinaison qui permet de créer des fonctions personnalisées encore plus élaborées et lisibles.
La fonction LET permet de décomposer des calculs complexes en une succession de calculs élémentaires et de stocker les résultats intermédiaires dans des variables temporaires à l’intérieur d’une formule de calcul dont les valeurs seront appelées par les calculs successifs. Cela évite la répétition de calculs redondants. Réduire la longueur des formules et améliorant d’autant leur lisibilité. L’écriture et la maintenance des calculs complexes apparaît plus simple.
Par exemple, imaginons qu’un utilisateur souhaite créer une fonction personnalisée pour calculer le montant total HT (hors taxe) net de remise d’une facture en un seul calcul. Ce qui revient à calculer la moyenne pondérée des quantités et des montants HT unitaires à laquelle est ensuite appliquée le taux de remise (calculé selon une grille).
Cette fonction nommée CalculFactureHTNetteRemise dans le gestionnaire de noms peut se rédiger ainsi :
=LAMBDA(Plage_Quantités;Plage_PU;Plage_Grille_Remise_Tranches;Plage_Grille_Remise_Taux; LET( MtTotalAvantRemise;SOMME(Plage_Quantités*Plage_PU); Tx_Remise;RECHERCHEX(MtTotalAvantRemise;Plage_Grille_Remise_Tranches;Plage_Grille_Remise_Taux;0;-1;-1); MtTotalAvantRemise*(1-Tx_Remise) ) )
La fonction LAMBDA commence par énumérer les paramètres de calcul :
- Plage_Quantités et Plage_PU qui correspondent respectivement aux plages de cellules des quantités et des prix unitaires HT facturés.
- Plage_Grille_Remise_Tranches et Plage_Grille_Remise_Taux qui correspondent respectivement aux plages de cellules des tranches de montants HT facturés et des taux de remise de la grille de remise.
Avant d’introduire les calculs par la fonction LET qui se charge de les décomposer en trois parties :
- Calcul du montant total HT avant remise : MtTotalAvantRemise = SOMME(Plage_Quantités*Plage_PU)
- Calcul du taux de remise (en fonction d’une grille de remise) : Tx_Remise = RECHERCHEX(MtTotalAvantRemise;Plage_Grille_Remise_Tranches;Plage_Grille_Remise_Taux;0;-1;-1)
- Et enfin calcul du montant HT remisé à partir des deux sous-calculs précédents : MtTotalAvantRemise*(1-Tx_Remise)
Vue de la fonction CalculFactureHTNetteRemise depuis le gestionnaire de noms :
Mise en situation CalculFactureHTNetteRemise :
En combinant LAMBDA et LET, l’utilisateur rend ses formules de calcul beaucoup plus lisibles.
Conclusion :
La fonction LAMBDA représente une avancée majeure pour l’utilisateur en lui facilitant la création de fonctions personnalisées.
___
Approfondir le sujet : découvrir l’analyse de données et l’automatisation des tâches avec Excel…
Derniers articles parBenoît RIVIERE (voir tous)
- Projet IXP (v1.2beta) : quelques nouvelles de mon interpréteur d’expressions - dimanche 1 décembre 2024
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024