=LET(total;SOMME(B2:B6);SI(total>500;total*0,9;total)) additionne B2:B6 une seule fois, nomme le résultat total, puis utilise ce nom deux fois : une fois pour le tester et une fois pour le renvoyer. Sans LET, vous écririez la SOMME trois fois : =SI(SOMME(B2:B6)>500;SOMME(B2:B6)*0,9;SOMME(B2:B6)). La fonction porte le même nom dans un Excel français ; le tableau affiche les formules sous leur forme anglaise, avec des virgules et un point décimal, mais vous pouvez aussi les taper comme ci-dessus, avec des points-virgules.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | Total to pay | |
| 2 | A-101 | 120 | 580.5 | |
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
=LET(total;SOMME(B2:B6);SI(total>500;total*0,9;total))Les commandes totalisent 645, plus de 500, donc D2 affiche 580.5. Remplacez B4 par 50 et le total tombe à 485, sous la limite, donc D2 affiche 485 sans remise.
Syntaxe de LET
=LET(name1, value1, [name2, value2, ...], calculation)
- Chaque
nameest un mot que vous choisissez, suivi de lavaluequ'il représente : un nombre, une plage ou une formule. - Vous pouvez définir jusqu'à 126 couples. Une valeur peut utiliser n'importe quel nom défini avant elle.
- Le dernier argument est le
calculation, le calcul qui utilise les noms et donne le résultat.
LET exige Excel 2021, Excel 2024 ou Microsoft 365. Dans Excel 2019 et les versions plus anciennes, elle affiche #NOM? (#NAME? en anglais). Google Sheets a LET avec la même syntaxe.
LET avec plusieurs variables
Les noms font qu'une formule ligne par ligne se lit comme une phrase. Ici, chaque ligne calcule un sous-total et retire 10 % quand il dépasse 100 :
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | To pay |
| 2 | Pen | 2.5 | 10 | 25 |
| 3 | Bag | 40 | 3 | 108 |
| 4 | Lamp | 35 | 2 | 70 |
| 5 | Mug | 8 | 15 | 108 |
| 6 | Desk | 150 | 1 | 135 |
=LET(subtotal;B2*C2;SI(subtotal>100;subtotal*0,9;subtotal))Les 120 du sac deviennent 108, les 120 des tasses deviennent aussi 108, et les 150 du bureau deviennent 135 ; les stylos (25) et les lampes (70) restent tels quels. La formule a été écrite en D2 et recopiée vers le bas, et subtotal désigne un nombre différent à chaque ligne.
Un nom peut s'appuyer sur le précédent : =LET(x;2;y;x*3;x+y) donne 2 à x, 6 à y, et renvoie 8.
Calculer une recherche une fois et la réutiliser
Une recherche qui apparaît deux fois dans un SI s'exécute deux fois. LET l'exécute une fois. Ceci renvoie le prix plus 20 %, ou un message quand le produit est absent :
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Region | Price | Look for | Price + 20% | |
| 2 | Apple | North | 1.2 | Pear | 1.8 | |
| 3 | Pear | South | 1.5 | Kiwi | Not found | |
| 4 | Carrot | East | 0.8 | |||
| 5 | Bread | North | 2.4 | |||
| 6 | Milk | South | 1.1 |
=LET(p;RECHERCHEX(E2;A2:A6;C2:C6;"");SI(p="";"Not found";p*1,2))Pear est trouvé, donc F2 affiche 1.8. Kiwi n'est pas dans la liste, RECHERCHEX renvoie le texte vide donné comme quatrième argument, et F3 affiche Not found. Tapez Kiwi en A4 et F3 affiche son prix plus 20 %. Dans un Excel français, la formule de F2 s'écrit =LET(p;RECHERCHEX(E2;A2:A6;C2:C6;"");SI(p="";"Not found";p*1,2)).
LET avec FILTRE
LET est le plus utile avec les tableaux dynamiques, quand une plage filtrée sert plusieurs fois. Ceci nomme les lignes trouvées, les compte et fait la moyenne de leurs ventes en une seule formule :
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | Summary | 3 reps, average 126.7 | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
=LET(rows;FILTRE(A2:C7;B2:B7=F1);n;LIGNES(rows);avg;MOYENNE(INDEX(rows;0;3));n&" reps, average "&ARRONDI(avg;1))Pour North, elle affiche "3 reps, average 126.7". Choisissez South en F1 pour obtenir "2 reps, average 87.5". INDEX(rows;0;3) prend la troisième colonne des lignes filtrées. Sans LET, le FILTRE serait écrit deux fois.
Un calendrier mensuel avec des cases vides
Le calendrier de la page SEQUENCE affiche des jours des mois voisins. LET nomme le premier du mois et la grille de dates, puis vide chaque date hors du mois :
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 2 | 1 | 2 | 3 | 4 | |||
| 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 4 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 5 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 6 | 26 | 27 | 28 | 29 | 30 |
=LET(start;DATE(2026;4;1);days;SEQUENCE(6;7;start-JOURSEM(start)+1);SI(MOIS(days)=MOIS(start);days;""))Remplacez DATE(2026,4,1) par DATE(2026,5,1) et la grille se redessine pour mai. Comme le premier du mois est nommé une seule fois, il n'y a qu'une date à changer, pas trois.
Exercice : les frais de port avec LET
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | To pay | |
| 2 | A-101 | 120 | ||
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
À vous : En D2, totalisez les montants de B2:B6. Si le total est inférieur à 800, ajoutez 25 de frais de port ; sinon, renvoyez le total.
Règles des noms et erreurs de LET
La plupart des erreurs de LET viennent des noms :
- Un nom doit commencer par une lettre et ne contenir aucune espace.
unit priceéchoue ; utilisezunit_priceouunitPrice. - Un nom ne peut pas ressembler à une adresse de cellule.
a1ettax2026sont des adresses de cellules dans Excel (TAX est une colonne), donc LET les refuse avec #NOM?.rateoutax_2026fonctionnent. - Un nom s'écrit exactement de la même façon à chaque utilisation. Une faute de frappe là où il est utilisé donne #NOM?, car Excel cherche une fonction ou une plage nommée de cette orthographe.
- Le dernier argument doit être un calcul.
=LET(x;5)a un nom et une valeur mais rien à renvoyer, donc Excel la refuse. - Les noms n'existent qu'à l'intérieur de leur propre formule. Pour réutiliser un calcul dans de nombreuses cellules, enregistrez-le plutôt comme une LAMBDA nommée.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
Questions fréquentes
À quoi sert la fonction LET dans Excel ?
Elle donne des noms à des valeurs à l'intérieur d'une formule. =LET(total;SOMME(B2:B6);total*2) calcule SOMME(B2:B6) une fois, l'appelle total, et renvoie total multiplié par 2. Les noms n'existent qu'à l'intérieur de cette formule.
Comment utiliser plusieurs variables dans LET ?
Ajoutez d'autres couples nom et valeur avant le calcul final : =LET(price;B2;qty;C2;price*qty). Une valeur peut utiliser un nom défini avant elle, comme dans =LET(x;2;y;x*3;x+y), qui renvoie 8.
Pourquoi ma formule LET renvoie-t-elle #NOM? ?
Soit votre Excel n'a pas LET (elle exige Excel 2021 ou Microsoft 365), soit un nom est mal orthographié là où il est utilisé, soit un nom n'est pas autorisé, par exemple un nom qui ressemble à une adresse de cellule comme a1 ou tax2026, ou un nom qui commence par un chiffre.
LET rend-elle les formules Excel plus rapides ?
Cela peut être le cas. Sans LET, une expression répétée, comme la même RECHERCHEX écrite deux fois dans un SI, est calculée à chaque apparition. Avec LET, elle est calculée une fois et le résultat est réutilisé.