Aller au contenu principal

Qu'est-ce que la fonction LAMBDA ?

Définition
La fonction LAMBDA crée une fonction personnalisée réutilisable avec des paramètres nommés. Elle prend d'abord les noms des paramètres, puis la formule de calcul en dernier argument. Disponible dans Microsoft 365 et Excel 2021+.

LAMBDA est la révolution des formules Excel : elle te permet de créer tes propres fonctions personnalisées, réutilisables dans tout le classeur, sans une ligne de VBA. Tu calcules souvent la TVA avec remise ? La marge commerciale ajustée ? Le prix avec frais de port variables ? Avec LAMBDA, tu crées =PRIX_TTC(montant; taux) ou =MARGE_NETTE(vente; achat; frais) et tu les utilises partout, comme SI ou SOMME.

Concrètement, c'est elle qui te permet de centraliser la logique métier en un seul endroit, d'éviter les formules à rallonge copiées-collées avec des erreurs, de partager des calculs complexes dans ton équipe sous un nom lisible, et même de créer des fonctions récursives pour des factorielles ou des suites de Fibonacci.

Syntaxe

=LAMBDA(paramètre1; [paramètre2]; [...]; calcul)

Clique sur un argument pour aller à son explication.

Pour rendre ta LAMBDA réutilisable partout dans le classeur, nomme-la dans le Gestionnaire de noms (Formules → Gestionnaire de noms → Nouveau). Sans nommage, tu dois appeler la fonction directement en ajoutant les arguments entre parenthèses après la définition : =LAMBDA(x; x*2)(5) retourne 10.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction LAMBDA

L'ordre n'est pas négociable ici : tu listes d'abord les noms de tes paramètres, puis ton calcul arrive toujours en tout dernier. C'est ce qui fait qu'=LAMBDA(prix; taux; prix*(1+taux)) marche, alors que coller le calcul au début casse tout.

Seul paramètre1 est vraiment obligatoire ; tu ajoutes ensuite autant de paramètres facultatifs que ton calcul en réclame, et tu devras les fournir dans ce même ordre au moment de l'appel.

1

paramètre1

: le nom du premier paramètre de ta fonction

Tu choisis un nom explicite comme prix, montant ou quantite. Ce nom sera utilisé dans le calcul final pour désigner la valeur passée lors de l'appel.

Au minimum un paramètre est requis (LAMBDA avec seulement un calcul sans paramètre est valide mais peu utile). Choisis des noms clairs et non ambigus : évite les noms de fonctions Excel (SOMME, SI) ou de références de cellules (A1, B2) qui pourraient créer des conflits.

Attention : Si tu nommes un paramètre SOMME ou A1, Excel peut confondre avec la fonction native ou la référence de cellule, causant des erreurs imprévisibles. Utilise des noms métier explicites : prix_ht, taux_tva, quantite_commandee.

2

[paramètre2], [paramètre3], ...

: les paramètres supplémentaires de ta fonction(facultatif)

Tu peux en ajouter autant que nécessaire pour ton calcul. Par exemple, pour une fonction de prix TTC, tu auras prix_ht et taux_tva. Pour une remise conditionnelle, tu pourrais avoir montant, quantite et seuil_remise.

Chaque paramètre supplémentaire devra être fourni lors de l'appel de la fonction, dans le même ordre que défini dans LAMBDA.

3

calcul

: la formule qui utilise les paramètres définis précédemment

C'est le dernier argument de LAMBDA, toujours en position finale. Par exemple : prix_ht * (1 + taux_tva). Tu peux y mettre n'importe quelle formule Excel valide : des SI, des RECHERCHEV, des calculs complexes.

Le calcul est la valeur que ta fonction retournera. Tu peux aussi y imbriquer un LAMBDA ou LET pour structurer des logiques complexes.

Le combo gagnant
Glisse un LET dans ta LAMBDA pour poser des variables intermédiaires : =LAMBDA(x; LET(double; x*2; triple; x*3; double+triple)). LET garde le calcul lisible et t'évite de répéter les sous-expressions coûteuses.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment créer une fonction personnalisée avec la fonction LAMBDA

Ton catalogue vient d'être mis à jour et le service client réclame les prix affichés en TTC pour répondre au téléphone sans calculer de tête. Tu as la liste des articles avec leur prix hors taxes, et tu veux la colonne TTC remplie sans coller la même multiplication dans chaque cellule. La fonction LAMBDA te laisse écrire ce calcul une seule fois, avec un paramètre au nom parlant, puis le déclencher sur la cellule de ton choix.

