Come utilizzare la funzione LAMBDA di Excel -

Sommario

Sommario

La funzione Excel LAMBDA fornisce un modo per creare funzioni personalizzate che possono essere riutilizzate in una cartella di lavoro, senza VBA o macro.

Scopo

Crea una funzione personalizzata

Valore di ritorno

Come definito dalla formula

Sintassi

= LAMBDA (parametro,…, calcolo)

argomenti

  • parametro - Un valore di input per la funzione.
  • calcolo - Il calcolo da eseguire come risultato della funzione. Deve essere l'ultimo argomento.

Versione

Excel 365

Note sull'utilizzo

Nella programmazione di computer, LAMBDA si riferisce a una funzione o espressione anonima. Una funzione anonima è una funzione definita senza un nome. In Excel, la funzione LAMBDA fornisce un modo per definire e incapsulare funzionalità di formule specifiche, proprio come una funzione di Excel. Una volta definita, una funzione LAMBDA può essere denominata e riutilizzata altrove in una cartella di lavoro. In altre parole, la funzione LAMBDA è un modo per creare funzioni personalizzate.

Uno dei vantaggi principali di una funzione LAMBDA personalizzata è che la logica contenuta nella formula esiste in un solo punto. Ciò significa che c'è solo una copia del codice da aggiornare quando si risolvono problemi o si aggiorna la funzionalità e le modifiche verranno propagate automaticamente a tutte le istanze della funzione LAMBDA in una cartella di lavoro. Una funzione LAMBDA non richiede VBA o macro.

Esempio 1 | Esempio 2 | Esempio 3

Creazione di una funzione LAMBDA

Le funzioni LAMBDA vengono in genere create e sottoposte a debug nella barra della formula su un foglio di lavoro, quindi spostate nel gestore dei nomi per assegnare un nome che può essere utilizzato ovunque in una cartella di lavoro.

Esistono quattro passaggi di base per creare e utilizzare una formula personalizzata basata sulla funzione LAMBDA:

  1. Verifica la logica che utilizzerai con una formula standard
  2. Crea e testa una versione LAMBDA generica (senza nome) della formula
  3. Assegnare un nome e definire la formula LAMBDA con il name manager
  4. Testare la nuova funzione personalizzata utilizzando il nome definito

Gli esempi seguenti illustrano questi passaggi in modo più dettagliato.

Esempio 1

Per illustrare come funziona LAMBDA, iniziamo con una formula molto semplice:

=x*y // multiple x and y

In Excel, questa formula utilizza in genere i riferimenti di cella come questo:

=B5*C5 // with cell references

Come puoi vedere, la formula funziona bene, quindi siamo pronti per passare alla creazione di una formula LAMBDA generica (versione senza nome). La prima cosa da considerare è se la formula richiede input (parametri). In questo caso, la risposta è "sì": la formula richiede un valore per x e un valore per y. Con ciò stabilito, iniziamo con la funzione LAMBDA e aggiungiamo i parametri richiesti per l'input dell'utente:

=LAMBDA(x,y // begin with input parameters

Successivamente, dobbiamo aggiungere il calcolo effettivo, x * y:

=LAMBDA(x,y,x*y)

Se inserisci la formula a questo punto, otterrai un #CALC! errore. Ciò accade perché la formula non ha valori di input con cui lavorare, poiché non ci sono più riferimenti di cella. Per testare la formula, dobbiamo usare una sintassi speciale come questa:

=LAMBDA(x,y,x*y)(B5,C5) // testing syntax

Questa sintassi, in cui i parametri vengono forniti alla fine di una funzione LAMBDA in un insieme separato di parentesi, è unica per le funzioni LAMBDA. Ciò consente di testare la formula direttamente sul foglio di lavoro, prima che venga denominata la LAMBDA. Nella schermata seguente, puoi vedere che la funzione LAMBDA generica in F5 restituisce esattamente lo stesso risultato della formula originale in E5:

Siamo ora pronti per denominare la funzione LAMBDA con Name Manager. Per prima cosa, seleziona la formula, * non includendo * i parametri di test alla fine. Quindi, apri Gestione nomi con la scorciatoia Control + F3 e fai clic su Nuovo.

Nella finestra di dialogo Nuovo nome, immettere il nome "XBYY", lasciare l'ambito impostato su cartella di lavoro e incollare la formula copiata nell'area di immissione "Riferito a".

Assicurati che la formula inizi con un segno di uguale (=). Ora che la formula LAMBDA ha un nome, può essere utilizzata nella cartella di lavoro come qualsiasi altra funzione. Nella schermata sotto la formula in G5, copiata in basso, è:

La nuova funzione personalizzata restituisce lo stesso risultato delle altre due formule.

Esempio 2

In questo esempio, convertiremo una formula per calcolare il volume di una sfera in una funzione LAMBDA personalizzata. La formula generale di Excel per calcolare il volume di una sfera è:

=4/3*PI()*A1^3 // volume of sphere

dove A1 rappresenta il raggio. La schermata seguente mostra questa formula in azione:

Si noti che questa formula richiede solo un input (raggio) per calcolare il volume, quindi la nostra funzione LAMBDA avrà bisogno solo di un parametro (r), che apparirà come primo argomento. Ecco la formula convertita in LAMBDA:

=LAMBDA(r,4/3*PI()*r^3) // generic lambda

Tornando al foglio di lavoro, abbiamo sostituito la formula originale con la versione generica LAMBDA. Si noti che stiamo utilizzando la sintassi di test, che ci consente di collegare B5 per radius:

I risultati della formula LAMBDA generica sono esattamente gli stessi della formula originale, quindi il passaggio successivo consiste nel definire e denominare questa formula LAMBDA con Name Manager, come spiegato sopra. Il nome utilizzato per una funzione LAMBDA può essere qualsiasi nome Excel valido. In questo caso, chiameremo la formula "SphereVolume".

Tornando al foglio di lavoro, abbiamo sostituito la formula LAMBDA generica (senza nome) con la versione LAMBDA denominata e abbiamo inserito B5 per r. Notare che i risultati restituiti dalla funzione SphereVolume personalizzata sono esattamente gli stessi dei risultati precedenti.

Esempio 3

In questo esempio, creeremo una funzione LAMBDA per contare le parole. Excel non ha una funzione per questo scopo, ma puoi contare le parole con una cella con una formula personalizzata basata sulle funzioni LEN e SOSTITUISCI come questa:

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Leggi la spiegazione dettagliata qui. Ecco la formula in azione in un foglio di lavoro:

Si noti che stiamo ottenendo un conteggio errato di 1 quando alla formula viene assegnata una cella vuota (B10). Affronteremo questo problema di seguito.

Questa formula richiede solo un input, che è il testo che contiene le parole. Nella nostra funzione LAMBDA, chiameremo questo argomento "testo". Ecco la formula convertita in LAMBDA:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Notare che "testo" appare come primo argomento e il calcolo è il secondo e ultimo argomento. Nella schermata sottostante, abbiamo sostituito la formula originale con la versione generica LAMBDA. Si noti che stiamo utilizzando la sintassi di test, che ci consente di collegare B5 per il testo:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)(B5)

I risultati della formula LAMBDA generica sono gli stessi della formula originale, quindi il passaggio successivo è definire e denominare questa formula LAMBDA con Name Manager, come spiegato in precedenza. Chiameremo questa formula "CountWords".

Di seguito, abbiamo sostituito la formula LAMBDA generica (senza nome) con la versione LAMBDA denominata e abbiamo inserito B5 per il testo. Notare che otteniamo esattamente gli stessi risultati.

La formula utilizzata in Name Manager per definire CountWords è la stessa di sopra, senza la sintassi del test:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Risolvere il problema della cella vuota

Come accennato in precedenza, la formula sopra restituisce un conteggio errato di 1 quando una cella è vuota. Questo problema può essere risolto sostituendo +1 con il codice seguente:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Spiegazione completa qui. Per aggiornare la formula LAMDA denominata esistente, dobbiamo nuovamente utilizzare il Name Manager:

  1. Apri il Name Manager
  2. Seleziona il nome "CountWords" e fai clic su "Modifica"
  3. Sostituisci il codice "Riferito a" con questa formula:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+(LEN(TRIM(text))>0))

Una volta chiuso il Name Manager, CountWords funziona correttamente sulle celle vuote, come mostrato di seguito:

Nota: aggiornando il codice una volta in Name Manager, tutte le istanze della formula CountWords vengono aggiornate contemporaneamente. Questo è un vantaggio chiave delle funzioni personalizzate create con LAMBDA: gli aggiornamenti delle formule possono essere gestiti in un unico posto.

Articoli interessanti...