LET vous permet de donner des noms à des valeurs ou à des calculs à l'intérieur d'une formule, puis de réutiliser ces noms. Elle rend les formules longues lisibles, car tva est plus clair qu'un B2*0.2 répété, et plus rapides, car chaque calcul nommé n'est exécuté qu'une seule fois, quel que soit le nombre de fois où on l'utilise.
Syntaxe
=LET(name1, value1, [name2, value2, ...], formula_expression)
name1: Un nom de votre choix, commeprixoudonnees.value1: La valeur ou l'expression que représente le nom.name2, value2, ...[Facultatif] : D'autres paires nom/valeur. Les valeurs suivantes peuvent utiliser les noms précédents.formula_expression: Le calcul final, qui utilise les noms. C'est ce que renvoieLET.
Les arguments vont toujours par paires, suivies d'une expression finale unique : le nombre total d'arguments est donc impair.
Exemple de base
Sans LET, un calcul répété encombre la formule :
=IF(B2 * C2 > 1000, B2 * C2 * 0.9, B2 * C2)
Avec LET, il est nommé une seule fois :
=LET(total, B2 * C2, IF(total > 1000, total * 0.9, total))
total est calculé une fois et utilisé trois fois. Quiconque lit la formule en comprend tout de suite l'intention.
Plusieurs noms
Chaque nom peut s'appuyer sur ceux qui le précèdent :
=LET(
prix, B2,
qte, C2,
sous_total, prix * qte,
tva, sous_total * 0.2,
sous_total + tva
)
Vous pouvez répartir une formule sur plusieurs lignes (appuyez sur Ctrl+Entrée ou Cmd+Entrée pour ajouter un saut de ligne dans la barre de formule), ce qui facilite grandement la relecture.
Pourquoi elle accélère aussi les calculs
Quand une expression telle que FILTER(...) ou XLOOKUP(...) apparaît plusieurs fois dans une formule, Sheets la calcule à chaque fois. Avec LET, vous la calculez une seule fois :
=LET(
trouve, XLOOKUP(E2, A2:A1000, B2:B1000),
IF(trouve = "", "Introuvable", trouve)
)
Sans LET, il faudrait écrire deux fois la XLOOKUP. Sur de grandes feuilles, cela peut réduire sensiblement le temps de calcul.
Formules pratiques
Nettoyer les données une fois, puis les utiliser
=LET(
propre, TRIM(LOWER(A2)),
IF(propre = "", "", PROPER(propre))
)
Réutiliser une plage filtrée
=LET(
lignes, FILTER(A2:C100, B2:B100 = "Ventes"),
IF(ROWS(lignes) = 0, "Aucune", SORT(lignes, 3, FALSE))
)
lignes contient le tableau filtré ; il est vérifié puis trié sans exécuter FILTER deux fois.
Part du total
=LET(
partie, SUMIF(A2:A100, E2, C2:C100),
total, SUM(C2:C100),
partie / total
)
Division sûre
=LET(
den, SUM(B2:B10),
IF(den = 0, 0, SUM(A2:A10) / den)
)
Combiner avec LAMBDA, MAP et d'autres
LET fonctionne à l'intérieur de fonctions comme MAP et LAMBDA : les gains de lisibilité se retrouvent donc dans les formules matricielles.
=MAP(A2:A10, LAMBDA(x, LET(y, TRIM(x), IF(y = "", "", UPPER(y)))))
Règles de nommage
- Les noms doivent commencer par une lettre et peuvent contenir des lettres, des chiffres et des tirets bas.
- Un nom ne peut pas ressembler à une référence de cellule :
A1,B2etC10sont interdits, maisa_1ouprixconviennent. - Évitez les noms de fonctions existantes (
sum,date), qui prêtent à confusion et peuvent provoquer des erreurs. - Les noms sont locaux à la formule
LET. Ils n'existent pas en dehors.
Erreurs courantes
#NAME?. Un nom est orthographié différemment à deux endroits, ou utilisé avant d'être défini. Un nom ne peut utiliser que des noms précédents.- « Nombre d'arguments incorrect pour LET ». Les arguments doivent former des paires suivies d'une seule expression finale. Une valeur manquante ou l'absence de calcul final en est la cause habituelle.
- Nom invalide. Il ressemble à une référence de cellule ou commence par un chiffre ou un symbole.
- Le résultat n'est que le dernier nom.
LETrenvoie l'expression finale, pas les valeurs nommées. Assurez-vous que le dernier argument est le calcul voulu. - Tentative d'utiliser un nom dans une autre cellule. Les noms n'existent qu'à l'intérieur de leur propre
LET. Pour une logique réutilisable, créez une fonction nommée avecLAMBDA.
LET, colonnes d'aide, plages nommées ou LAMBDA ?
- Les colonnes d'aide montrent les valeurs intermédiaires dans la feuille, ce qui est idéal pour l'audit, mais ajoute des colonnes.
- Les plages nommées donnent un nom à une plage de cellules, partagée dans tout le classeur.
LETnomme des valeurs intermédiaires à l'intérieur d'une seule formule.LAMBDAcrée une fonction réutilisable, éventuellement enregistrée comme fonction nommée.
Questions fréquentes
LET accélère-t-elle les formules ? Elle peut le faire : chaque expression nommée est calculée une fois, même si elle est utilisée plusieurs fois.
Combien de noms peut-on utiliser ? Autant que vous voulez.
Un nom peut-il contenir toute une plage ou un tableau ? Oui, un nom peut contenir une plage, un tableau ou le résultat d'un FILTER.
Peut-on utiliser LET dans ARRAYFORMULA ? Oui. Elles fonctionnent ensemble, mais de nombreuses fonctions matricielles gèrent déjà les plages nativement.
Fonctions associées
LAMBDA: Crée des fonctions personnalisées et réutilisables.MAP: Applique une fonction à chaque élément d'un tableau.FILTER: Renvoie les lignes qui remplissent une condition.IF: Renvoie des valeurs différentes selon une condition.ARRAYFORMULA: Applique une formule à toute une plage.