Tu ouvres une formule Excel et tu retrouves trois fois la même RECHERCHEX, des références de cellules dans tous les sens et un calcul devenu presque impossible à relire. La formule fonctionne, mais au premier changement tu dois la démonter morceau par morceau pour comprendre ce qu'elle fait.
Les fonctions LET et LAMBDA règlent deux problèmes différents. LET donne des noms clairs aux calculs intermédiaires à l'intérieur d'une formule. LAMBDA transforme ensuite un calcul en fonction personnalisée que tu peux rappeler partout dans le classeur, sans écrire une ligne de VBA.
On va partir d'un exemple concret : calculer la commission de vendeurs selon leur chiffre d'affaires. Tu verras d'abord la formule classique, puis sa version LET, et enfin une fonction commission créée avec LAMBDA. Si RECHERCHEX est encore nouvelle pour toi, garde le tuto RECHERCHEX pour remplir une colonne automatiquement ouvert à côté.
- Donner un nom à un calcul avec LET
- Éviter de recalculer plusieurs fois la même RECHERCHEX
- Tester une fonction LAMBDA directement dans une cellule
- Créer une fonction personnalisée dans le Gestionnaire de noms
- Combiner LAMBDA et LET dans une formule réutilisable
- Comprendre les erreurs #CALC! et #VALEUR! liées à LAMBDA
LET et LAMBDA : la différence en 20 secondes
Le plus simple est de ne pas les mettre dans le même panier. LET améliore l'intérieur d'une formule. LAMBDA rend cette formule réutilisable.
| Fonction | Son rôle | Portée |
|---|---|---|
| LET | Nommer une valeur ou un calcul intermédiaire | Uniquement dans la formule où le nom est défini |
| LAMBDA | Créer un calcul avec des paramètres | Réutilisable dans le classeur une fois nommé |
Une bonne façon de les retenir : LET range l'atelier, LAMBDA fabrique l'outil que tu pourras ressortir plus tard.
Étape 1 : pars de la formule SI classique
Dans notre tableau, un vendeur reçoit 6 % de commission lorsque son chiffre d'affaires dépasse l'objectif de 10 000 €, et 3 % sinon. Avec le chiffre d'affaires en B3, l'objectif en F3 et les deux taux en F4 et F5, la formule classique est :
=SI(B3>$F$3;B3*$F$5;B3*$F$4)
Cette formule est correcte. Elle compare B3 à l'objectif, puis multiplie le même chiffre d'affaires par le taux correspondant. Sur un calcul aussi court, LET n'est pas indispensable. L'intérêt apparaît dès que la valeur utilisée plusieurs fois devient elle-même un calcul long.
> : un chiffre d'affaires exactement égal à 10 000 € reste donc au taux de base. Si ta règle métier dit « objectif atteint ou dépassé », remplace simplement > par >=. Le fonctionnement de LET et LAMBDA ne change pas.Étape 2 : donne un nom au chiffre d'affaires avec LET
LET commence par un couple nom ; valeur, puis se termine par le calcul à renvoyer. Ici, on décide que le nom ca représente la cellule B3 :
=LET(ca;B3;SI(ca>$F$3;ca*$F$5;ca*$F$4))
Le résultat ne change pas. La différence est dans la lecture : on comprend tout de suite que la formule manipule un chiffre d'affaires. Tu peux définir plusieurs couples nom-valeur dans le même LET, tant que le dernier argument reste le résultat à renvoyer.
ca existe uniquement entre les parenthèses de cette formule. Il ne crée ni cellule cachée, ni variable permanente, ni nom réutilisable ailleurs. C'est justement le rôle de LAMBDA, que l'on verra plus bas.Étape 3 : utilise LET là où le gain devient évident
Imaginons maintenant une zone de recherche : tu choisis le nom d'un vendeur en F8 et Excel doit retrouver son chiffre d'affaires avant de calculer sa commission. Sans LET, la même RECHERCHEX se retrouve dans le test logique, dans le résultat si l'objectif est dépassé, puis encore dans le résultat contraire :
=SI(RECHERCHEX(F8;$A$3:$A$7;$B$3:$B$7)>$F$3;RECHERCHEX(F8;$A$3:$A$7;$B$3:$B$7)*$F$5;RECHERCHEX(F8;$A$3:$A$7;$B$3:$B$7)*$F$4)
C'est long à taper, pénible à vérifier et fragile à modifier. Avec LET, on calcule la RECHERCHEX une fois, on la nomme ca, puis on réutilise ce résultat :
=LET(ca;RECHERCHEX(F8;$A$3:$A$7;$B$3:$B$7);SI(ca>$F$3;ca*$F$5;ca*$F$4))
Sur quelques lignes, le gain principal est la lisibilité. Sur un gros tableau, éviter des recherches identiques peut aussi réduire le travail demandé à Excel. Et si aucune correspondance n'est garantie, tu peux sécuriser la recherche avec la méthode expliquée dans le tuto SIERREUR pour supprimer les #N/A.
Étape 4 : teste LAMBDA directement dans une cellule
LAMBDA commence par la liste de ses paramètres, puis indique le calcul à effectuer. Pour une première version de notre commission, elle reçoit un seul paramètre nommé ca :
=LAMBDA(ca;SI(ca>10000;ca*0,06;ca*0,03))
Saisie seule dans une cellule, cette formule définit bien un calcul, mais elle ne lui donne aucune valeur à traiter. Excel renvoie alors #CALC!. Pour la tester immédiatement, ajoute les arguments dans une seconde paire de parenthèses à la fin :
=LAMBDA(ca;SI(ca>10000;ca*0,06;ca*0,03))(B3)
Ce test direct sert à vérifier le calcul avant de l'enregistrer. Une fois le résultat validé, on retire la paire de parenthèses finale et on place la définition dans le Gestionnaire de noms.
Étape 5 : crée ta fonction personnalisée sans VBA
Va dans Formules > Gestionnaire de noms > Nouveau. Dans le champ Nom, écris commission. Dans le champ Fait référence à, colle la LAMBDA sans l'appel final :
=LAMBDA(ca;SI(ca>10000;ca*0,06;ca*0,03))
Après validation, commission se comporte comme une fonction native du classeur. Dans une cellule, tu peux écrire =commission(B3), recopier la formule vers le bas et obtenir le résultat pour chaque vendeur. Tu viens de créer une fonction personnalisée sans passer par une macro VBA.
Étape 6 : combine LAMBDA et LET pour rendre l'objectif modifiable
La première version contient 10 000 en dur. Pour rendre la fonction vraiment réutilisable, ajoutons un deuxième paramètre nommé objectif. LET calcule ensuite le taux une seule fois, puis renvoie le chiffre d'affaires multiplié par ce taux :
=LAMBDA(ca;objectif;LET(taux;SI(ca>objectif;0,06;0,03);ca*taux))
La structure devient très simple à relire :
caetobjectifsont les deux informations fournies à la fonction.tauxest un nom local créé par LET.ca*tauxest le résultat renvoyé.
Tu peux maintenant appeler la fonction avec une valeur fixe ou, mieux, avec la cellule qui contient l'objectif :
=commission(B3;$F$3)
commission attendait un seul argument : le chiffre d'affaires. Après l'ajout du paramètre objectif, elle en attend deux. Les anciennes formules comme =commission(B3) deviennent donc incomplètes et renvoient #VALEUR!. Il suffit de les remplacer par =commission(B3;$F$3).Quelles versions d'Excel acceptent LET et LAMBDA ?
La compatibilité dépend de la version et de la licence, pas seulement du fait qu'Excel soit « à jour ». LET est disponible dans Microsoft 365, Excel 2024 et Excel 2021. LAMBDA est disponible dans Microsoft 365 et Excel 2024, mais pas dans Excel 2021. Si Excel affiche #NOM? dès que tu tapes la fonction, commence donc par vérifier ta version.
Autre point pratique : une LAMBDA enregistrée dans le Gestionnaire de noms voyage avec le classeur. La personne qui reçoit le fichier peut l'utiliser sans activer de macros, à condition que sa version d'Excel prenne LAMBDA en charge.
Le bon réflexe : LET d'abord, LAMBDA ensuite
Ne cherche pas à transformer chaque petite formule en fonction personnalisée. Commence par LET lorsque tu répètes un calcul long ou que tes références deviennent illisibles. Passe à LAMBDA quand ce calcul revient dans plusieurs cellules, plusieurs feuilles ou plusieurs modèles.
Dans notre exemple, la progression est logique : SI fait le calcul, LET le rend lisible, LAMBDA le rend réutilisable. Et la combinaison des deux donne une fonction commission courte à appeler, simple à expliquer et facile à faire évoluer.
Pour continuer à simplifier tes formules, regarde aussi le comparatif RECHERCHEV ou RECHERCHEX et le guide des raccourcis Excel indispensables.
Questions fréquentes
Quelle est la différence entre LET et LAMBDA dans Excel ?
LET donne des noms locaux à des valeurs ou calculs intermédiaires à l'intérieur d'une seule formule. LAMBDA définit un calcul avec des paramètres et permet, une fois ce calcul enregistré dans le Gestionnaire de noms, de le réutiliser comme une fonction personnalisée dans le classeur.
Est-ce que LET accélère les formules Excel ?
LET peut éviter qu'Excel recalcule plusieurs fois la même expression, par exemple une RECHERCHEX répétée dans plusieurs branches d'un SI. Sur une petite feuille, le bénéfice principal est la lisibilité. Sur de gros tableaux et des calculs coûteux, le gain de calcul peut devenir sensible.
Peut-on réutiliser un nom créé avec LET dans une autre cellule ?
Non. Un nom défini par LET est local à la formule qui le contient. Pour rendre un calcul réutilisable ailleurs dans le classeur, crée une LAMBDA nommée dans Formules, Gestionnaire de noms.
Pourquoi une LAMBDA seule renvoie-t-elle #CALC! ?
Parce que la formule décrit un calcul sans lui fournir les valeurs de ses paramètres. Pour la tester dans une cellule, ajoute une seconde paire de parenthèses avec les arguments, par exemple =LAMBDA(x;x*2)(B3). Une fois testée, enregistre la LAMBDA dans le Gestionnaire de noms.
Pourquoi ma fonction LAMBDA renvoie-t-elle #VALEUR! ?
La cause fréquente est un mauvais nombre d'arguments. Si ta LAMBDA attend ca et objectif, l'appel doit fournir deux valeurs. Une ancienne formule =commission(B3) renverra #VALEUR! après l'ajout du deuxième paramètre ; utilise =commission(B3;$F$3).
Faut-il connaître VBA pour créer une fonction personnalisée avec LAMBDA ?
Non. LAMBDA permet de créer une fonction personnalisée uniquement avec des formules Excel et le Gestionnaire de noms. Aucun code VBA ni fichier prenant en charge les macros n'est nécessaire. La version d'Excel du destinataire doit toutefois être compatible avec LAMBDA.