🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Fonction LAMBDA d'Excel — créez vos propres fonctions réutilisables (sans VBA)

|

Fonction LAMBDA d'Excel — créez vos propres fonctions réutilisables (sans VBA)

En brefLAMBDA emballe 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