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 de la fonction LAMBDA
=LAMBDA(paramètre1; [paramètre2]; [...]; calcul)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.
Astuce : Combine LAMBDA et LET pour définir des variables intermédiaires dans ton calcul : =LAMBDA(x; LET(double; x*2; triple; x*3; double+triple)). LET rend le calcul lisible et évite de répéter des sous-expressions coûteuses.
Pas envie d'écrire la formule LAMBDA à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Développeur Excel : créer une fonction de conversion de température
Tu travailles dans une entreprise internationale et tu dois fréquemment convertir des températures de Celsius en Fahrenheit pour tes rapports. Au lieu de copier la formule =C*9/5+32 partout avec des risques d'erreur, tu crées une fonction LAMBDA réutilisable.
| A | B | |
|---|---|---|
| 1 | Température (°C) | Température (°F) |
| 2 | 0 | 32 |
| 3 | 20 | 68 |
| 4 | 100 | 212 |
=CELSIUS_FAHRENHEIT(A2)La fonction CELSIUS_FAHRENHEIT, définie dans le Gestionnaire de noms à partir d'une LAMBDA, applique la conversion Celsius vers Fahrenheit à la cellule A2 : 0 °C donne bien 32 °F. Elle s'appelle exactement comme une fonction native, et si tu modifies sa définition (pour arrondir, par exemple), toutes les cellules qui l'utilisent se mettent à jour d'un coup.
Astuce de pro : Pour nommer ta LAMBDA : Formules → Gestionnaire de noms → Nouveau → colle =LAMBDA(celsius; celsius*9/5+32) dans le champ "Fait référence à". Elle sera disponible dans tout le classeur.
Analyste financier : calculer la marge nette avec frais variables
Tu calcules constamment la marge nette après déduction des coûts d'achat et des frais opérationnels qui varient selon le montant. Au lieu de répéter cette formule complexe partout, tu crées une LAMBDA dédiée.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Vente | Achat | Frais (%) | Marge nette |
| 2 | 10 000 € | 6 000 € | 5% | 3 500 € |
| 3 | 25 000 € | 15 000 € | 5% | 8 750 € |
| 4 | 50 000 € | 30 000 € | 5% | 17 500 € |
=MARGE_NETTE(A2; B2; C2)La fonction MARGE_NETTE, créée dans le Gestionnaire de noms, prend la vente, l'achat et le pourcentage de frais, puis renvoie la marge après déduction : ici 3 500 € pour la première ligne. Toute la logique métier est encapsulée dans la définition LAMBDA, donc une seule modification suffit pour mettre à jour toutes tes analyses.
Data analyst : normaliser des données avec min-max
Tu dois régulièrement normaliser des données entre 0 et 1 avec la formule min-max : (valeur - min) / (max - min). Au lieu de reconstruire cette expression à chaque analyse, tu crées une LAMBDA dédiée.
| A | B | |
|---|---|---|
| 1 | Score brut | Score normalisé |
| 2 | 45 | 0,00 |
| 3 | 67 | 0,44 |
| 4 | 95 | 1,00 |
=NORMALISER(A2; MIN($A$2:$A$4); MAX($A$2:$A$4))Ici, la fonction NORMALISER (définie via LAMBDA dans le Gestionnaire de noms) reçoit la valeur, le minimum et le maximum de la plage, puis applique la mise à l'échelle min-max : le score le plus bas tombe à 0,00. Le nom explicite documente lui-même le calcul, ce qui est précieux pour le travail en équipe.
Contrôleur de gestion : appliquer une remise par paliers
Tu dois calculer des remises progressives : 0 % en dessous de 1 000 €, 5 % entre 1 000 € et 5 000 €, 10 % au-dessus de 5 000 €. Tu crées une fonction LAMBDA avec des SI imbriqués pour centraliser cette logique.
| A | B | |
|---|---|---|
| 1 | Montant commande | Montant après remise |
| 2 | 800 € | 800 € |
| 3 | 3 000 € | 2 850 € |
| 4 | 8 000 € | 7 200 € |
=REMISE_PALIERS(A2)La fonction REMISE_PALIERS, bâtie sur une LAMBDA à SI imbriqués, regarde dans quel palier tombe le montant : sous 1 000 €, aucune remise n'est appliquée, donc 800 € restent 800 €. Si les seuils évoluent (1 500 € au lieu de 1 000 €, par exemple), une seule modification de la définition met à jour tous tes tableaux de bord.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 sur la fonction LAMBDA
Quelle est la différence entre LAMBDA et une fonction normale ?
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.
Dois-je utiliser le Gestionnaire de noms pour LAMBDA ?
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).
LAMBDA est-elle compatible avec toutes les versions d'Excel ?
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?.
Peut-on imbriquer plusieurs LAMBDA ?
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.
LAMBDA peut-elle remplacer VBA ?
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
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