Les étapes
  1. 1
    Dans une cellule, écris =LAMBDA(.
  2. 2
    En 1er argument : écris le nom du paramètre qui recevra la valeur à chaque appel, prix_ht. Ce n'est pas une référence de cellule mais une étiquette que tu réutilises ensuite dans le calcul, et un nom parlant garde la fonction lisible quand tu la relis des mois plus tard.
  3. 3
    En 2ᵉ argument : écris le calcul, qui arrive toujours en tout dernier, prix_ht*1,2. Il applique les 20 % de TVA au paramètre et ne manipule que son nom, jamais B2 en direct, ce qui rend la fonction réutilisable ailleurs.
  4. 4
    Ferme la parenthèse de la définition, complète par l'appel (B2), puis appuie sur Entrée. Ces parenthèses finales envoient le prix hors taxes de la première ligne dans le paramètre, et sans elles Excel afficherait la définition de ta fonction au lieu d'un montant.
Au final, ta formule devrait ressembler à ça :=LAMBDA(prix_ht; prix_ht*1,2)(B2)
Explication
La fonction LAMBDA pose d'abord un paramètre nommé prix_ht, puis le calcul qui lui sera appliqué. Les parenthèses finales lui passent la valeur à traiter, ici les 89,00 € de la première ligne, et le prix TTC tombe à 106,80 €. Sans cet appel entre parenthèses, Excel se contenterait d'afficher la définition de ta fonction au lieu d'un montant.
Exemple 2

Comment réutiliser une fonction LAMBDA partout dans le classeur

Un client renégocie ses conditions et tu dois lui montrer la marge que tu fais réellement sur ses commandes, frais de dossier compris. Tes ventes sont saisies avec leur coût d'achat et un pourcentage de frais qui change d'un client à l'autre, et cette soustraction, tu la retapes dans trois classeurs différents depuis des mois. La fonction LAMBDA te permet d'enfermer cette règle de calcul sous un nom à toi, que tu appelles ensuite comme une fonction native d'Excel.

Les étapes
  1. 1
    Dans une cellule, écris =MARGE_NETTE(.
  2. 2
    En 1er argument : clique sur la cellule de la vente, B2. C'est le montant facturé au client, et l'ordre des trois valeurs est imposé par la définition de la fonction, donc la vente passe toujours en premier.
  3. 3
    En 2ᵉ argument : clique sur la cellule de l'achat, C2. Ce coût de la marchandise est soustrait de la vente à l'intérieur de la fonction, sans que tu aies à réécrire la moindre opération.
  4. 4
    En 3ᵉ argument : clique sur la cellule du taux de frais, D2. Ce pourcentage propre à chaque client entre dans le calcul enregistré, ce qui t'évite de figer les 5 % en dur et de refaire une fonction par client.
  5. 5
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour couvrir toutes les commandes. Chaque ligne appelle la même fonction avec ses propres montants, et le jour où la règle change tu ne corriges que la définition.
Voici la formule que tu obtiens à la fin :=MARGE_NETTE(B2; C2; D2)
Explication
MARGE_NETTE n'existe pas dans Excel : c'est la définition LAMBDA enregistrée dans le Gestionnaire de noms qui la fabrique, avec ses trois paramètres. Sur la première ligne, elle retire l'achat puis les 5 % de frais à la vente et sort 3 500 €. Le jour où la règle de calcul change, tu corriges la définition à un seul endroit et toutes les lignes suivent.
Exemple 3

Comment gérer l'erreur #DIV/0! dans une fonction LAMBDA

Le point hebdo sur l'acquisition arrive et on te demande quel canal convertit le mieux. Tes ventes et tes visites sont bien là, mais un canal remonte zéro visite parce qu'aucun suivi n'y est branché, et la division fait tomber une erreur en plein milieu de ta colonne. La fonction LAMBDA te laisse enfermer le calcul et sa sécurité dans une seule fonction à toi, pour que le tableau reste présentable quoi qu'il arrive.

Les étapes
  1. 1
    Dans une cellule, écris =TAUX_CONV(.
  2. 2
    En 1er argument : clique sur la cellule des ventes, B2. C'est le nombre de ventes du canal, que la fonction divisera par les visites pour obtenir le taux.
  3. 3
    En 2ᵉ argument : clique sur la cellule des visites, C2. C'est cette valeur qui tombe parfois à zéro et qui déclencherait l'erreur #DIV/0!, mais la protection est déjà enfermée dans la définition de la fonction.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Le canal sans trafic affiche le message prévu au lieu de l'erreur, sans que tu aies à protéger chaque cellule une à une.
Une fois les morceaux assemblés, ta formule donne ça :=TAUX_CONV(B2; C2)
Explication
La définition enregistrée sous le nom TAUX_CONV enferme la division et son filet de sécurité au même endroit, puisque la fonction SIERREUR est placée à l'intérieur de la LAMBDA et non autour de chaque appel. La newsletter ressort à 3,5 %, et la ligne à zéro visite affiche le message prévu au lieu de l'erreur #DIV/0!. Tes cellules n'ont donc plus rien à protéger, la fonction se protège elle-même.
Exemple 4

Comment créer une fonction récursive avec la fonction LAMBDA

Un export de l'ancien logiciel arrive avec des références produits truffées de tirets, de points, d'espaces et de barres obliques, et rien ne se raccorde à ton catalogue tant qu'elles ne sont pas propres. Tu veux une colonne de références normalisées, et surtout pouvoir ajouter un caractère à retirer sans réécrire quoi que ce soit. La fonction LAMBDA sait s'appeler elle-même, ce qui lui permet d'éplucher la liste des caractères indésirables un par un, quelle que soit sa longueur.

Les étapes
  1. 1
    Dans une cellule, écris =NETTOYER_REF(.
  2. 2
    En 1er argument : clique sur la cellule de la référence à nettoyer, A2. Elle contient encore ses tirets, ses points, ses espaces et ses barres obliques, par exemple REF-2024 / 118..
  3. 3
    En 2ᵉ argument : saisis entre guillemets la liste des caractères à retirer, "-. /". Elle réunit le tiret, le point, l'espace et la barre oblique, et la loger dans un argument plutôt que dans la définition te laisse en ajouter d'autres sans jamais rouvrir la fonction.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Chaque référence ressort débarrassée de tous ses parasites, ici REF2024118.
En mettant tout bout à bout, tu écris :=NETTOYER_REF(A2; "-. /")
Explication
NETTOYER_REF n'existe pas dans Excel : c'est ta propre fonction, écrite avec LAMBDA puis enregistrée sous ce nom dans le Gestionnaire de noms (onglet Formules), et c'est précisément ce nom qui lui permet de s'appeler elle-même. Ici, la fonction ne retire qu'un seul caractère par tour, puis se rappelle elle-même avec une liste de parasites raccourcie d'un cran. Quatre tours suffisent pour REF-2024 / 118., qui ressort en REF2024118, et la condition d'arrêt stoppe la descente dès que la liste est vide. Le jour où tu dois aussi retirer les parenthèses, tu les ajoutes à la chaîne passée en second argument, sans rouvrir la définition.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction LAMBDA

Le grief numéro un : tu tapes =LAMBDA(x; x*2) tout seul dans une cellule et tu récupères l'objet fonction au lieu d'un nombre, car tu as oublié de lui passer une valeur. Il faut soit la nommer dans le Gestionnaire de noms, soit lui coller ses arguments juste derrière, comme =LAMBDA(x; x*2)(5).

Les deux autres pièges sont plus discrets : un calcul placé avant les paramètres qu'Excel refuse de comprendre, et un paramètre baptisé SOMME ou A1 qu'il confond avec une fonction native ou une référence de cellule.

Oublier d'appeler la fonction avec des arguments

Si tu écris =LAMBDA(x; x*2) directement dans une cellule sans l'appeler, Excel retourne l'objet fonction lui-même, pas un résultat numérique. Tu verras une valeur inattendue ou une erreur d'affichage.

Solution : Ajoute les arguments entre parenthèses juste après la définition : =LAMBDA(x; x*2)(5) retourne 10. Ou mieux, nomme ta LAMBDA dans le Gestionnaire de noms et utilise-la comme =DOUBLE(5). C'est la méthode recommandée pour une vraie réutilisabilité.

Ordre incorrect des paramètres et du calcul

Les paramètres doivent être définis dans l'ordre, puis le calcul en dernier. Si tu écris =LAMBDA(x*2; x), Excel ne comprend pas que x*2 est le calcul : il l'interprète comme un paramètre invalide.

Solution : Mets toujours les noms de paramètres d'abord, séparés par des points-virgules, puis le calcul en tout dernier : =LAMBDA(x; x*2). La règle est simple : le dernier argument est toujours le calcul.

Noms de paramètres qui entrent en conflit avec des fonctions ou références

Si tu nommes un paramètre SOMME, SI ou A1, Excel peut confondre avec la fonction native ou la référence de cellule, causant des résultats imprévisibles ou des erreurs difficiles à diagnostiquer.

Solution : Utilise des noms clairs et non ambigus : montant, taux, prix_ht, quantite. Évite les noms de fonctions Excel intégrées et les références du style lettre+chiffre. Des noms explicites documentent aussi le rôle de chaque paramètre.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

LAMBDA vs LET vs SI vs INDIRECT

Sors LAMBDA quand tu veux créer une vraie fonction réutilisable sous un nom à toi, partout dans le classeur : c'est la seule des quatre à le permettre. Pour juste alléger une formule à rallonge en posant des variables intermédiaires sans en faire une fonction, LET suffit et reste plus simple.

SI ne gère que la logique conditionnelle d'une cellule, et INDIRECT sert uniquement à construire des références à partir de texte : ni l'un ni l'autre ne crée de fonction nommée.

CritèreLAMBDALETSIINDIRECT
Créer des fonctions réutilisables✅ Oui❌ Non❌ Non❌ Non
Définir des variables locales✅ Via paramètres✅ Oui❌ Non❌ Non
Logique conditionnelle✅ Avec SI dedans✅ Avec SI dedans✅ Oui❌ Non
Références dynamiques⚠️ Via calcul⚠️ Via calcul❌ Non✅ Oui
Complexité⭐⭐⭐⭐⭐⭐⭐
Cas d'usage principalFonctions personnaliséesSimplifier une formule longueConditions simplesRéférences en texte
Le savais-tu ?
Une LAMBDA peut s'appeler elle-même. Nomme FACT = LAMBDA(n; SI(n<=1; 1; n*FACT(n-1))) dans le Gestionnaire de noms, et =FACT(5) renvoie 120 : Excel exécute une vraie fonction récursive, sans une ligne de VBA.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec LAMBDA

1Astuce

Créer des fonctions récursives avec LAMBDA

LAMBDA peut s'appeler elle-même, ce qui permet de créer des fonctions récursives. La factorielle en est l'exemple classique : dans le Gestionnaire de noms, crée FACT = LAMBDA(n; SI(n<=1; 1; n*FACT(n-1))), puis =FACT(5) retourne 120. Ce pattern fonctionne aussi pour des suites de Fibonacci ou le parcours d'arbres de décision.
La récursivité est limitée par la profondeur de pile d'Excel ; pour de grandes valeurs, préfère une approche itérative avec LET.

2Astuce

Composer plusieurs LAMBDA pour une architecture modulaire

Tu peux créer une LAMBDA qui appelle d'autres LAMBDA nommées. Par exemple, définir CALCUL_TVA = LAMBDA(ht; taux; ht*(1+taux)) puis PRIX_FINAL = LAMBDA(ht; taux_tva; CALCUL_TVA(ht; taux_tva)*0,9). Chaque fonction reste simple, testable indépendamment, et réutilisable.
Cette architecture modulaire est la clé pour des classeurs d'entreprise maintenables sur le long terme.

3Astuce

Appliquer LAMBDA à un tableau entier avec MAP

Pour appliquer ta LAMBDA à chaque cellule d'une plage, utilise MAP : =MAP(A1:A10; LAMBDA(x; x*2)) double chaque valeur de la plage A1:A10 et retourne un tableau dynamique. MAP est disponible dans Microsoft 365 et est la façon propre de remplacer les formules matricielles complexes.
Combine avec REDUCE pour agréger un tableau avec une logique personnalisée : =REDUCE(0; A1:A10; LAMBDA(acc; x; acc+x)).

FAQ

Questions fréquentes

LAMBDA te permet de créer tes propres fonctions personnalisées directement dans Excel, sans VBA. Tu définis tes paramètres et ta logique, puis tu peux l'appeler comme =MAFONCTION(valeur). C'est comme créer une fonction native Excel sur mesure. Contrairement aux fonctions natives, LAMBDA est définie par toi dans le classeur. Elle peut être partagée avec tes collègues en distribuant le classeur, mais elle n'est pas disponible dans d'autres classeurs par défaut.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction LAMBDA : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir