Qu'est-ce que la fonction LAMBDA ?
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.

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.
paramètre1
: le nom du premier paramètre de ta fonctionTu 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.
[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.
calcul
: la formule qui utilise les paramètres définis précédemmentC'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.

Exemples pratiques pas à pas
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.
- 1Dans une cellule, écris
=LAMBDA(. - 2En 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. - 3En 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, jamaisB2en direct, ce qui rend la fonction réutilisable ailleurs. - 4Ferme 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.
=LAMBDA(prix_ht; prix_ht*1,2)(B2)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.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.
- 1Dans une cellule, écris
=MARGE_NETTE(. - 2En 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. - 3En 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. - 4En 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. - 5Ferme 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.
=MARGE_NETTE(B2; C2; D2)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.
- 1Dans une cellule, écris
=TAUX_CONV(. - 2En 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. - 3En 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. - 4Ferme 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.
=TAUX_CONV(B2; C2)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.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.
- 1Dans une cellule, écris
=NETTOYER_REF(. - 2En 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 exempleREF-2024 / 118.. - 3En 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. - 4Ferme 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.
=NETTOYER_REF(A2; "-. /")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.
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.

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ère | LAMBDA | LET | SI | INDIRECT |
|---|---|---|---|---|
| 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 principal | Fonctions personnalisées | Simplifier une formule longue | Conditions simples | Références en texte |

Astuces avancées avec LAMBDA
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.
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.
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)).
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.
Pas obligatoirement. Tu peux utiliser LAMBDA directement dans une formule en ajoutant les arguments juste après la définition : =LAMBDA(x; x*2)(5) retourne 10.
Mais le vrai pouvoir de LAMBDA se révèle quand tu la nommes dans le Gestionnaire de noms : elle devient réutilisable partout dans ton classeur sous un nom lisible comme =PRIX_TTC(A2; 0,2).
Non, LAMBDA est disponible uniquement dans Microsoft 365 (Excel 2021 et versions ultérieures) ainsi que dans Google Sheets. Si tu travailles avec Excel 2019 ou antérieur, tu devras utiliser VBA ou d'autres approches pour créer des fonctions personnalisées.
Avant d'utiliser LAMBDA dans un classeur partagé, vérifie que tous les utilisateurs ont une version compatible pour éviter les erreurs #NOM?.
Oui, tu peux créer des LAMBDA qui appellent d'autres LAMBDA nommées. C'est puissant pour décomposer des calculs complexes en fonctions modulaires. Par exemple, une fonction PRIX_FINAL pourrait appeler CALCUL_TVA et CALCUL_REMISE.
Tu peux aussi imbriquer LET à l'intérieur d'une LAMBDA pour définir des variables intermédiaires et simplifier le calcul principal.
Pour des calculs complexes réutilisables, oui dans de nombreux cas. LAMBDA est parfaite pour créer des fonctions mathématiques, financières ou de transformation de données qui s'appliquent cellule par cellule. Mais VBA reste nécessaire pour manipuler l'interface Excel (boutons, boîtes de dialogue), automatiser des actions sur des feuilles entières, ou interagir avec des systèmes externes. Les deux outils sont complémentaires.
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




