IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

EXCEL : LAMBDA
La fonction qui permet de créer des fonctions

Le , par Pierre Fauconnier

0PARTAGES

Salut.

Exclusivité Excel 365

La fonction LAMBDA, on en parle depuis longtemps.

Elle est apparue dans les versions Insider d'Office, mais elle est maintenant disponible, en tout cas sur ma version (Microsoft 365 apps for Entreprise) =>

Cette fonction permet de mémoriser une formule en lui donnant un alias, et de passer des arguments à cette formule et donc, de la transformer en fonction. On avait déjà LET qui permet d'utiliser des variables au sein d'une formule, que Lambda vient compléter pour donner encore plus de puissance à vos formules Excel. Sa syntaxe est simple:
Code excel : Sélectionner tout
=LAMBDA(Par1;Par2;...;ParN;Formule utilisant les arguments)

On pouvait déjà, par le passé:
  • créer des fonctions personnalisées en VBA, mais il faut savoir programmer, d'une part, et d'autre part cela transforme le fichier en xlam, amenant un risque de sécurité;
  • créer des formules nommées, mais cela imposait une conception de classeur puisque les formules nommées sont liées à des cellules.


Dans un prochain billet, j'illustrerai ces deux méthodes.

La fonction LAMBDA permet d'oublier le VBA, si la formule est exprimable en Excel, et découple la formule de la cellule dans laquelle elle est utilisée.


Elle permet de créer une fonction dans Excel que l'on utilise comme une fonction native. Prenons comme exemple le calcul du volume d'un cylindre dont on connaît le diamètre et la hauteur. Ok, on peut le faire par formule: = (A2/2)^2*PI()*B2, avec A2 pour le diamètre et B2 pour la hauteur. Et comme on peut le faire par formule, on peut utiliser LAMBDA. Il pourra alors être intéressant d'avoir une fonction toute faite: =VolumeCylindre(A2,B2).



Sympa, non? Et bien, LAMBDA permet de réaliser cela, et facilement, en plus.

On crée une fonction en trois temps:
  1. On écrit la formule;
  2. On teste La fonction LAMBDA sur la feuille;
  3. On enregistre cette fonction LAMBDA dans le gestionnaire de noms et on lui donne le nom souhaité.


1ère étape



2ième étape

On inclut la formule dans la fonction LAMBDA en:
  1. spécifiant d'abord les arguments (Diamètre et hauteur);
  2. remplaçant les références de cellule par les arguments, et l'on note que l'infobulle d'aide à la saisie propose les arguments définis en début de fonction;
  3. passant les arguments, entre parenthèses, après la parenthèse de la fonction Lambda (comme on le ferait pour n'importe quelle fonction native d'Excel.




3ième étape

  1. On copie la formule sans les arguments utilisés pour la tester;
  2. On crée une fonction nommée dans le gestionnaire de noms;
  3. En référence, on colle la formule utilisant LAMBDA.




A cette étape, on peut également ajouter une légende qui apparaitra en infobulle lors de la sélection de la fonction. A noter que, actuellement, cette description n'est pas reprise dans l'assistant Fonctions.



Utilisation

On utilise la fonction comme une fonction native d'Excel.



La fonction est utilisable partout dans le classeur. Vous devrez la recréer dans chaque classeur dans lequel vous souhaitez l'utiliser. Un OneNote vous permettra de sauvergarder le code de la fonction dans votre bibliothèque de codes.

Bien sûr, j'ai détaillé les étapes ici pour la prise en main de cette nouvelle fonction, mais vous pouvez évidemment saisir directement la fonction Lambda sans passer par l'étape 1, et rédiger la formule à l'intérieur de la fonction Lambda... Il est tout à fait possible de saisir la formule directement dans le gestionnaire de nom en l'encapsulant dans la fonction LAMBDA ou, pour la tester, la saisir dans une cellule, là aussi encapsulée dans LAMBDA. Toutefois, pour les formules un peu complexes, l'étape 1 peut être intéressante.

Et pour vous, cette fonction est disponible?

N'hésitez pas à la tester et à commenter ici vos impressions sur l'utilité de cette fonction.

Une erreur dans cette actualité ? Signalez-nous-la !