=LET(total;SOMMA(B2:B6);SE(total>500;total*0,9;total)) somma B2:B6 una volta, chiama il risultato total e poi usa quel nome due volte: una per verificarlo e una per restituirlo. Senza LET scriveresti SOMMA tre volte: =SE(SOMMA(B2:B6)>500;SOMMA(B2:B6)*0,9;SOMMA(B2:B6)). LET si chiama così anche in Excel italiano; la tabella mostra le formule in inglese, con SUM e IF, ma puoi scriverle anche in italiano, con il punto e virgola.
| 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;SOMMA(B2:B6);SE(total>500;total*0,9;total))Gli ordini sommano 645, oltre 500, quindi D2 mostra 580.5. Cambia B4 in 50 e il totale scende a 485, sotto il limite, quindi D2 mostra 485 senza sconto.
Sintassi di LET
=LET(name1, value1, [name2, value2, ...], calculation)
- Ogni
nameè una parola che scegli tu, seguita dalvalueche rappresenta: un numero, un intervallo o una formula. - Puoi definire fino a 126 coppie. Un valore può usare qualsiasi nome definito prima di lui.
- L'ultimo argomento è il
calculation, che usa i nomi e dà il risultato.
LET richiede Excel 2021, Excel 2024 o Microsoft 365. In Excel 2019 e precedenti mostra #NOME? (in inglese #NAME?; la tabella mostra i nomi inglesi degli errori). Google Sheets ha LET con la stessa sintassi.
LET con più variabili
I nomi fanno leggere una formula di riga come una frase. Qui ogni riga calcola un subtotale e toglie il 10% quando supera 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;SE(subtotal>100;subtotal*0,9;subtotal))I 120 della borsa diventano 108, anche i 120 delle tazze diventano 108, e i 150 della scrivania diventano 135; le penne (25) e le lampade (70) restano come sono. La formula è stata scritta in D2 e copiata verso il basso, e subtotal indica un numero diverso in ogni riga.
Un nome può basarsi su quello prima: =LET(x;2;y;x*3;x+y) imposta x a 2, y a 6, e restituisce 8.
Calcolare una ricerca una volta e riusarla
Una ricerca che compare due volte in un SE viene eseguita due volte. LET la esegue una volta. Questa formula restituisce il prezzo più il 20%, o un messaggio quando il prodotto manca:
| 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;CERCA.X(E2;A2:A6;C2:C6;"");SE(p="";"Not found";p*1,2))Pear viene trovato, quindi F2 mostra 1.8. Kiwi non è nell'elenco, CERCA.X (in inglese XLOOKUP) restituisce il testo vuoto dato come quarto argomento, e F3 mostra Not found. Scrivi Kiwi in A4 e F3 diventa il suo prezzo più il 20%.
LET con FILTRO
LET è utilissima con le matrici dinamiche, dove un intervallo filtrato serve più di una volta. Questa formula dà un nome alle righe che corrispondono, le conta e calcola la media delle loro vendite in una sola formula:
| 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;FILTRO(A2:C7;B2:B7=F1);n;RIGHE(rows);avg;MEDIA(INDICE(rows;0;3));n&" reps, average "&ARROTONDA(avg;1))Per North mostra "3 reps, average 126.7". Scegli South in F1 per "2 reps, average 87.5". INDICE(rows;0;3) prende la terza colonna delle righe filtrate. Senza LET, FILTRO andrebbe scritto due volte.
Un calendario mensile con celle vuote
Il calendario della pagina su SEQUENZA mostra i giorni dei mesi vicini. LET dà un nome al primo giorno del mese e alla griglia delle date, poi svuota ogni data fuori dal mese:
| 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;DATA(2026;4;1);days;SEQUENZA(6;7;start-GIORNO.SETTIMANA(start)+1);SE(MESE(days)=MESE(start);days;""))Cambia DATE(2026,4,1) in DATE(2026,5,1) e la griglia si ridisegna per maggio. Siccome il primo del mese ha un nome una volta sola, c'è una sola data da cambiare, non tre. In Excel italiano la formula è =LET(start;DATA(2026;4;1);days;SEQUENZA(6;7;start-GIORNO.SETTIMANA(start)+1);SE(MESE(days)=MESE(start);days;"")).
Esercizio: spedizione con 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 |
Tocca a te: In D2, somma gli importi in B2:B6. Se il totale è sotto 800, aggiungi 25 di spedizione; altrimenti restituisci il totale.
Regole per i nomi in LET ed errori
La maggior parte degli errori di LET viene dai nomi:
- Un nome deve iniziare con una lettera e non contenere spazi.
unit pricenon funziona; usaunit_priceounitPrice. - Un nome non può sembrare un indirizzo di cella.
a1etax2026sono indirizzi di cella in Excel (TAX è una colonna), quindi LET li rifiuta con #NOME?.rateotax_2026funzionano. - Un nome si scrive esattamente uguale ogni volta che viene usato. Un errore di battitura dove viene usato dà #NOME?, perché Excel cerca una funzione o un intervallo denominato con quella grafia.
- L'ultimo argomento deve essere un calcolo.
=LET(x;5)ha un nome e un valore ma nulla da restituire, quindi Excel la rifiuta. - I nomi esistono solo dentro la propria formula. Per riusare un calcolo in molte celle, salvalo invece come LAMBDA con un nome.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
Domande frequenti
Cosa fa la funzione LET in Excel?
Dà dei nomi ai valori dentro una formula. =LET(total;SOMMA(B2:B6);total*2) calcola SOMMA(B2:B6) una volta, la chiama total e restituisce total per 2. I nomi esistono solo dentro quella formula.
Come uso più di una variabile in LET?
Aggiungi altre coppie di nome e valore prima del calcolo finale: =LET(price;B2;qty;C2;price*qty). Un valore successivo può usare un nome precedente, come in =LET(x;2;y;x*3;x+y), che restituisce 8.
Perché la mia formula LET restituisce #NOME?
O il tuo Excel non ha LET (richiede Excel 2021 o Microsoft 365), o un nome è scritto male dove viene usato, o un nome non è ammesso, per esempio uno che sembra un indirizzo di cella come a1 o tax2026, oppure uno che inizia con un numero.
LET rende più veloci le formule di Excel?
Può farlo. Senza LET un'espressione ripetuta, come lo stesso CERCA.X scritto due volte in un SE, viene calcolata ogni volta che compare. Con LET viene calcolata una volta e il risultato viene riusato.