Σ Fogli di calcolo

LET e LAMBDA: formule più leggibili e funzioni personalizzate

Come usare LET per dare un nome ai passaggi di una formula e LAMBDA per creare funzioni personalizzate riutilizzabili in Excel e Google Sheets, con esempi.

Chi lavora molto con i fogli di calcolo conosce le formule lunghe, in cui la stessa espressione compare tre o quattro volte e una parentesi fuori posto rompe tutto. LET e LAMBDA, disponibili in Excel per Microsoft 365, in Excel per il web e in Google Sheets, risolvono due problemi diversi: LET rende leggibile una formula complessa, LAMBDA permette di trasformarla in una funzione con un nome, da usare come qualsiasi funzione predefinita. Anche le versioni recenti di LibreOffice Calc includono LET.

LET: dare un nome ai passaggi

La sintassi è una serie di coppie nome e valore, seguita dal calcolo finale:

=LET(nome1; valore1; [nome2; valore2; ...]; calcolo)

Prendiamo un caso concreto. Vuoi applicare uno sconto progressivo: 10% se l'importo netto, cioè prezzo per quantità, supera 1.000 euro, altrimenti 5%. Senza LET:

=SE(B2*C2>1000; B2*C2*0,9; B2*C2*0,95)

L'espressione B2*C2 compare tre volte. Con LET:

=LET(netto; B2*C2; sconto; SE(netto>1000; 10%; 5%); netto*(1-sconto))

La formula si legge come un ragionamento: calcola il netto, decidi lo sconto, applicalo. I vantaggi sono tre:

  • leggibilità: ogni passaggio ha un nome che ne spiega il significato;
  • manutenzione: se il calcolo del netto cambia, lo modifichi in un solo punto;
  • prestazioni: l'espressione viene calcolata una sola volta, il che conta quando è pesante, per esempio un FILTRO su migliaia di righe.

Per scrivere formule LET lunghe, vai a capo nella barra della formula (Alt+Invio in Excel per Windows) e metti ogni coppia su una riga:

=LET(
  netto; B2*C2;
  sconto; SE(netto>1000; 10%; 5%);
  netto*(1-sconto)
)

Regole sui nomi

I nomi in LET devono iniziare con una lettera, non possono contenere spazi e non devono assomigliare a un riferimento di cella: iva va bene, A1 o IVA2026 no, perché il secondo potrebbe essere letto come la cella IVA2026. Un nome definito in LET esiste solo dentro quella formula.

LAMBDA: creare funzioni personalizzate

LAMBDA fa un passo in più: definisce una funzione con dei parametri.

=LAMBDA(parametro1; [parametro2; ...]; calcolo)

Scritta da sola in una cella, una LAMBDA restituisce un errore, perché è una definizione senza argomenti. Per provarla, puoi passarle i valori direttamente tra parentesi:

=LAMBDA(prezzo; qta; prezzo*qta*0,9)(B2; C2)

Il vero utilizzo, però, è assegnarle un nome.

Salvare una LAMBDA con un nome

In Excel apri Formule, Gestione nomi (Ctrl+F3), crea un nuovo nome, per esempio PREZZOSCONTATO, e nel campo «Riferito a» incolla la formula:

=LAMBDA(prezzo; qta; LET(netto; prezzo*qta; netto*(1-SE(netto>1000; 10%; 5%))))

Da quel momento in qualsiasi cella della cartella puoi scrivere:

=PREZZOSCONTATO(B2; C2)

La regola dello sconto vive in un solo posto. Se domani la soglia diventa 1.500 euro, modifichi la definizione nella Gestione nomi e tutte le celle che usano la funzione si aggiornano. In Google Sheets la stessa operazione si fa da Dati, Funzioni con nome, con un'interfaccia guidata in cui si indicano nome, parametri e definizione.

Esempi di funzioni utili

Nome Definizione Uso
IVATO =LAMBDA(netto; aliquota; ARROTONDA(netto*(1+aliquota); 2)) prezzo con IVA arrotondato
GIORNIRITARDO =LAMBDA(scadenza; MAX(0; OGGI()-scadenza)) giorni di ritardo, mai negativi
PULISCI =LAMBDA(t; ANNULLA.SPAZI(SOSTITUISCI(t; CODICE.CARATT(160); " "))) testo senza spazi spuri

Funzioni di questo tipo rendono le formule del foglio molto più brevi e meno soggette a errori di battitura.

Funzioni di supporto

Insieme a LAMBDA sono arrivate alcune funzioni che la usano per elaborare intervalli interi, come MAP, che applica una LAMBDA a ogni elemento, BYROW e BYCOL, che la applicano a ogni riga o colonna, e REDUCE, che accumula un risultato. Per esempio, per calcolare il totale di ogni riga di una tabella con una sola formula:

=BYROW(B2:M50; LAMBDA(riga; SOMMA(riga)))

Sono strumenti potenti, ma vale la pena introdurli gradualmente: chi riceve il file deve poterlo capire.

Quando non usarle

  • File condivisi con versioni vecchie. LET e LAMBDA non funzionano in Excel 2019 o precedenti: le celle mostrano errori.
  • Colleghi non abituati. Una funzione personalizzata è invisibile finché non apri la Gestione nomi. Documentala in un foglio «Leggimi», con nome, parametri e scopo.
  • Calcoli che stanno meglio in colonne. Se un passaggio intermedio è utile da vedere, una colonna di appoggio resta più trasparente di un nome dentro una formula.

Nel mio lavoro uso LET quasi sempre quando una formula supera una riga, e LAMBDA per le poche regole che compaiono in molti punti di una cartella: aliquote, arrotondamenti, pulizia dei testi.

In sintesi

  • LET assegna nomi ai passaggi di una formula: più leggibile, più facile da modificare, più veloce.
  • I nomi in LET non devono assomigliare a riferimenti di cella.
  • LAMBDA definisce una funzione con parametri; con un nome in Gestione nomi diventa riutilizzabile.
  • In Google Sheets le funzioni personalizzate si creano da Dati, Funzioni con nome.
  • Verifica la compatibilità e documenta le funzioni personalizzate per chi userà il file.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche