En bref —
LAMBDAemballe une formule dans une fonction que vous pouvez nommer et réutiliser — la première fois qu'Excel vous laisse créer une fonction personnalisée sans VBA. Un=LAMBDA(x, x*2)seul renvoie#CALC!parce qu'une définition n'est pas un appel ; ajoutez une parenthèse finale=LAMBDA(x, x*2)(5)pour l'exécuter, ou enregistrez-le dans le Gestionnaire de noms pour que tout le classeur puisse appeler=MaFonction(...). Excel 365 et 2021+.
=LAMBDA(x, x*2)(5) ' -> 10 (la parenthèse finale passe l'argument)
=FtoC(212) ' -> 100 (après avoir nommé =LAMBDA(t,(t-32)*5/9) FtoC)
Toutes les autres fonctions d'Excel ont été écrites par Microsoft. LAMBDA est celle
que vous écrivez. Elle prend la logique de formule que vous n'arrêtez pas de copier
d'une cellule à l'autre, lui donne un nom et des paramètres, et la transforme en une
fonction qui se comporte exactement comme SUM (SOMME) ou XLOOKUP (RECHERCHEX) —
sauf qu'elle fait ce que vous avez défini. Pas de macros, pas de .xlsm, pas
d'éditeur Visual Basic.
Ce que vous allez apprendre
- Le modèle mental : une définition de fonction, pas un résultat
- La seule règle qui déroute tout le monde : un LAMBDA seul renvoie
#CALC!— et les deux façons de l'appeler - Comment enregistrer un LAMBDA dans le Gestionnaire de noms pour qu'il fonctionne partout
- La récursivité — un LAMBDA qui s'appelle lui-même, la seule chose que seul LAMBDA (et VBA) sait faire
- Quand un LAMBDA bat le copier-coller d'une formule — et quand non
Le modèle mental : un LAMBDA est une définition de fonction
LAMBDA(paramètres, calcul) ne calcule rien à lui seul — il décrit un calcul, en
attente d'entrées. Lisez =LAMBDA(x, x*2) comme « une fonction qui prend x et
renvoie x fois 2. » C'est une définition, comme écrire
function double(x) { return x*2 } dans du code. Rien n'a encore été appelé — et
c'est précisément pour cela qu'Excel, tout seul, ne peut pas vous afficher de valeur.
La règle qui casse LAMBDA : une définition n'est pas un appel
Tapez =LAMBDA(x, x*2) dans une cellule et vous obtenez #CALC!. C'est la source
numéro un du « LAMBDA ne marche pas », et ce n'est pas un bug — vous avez défini une
fonction et ne l'avez jamais appelée. Il y a deux façons de l'appeler :
=LAMBDA(x, x*2) ' #CALC! — une définition sans entrées
=LAMBDA(x, x*2)(5) ' 10 — le (5) final l'appelle avec x = 5
La parenthèse finale est l'appel. =LAMBDA(x, x*2)(5) signifie « définissez cette
fonction, puis exécutez-la immédiatement avec 5 ». Pratique pour tester — mais
réécrire toute la définition à chaque fois fait perdre tout l'intérêt. Le vrai gain,
c'est de le nommer.
Nommez-le dans le Gestionnaire de noms = votre propre fonction de feuille
Appeler un LAMBDA en ligne est un tour de passe-passe. Le but, c'est de le stocker sous un nom et d'appeler ce nom n'importe où. Allez dans Formules ▸ Gestionnaire de noms ▸ Nouveau, donnez-lui un nom, et placez le LAMBDA dans Fait référence à :
Nom : FtoC
Fait référence à : =LAMBDA(t, (t-32)*5/9)
Désormais =FtoC(212) renvoie 100 dans n'importe quelle cellule, dans n'importe
quelle feuille du classeur — exactement comme une fonction intégrée, sans aucune
définition (...) en vue :
=FtoC(212) ' 100
=FtoC(A2) ' convertit ce qui se trouve dans A2
Vous avez ajouté une fonction au vocabulaire d'Excel. Partagez le classeur et la fonction voyage avec lui. C'est toute la différence entre LET et LAMBDA : LET nomme des valeurs à l'intérieur d'une seule formule ; LAMBDA nomme une fonction que vous appelez de partout. (Et le corps d'un bon LAMBDA est presque toujours un LET.)
Récursivité : un LAMBDA peut s'appeler lui-même
Parce qu'un LAMBDA nommé a un nom, il peut s'appeler lui-même — la récursivité, la seule chose qu'aucune formule ordinaire ne sait faire et qui nécessitait auparavant VBA. Le piège : le nom n'existe qu'une fois que vous l'avez enregistré dans le Gestionnaire de noms, donc la récursivité ne fonctionne que sur un LAMBDA nommé, jamais sur un LAMBDA seul.
Nom : FACT
Fait référence à : =LAMBDA(n, IF(n<=1, 1, n*FACT(n-1)))
=FACT(5) se déroule de proche en proche — 5*FACT(4), 4*FACT(3), … — et renvoie
120. Le IF (SI) qui arrête la descente (n<=1) est le cas de base ; oubliez-le
et Excel récurse jusqu'à abandonner. La récursivité, c'est ainsi que LAMBDA gère les
tâches véritablement difficiles — parcourir une liste délimitée, nettoyer une chaîne
truffée de mauvais caractères, analyser une hiérarchie — en pure formule.
Le verdict : quand LAMBDA mérite sa place
Sortez LAMBDA quand vous vous surprenez à coller la même formule complexe dans de nombreuses cellules, ou à construire une logique que vous écririez sinon en UDF VBA. Le nommer une fois, c'est le corriger une fois — modifiez la définition dans le Gestionnaire de noms et chaque appel se met à jour. Les limites, en toute honnêteté :
- N'enveloppez pas un raccourci d'une ligne que vous n'utilisez qu'une fois — ce n'est qu'un détour inutile.
- Pour un calcul qui tient dans une seule formule, vous voulez LET, pas LAMBDA.
- Pour exécuter un LAMBDA sur tout un tableau (une colonne de valeurs, chaque ligne d'un tableau), vous l'associez aux fonctions d'assistance LAMBDA — MAP, REDUCE, BYROW.
La progression est tout l'enjeu : LET vous donne les variables, LAMBDA vous donne les fonctions, et les fonctions d'assistance vous donnent les boucles. Ensemble, elles transforment les formules Excel en un petit langage de programmation.
Comment ExcelMaster vous aide
Écrire un LAMBDA correct — les paramètres, le cas de base, le test de la parenthèse finale, le placer dans le Gestionnaire de noms — est fastidieux, et exactement le genre de chose qu'un copilote IA réussit du premier coup. ExcelMaster transforme « crée une fonction qui convertit des Fahrenheit en Celsius » ou « une fonction récursive qui retire tous les chiffres d'une chaîne » en un LAMBDA nommé et fonctionnel, le définit dans le Gestionnaire de noms à votre place, et explique le cas de base pour que la récursivité s'arrête réellement. Essayez-le sur vos propres données.
Foire aux questions
Qu'est-ce que la fonction LAMBDA dans Excel ?
LAMBDA vous permet de créer votre propre fonction réutilisable à partir d'une
formule, sans VBA. Vous définissez des paramètres et un calcul, l'enregistrez sous un
nom dans le Gestionnaire de noms, puis l'appelez comme n'importe quelle fonction
intégrée : =MaFonction(...).
Pourquoi mon LAMBDA renvoie-t-il #CALC! ?
Parce qu'un =LAMBDA(...) seul est une définition, pas un appel. Ajoutez une
parenthèse finale avec les arguments — =LAMBDA(x, x*2)(5) — ou enregistrez le LAMBDA
sous un nom dans le Gestionnaire de noms et appelez ce nom.
Comment rendre un LAMBDA réutilisable dans tout le classeur ?
Ouvrez Formules ▸ Gestionnaire de noms ▸ Nouveau, donnez-lui un nom (par exemple
FtoC), et placez le LAMBDA dans Fait référence à : =LAMBDA(t,(t-32)*5/9).
Désormais =FtoC(212) fonctionne dans n'importe quelle cellule du classeur.
Un LAMBDA peut-il s'appeler lui-même (récursivité) ?
Oui — un LAMBDA nommé peut référencer son propre nom, donc
=LAMBDA(n, IF(n<=1, 1, n*FACT(n-1))) nommé FACT calcule une factorielle. Incluez
toujours un cas de base (ici n<=1) pour que la récursivité s'arrête.
Faut-il VBA pour créer une fonction personnalisée dans Excel ?
Non. LAMBDA crée des fonctions personnalisées en pures formules — pas de macros, pas de
fichier .xlsm, pas d'éditeur Visual Basic. Elle est disponible dans Excel 2021, 2024
et Microsoft 365.
Testé dans
Testé dans : Excel 365 (Windows 11) – dernière vérification le 22/06/2026.
Guides associés : Excel LET · Excel MAP, REDUCE et BYROW · Excel FILTER · Excel SEQUENCE
