Comment utiliser la fonction Excel LAMBDA -

Table des matières

Sommaire

La fonction Excel LAMBDA permet de créer des fonctions personnalisées qui peuvent être réutilisées dans un classeur, sans VBA ni macros.

Objectif

Créer une fonction personnalisée

Valeur de retour

Tel que défini par la formule

Syntaxe

= LAMBDA (paramètre,…, calcul)

Arguments

  • paramètre - Une valeur d'entrée pour la fonction.
  • calcul - Le calcul à effectuer comme résultat de la fonction. Doit être le dernier argument.

Version

Excel 365

Notes d'utilisation

En programmation informatique, LAMBDA fait référence à une fonction ou une expression anonyme. Une fonction anonyme est une fonction définie sans nom. Dans Excel, la fonction LAMBDA fournit un moyen de définir et d'encapsuler une fonctionnalité de formule spécifique, un peu comme une fonction Excel. Une fois définie, une fonction LAMBDA peut être nommée et réutilisée ailleurs dans un classeur. En d'autres termes, la fonction LAMBDA est un moyen de créer des fonctions personnalisées.

L'un des principaux avantages d'une fonction LAMBDA personnalisée est que la logique contenue dans la formule n'existe qu'à un seul endroit. Cela signifie qu'il n'y a qu'une seule copie du code à mettre à jour lors de la résolution de problèmes ou de la mise à jour de la fonctionnalité, et les modifications se propageront automatiquement à toutes les instances de la fonction LAMBDA dans un classeur. Une fonction LAMBDA ne nécessite ni VBA ni macros.

Exemple 1 | Exemple 2 | Exemple 3

Créer une fonction LAMBDA

Les fonctions LAMBDA sont généralement créées et déboguées dans la barre de formule d'une feuille de calcul, puis déplacées dans le gestionnaire de noms pour attribuer un nom qui peut être utilisé n'importe où dans un classeur.

Il existe quatre étapes de base pour créer et utiliser une formule personnalisée basée sur la fonction LAMBDA:

  1. Vérifiez la logique que vous utiliserez avec une formule standard
  2. Créer et tester une version LAMBDA générique (sans nom) de la formule
  3. Nommer et définir la formule LAMBDA avec le gestionnaire de noms
  4. Tester la nouvelle fonction personnalisée en utilisant le nom défini

Les exemples ci-dessous décrivent ces étapes plus en détail.

Exemple 1

Pour illustrer le fonctionnement de LAMBDA, commençons par une formule très simple:

=x*y // multiple x and y

Dans Excel, cette formule utilise généralement des références de cellules comme celle-ci:

=B5*C5 // with cell references

Comme vous pouvez le voir, la formule fonctionne bien, nous sommes donc prêts à passer à la création d'une formule LAMBDA générique (version sans nom). La première chose à considérer est si la formule nécessite des entrées (paramètres). Dans ce cas, la réponse est «oui» - la formule requiert une valeur pour x et une valeur pour y. Une fois cela établi, nous commençons avec la fonction LAMBDA et ajoutons les paramètres requis pour l'entrée utilisateur:

=LAMBDA(x,y // begin with input parameters

Ensuite, nous devons ajouter le calcul réel, x * y:

=LAMBDA(x,y,x*y)

Si vous entrez la formule à ce stade, vous obtiendrez un #CALC! Erreur. Cela se produit car la formule n'a aucune valeur d'entrée à utiliser, car il n'y a plus de références de cellule. Pour tester la formule, nous devons utiliser une syntaxe spéciale comme celle-ci:

=LAMBDA(x,y,x*y)(B5,C5) // testing syntax

Cette syntaxe, où les paramètres sont fournis à la fin d'une fonction LAMBDA dans un ensemble distinct de parenthèses, est unique aux fonctions LAMBDA. Cela permet à la formule d'être testée directement sur la feuille de calcul, avant que le LAMBDA ne soit nommé. Dans l'écran ci-dessous, vous pouvez voir que la fonction LAMBDA générique dans F5 renvoie exactement le même résultat que la formule d'origine dans E5:

Nous sommes maintenant prêts à nommer la fonction LAMBDA avec le gestionnaire de noms. Tout d'abord, sélectionnez la formule, * sans * les paramètres de test à la fin. Ensuite, ouvrez le Gestionnaire de noms avec le raccourci Ctrl + F3 et cliquez sur Nouveau.

Dans la boîte de dialogue Nouveau nom, entrez le nom «XBYY», laissez la portée définie sur classeur et collez la formule que vous avez copiée dans la zone de saisie «Se réfère à».

Assurez-vous que la formule commence par un signe égal (=). Maintenant que la formule LAMBDA a un nom, elle peut être utilisée dans le classeur comme toute autre fonction. Dans l'écran ci-dessous, la formule dans G5, copiée vers le bas, est:

La nouvelle fonction personnalisée renvoie le même résultat que les deux autres formules.

Exemple 2

Dans cet exemple, nous allons convertir une formule pour calculer le volume d'une sphère en une fonction LAMBDA personnalisée. La formule générale Excel pour calculer le volume d'une sphère est:

=4/3*PI()*A1^3 // volume of sphere

où A1 représente le rayon. L'écran ci-dessous montre cette formule en action:

Notez que cette formule ne nécessite qu'une seule entrée (rayon) pour calculer le volume, donc notre fonction LAMBDA n'aura besoin que d'un paramètre (r), qui apparaîtra comme premier argument. Voici la formule convertie en LAMBDA:

=LAMBDA(r,4/3*PI()*r^3) // generic lambda

De retour dans la feuille de calcul, nous avons remplacé la formule d'origine par la version générique de LAMBDA. Notez que nous utilisons la syntaxe de test, qui nous permet de brancher B5 pour le rayon:

Les résultats de la formule LAMBDA générique sont exactement les mêmes que la formule d'origine, donc l'étape suivante consiste à définir et nommer cette formule LAMBDA avec le Gestionnaire de noms, comme expliqué ci-dessus. Le nom utilisé pour une fonction LAMBDA peut être n'importe quel nom Excel valide. Dans ce cas, nous nommerons la formule "SphereVolume".

De retour dans la feuille de calcul, nous avons remplacé la formule LAMBDA générique (sans nom) par la version LAMBDA nommée, et avons entré B5 pour r. Notez que les résultats renvoyés par la fonction SphereVolume personnalisée sont exactement les mêmes que les résultats précédents.

Exemple 3

Dans cet exemple, nous allons créer une fonction LAMBDA pour compter les mots. Excel n'a pas de fonction à cet effet, mais vous pouvez compter les mots avec une cellule avec une formule personnalisée basée sur les fonctions LEN et SUBSTITUTE comme ceci:

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Lisez les explications détaillées ici. Voici la formule en action dans une feuille de calcul:

Notez que nous obtenons un compte incorrect de 1 lorsque la formule reçoit une cellule vide (B10). Nous aborderons ce problème ci-dessous.

Cette formule ne nécessite qu'une seule entrée, qui est le texte qui contient des mots. Dans notre fonction LAMBDA, nous nommerons cet argument "texte". Voici la formule convertie en LAMBDA:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Remarquez que "texte" apparaît comme premier argument, et le calcul est le deuxième et dernier argument. Dans l'écran ci-dessous, nous avons remplacé la formule d'origine par la version générique LAMBDA. Notez que nous utilisons la syntaxe de test, qui nous permet de brancher B5 pour le texte:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)(B5)

Les résultats de la formule LAMBDA générique sont les mêmes que la formule d'origine, donc l'étape suivante consiste à définir et nommer cette formule LAMBDA avec le Gestionnaire de noms, comme expliqué précédemment. Nous nommerons cette formule "CountWords".

Ci-dessous, nous avons remplacé la formule LAMBDA générique (sans nom) par la version nommée LAMBDA et entré B5 pour le texte. Notez que nous obtenons exactement les mêmes résultats.

La formule utilisée dans le gestionnaire de noms pour définir CountWords est la même que ci-dessus, sans la syntaxe de test:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Résoudre le problème des cellules vides

Comme mentionné ci-dessus, la formule ci-dessus renvoie un nombre incorrect de 1 lorsqu'une cellule est vide. Ce problème peut être résolu en remplaçant +1 par le code ci-dessous:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Explication complète ici. Pour mettre à jour la formule LAMDA nommée existante, nous devons à nouveau utiliser le gestionnaire de noms:

  1. Ouvrez le gestionnaire de noms
  2. Sélectionnez le nom "CountWords" et cliquez sur "Modifier"
  3. Remplacez le code "Se réfère à" par cette formule:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+(LEN(TRIM(text))>0))

Une fois le gestionnaire de noms fermé, CountWords fonctionne correctement sur les cellules vides, comme indiqué ci-dessous:

Remarque: en mettant à jour le code une fois dans le gestionnaire de noms, toutes les instances de la formule CountWords sont mises à jour en même temps. C'est un avantage clé des fonctions personnalisées créées avec LAMBDA - les mises à jour des formules peuvent être gérées en un seul endroit.

Articles intéressants...