Hur man använder Excel LAMBDA-funktionen

Innehållsförteckning

Sammanfattning

Excel LAMBDA-funktionen ger ett sätt att skapa anpassade funktioner som kan återanvändas i en arbetsbok utan VBA eller makron.

Ändamål

Skapa anpassad funktion

Returvärde

Såsom definieras av formeln

Syntax

= LAMBDA (parameter,…, beräkning)

Argument

  • parameter - Ett ingångsvärde för funktionen.
  • beräkning - Beräkningen som ska utföras som resultatet av funktionen. Måste vara sista argumentet.

Version

Excel 365

Användningsanmärkningar

I datorprogrammering hänvisar LAMBDA till en anonym funktion eller ett anonymt uttryck. En anonym funktion är en funktion definierad utan namn. I Excel ger LAMBDA-funktionen ett sätt att definiera och inkapsla specifika formelfunktioner, ungefär som en Excel-funktion. En gång definierad kan en LAMBDA-funktion namnges och återanvändas någon annanstans i en arbetsbok. Med andra ord är LAMBDA-funktionen ett sätt att skapa anpassade funktioner.

En av de viktigaste fördelarna med en anpassad LAMBDA-funktion är att logiken i formeln finns på bara en plats. Det betyder att det bara finns en kopia av koden att uppdatera när man åtgärdar problem eller uppdaterar funktionalitet, och ändringar sprids automatiskt till alla instanser av LAMBDA-funktionen i en arbetsbok. En LAMBDA-funktion kräver inte VBA eller makron.

Exempel 1 | Exempel 2 | Exempel 3

Skapa en LAMBDA-funktion

LAMBDA-funktioner skapas och debugges vanligtvis i formelfältet på ett kalkylblad och flyttas sedan till namnhanteraren för att tilldela ett namn som kan användas var som helst i en arbetsbok.

Det finns fyra grundläggande steg för att skapa och använda en anpassad formel baserad på LAMBDA-funktionen:

  1. Verifiera logiken du använder med en standardformel
  2. Skapa och testa en generisk (ej namngiven) LAMBDA-version av formeln
  3. Namnge och definiera LAMBDA-formeln med namnhanteraren
  4. Testa den nya anpassade funktionen med det definierade namnet

Exemplen nedan diskuterar dessa steg mer detaljerat.

Exempel 1

För att illustrera hur LAMBDA fungerar, låt oss börja med en mycket enkel formel:

=x*y // multiple x and y

I Excel skulle den här formeln vanligtvis använda cellreferenser så här:

=B5*C5 // with cell references

Som du ser fungerar formeln bra, så vi är redo att gå vidare till att skapa en generisk LAMBDA-formel (namnlös version). Det första du bör tänka på är om formeln kräver ingångar (parametrar). I det här fallet är svaret "ja" - formeln kräver ett värde för x och ett värde för y. Med det etablerade börjar vi med LAMBDA-funktionen och lägger till nödvändiga parametrar för användarinmatning:

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

Därefter måste vi lägga till den faktiska beräkningen, x * y:

=LAMBDA(x,y,x*y)

Om du anger formeln vid denna tidpunkt får du en #CALC! fel. Detta händer eftersom formeln inte har några ingångsvärden att arbeta med, eftersom det inte längre finns några cellreferenser. För att testa formeln måste vi använda en speciell syntax så här:

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

Denna syntax, där parametrar tillhandahålls i slutet av en LAMBDA-funktion i en separat uppsättning parenteser, är unik för LAMBDA-funktioner. Detta gör att formeln kan testas direkt på kalkylbladet innan LAMBDA namnges. På skärmen nedan kan du se att den generiska LAMBDA-funktionen i F5 returnerar exakt samma resultat som den ursprungliga formeln i E5:

Vi är nu redo att namnge LAMBDA-funktionen med Namnhanteraren. Välj först formeln, * inkluderar inte * testparametrarna i slutet. Öppna sedan Namnhanteraren med genvägen Control + F3 och klicka på Ny.

I dialogrutan Nytt namn anger du namnet "XBYY", lämnar omfattningen inställd på arbetsboken och klistrar in formeln du kopierade i inmatningsområdet "hänvisar till".

Se till att formeln börjar med ett likhetstecken (=). Nu när LAMBDA-formeln har ett namn kan den användas i arbetsboken som alla andra funktioner. På skärmen nedan är formeln i G5, kopierad ned,:

Den nya anpassade funktionen returnerar samma resultat som de andra två formlerna.

Exempel 2

I det här exemplet konverterar vi en formel för att beräkna sfärens volym till en anpassad LAMBDA-funktion. Den allmänna Excel-formeln för beräkning av en sfärs volym är:

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

där A1 representerar radie. På skärmen nedan visas denna formel i aktion:

Observera att denna formel bara kräver en ingång (radie) för att beräkna volymen, så vår LAMBDA-funktion behöver bara en parameter (r), som kommer att visas som det första argumentet. Här är formeln konverterad till LAMBDA:

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

Tillbaka i kalkylbladet har vi ersatt den ursprungliga formeln med den generiska LAMBDA-versionen. Observera att vi använder testsyntaxen, vilket gör att vi kan ansluta B5 för radie:

Resultaten från den generiska LAMBDA-formeln är exakt samma som den ursprungliga formeln, så nästa steg är att definiera och namnge denna LAMBDA-formel med Namnhanteraren, som förklarats ovan. Namnet som används för en LAMBDA-funktion kan vara vilket giltigt Excel-namn som helst. I det här fallet heter vi formeln "SphereVolume".

Tillbaka i kalkylbladet har vi ersatt den generiska (ej namngivna) LAMBDA-formeln med den namngivna LAMBDA-versionen och angett B5 för r. Observera att resultaten som returneras av den anpassade SphereVolume-funktionen är exakt samma som tidigare resultat.

Exempel 3

I det här exemplet skapar vi en LAMBDA-funktion för att räkna ord. Excel har ingen funktion för detta ändamål, men du kan räkna ord med en cell med en anpassad formel baserad på LEN- och SUBSTITUTFunktionerna så här:

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

Läs detaljerad förklaring här. Här är formeln i aktion i ett kalkylblad:

Observera att vi får ett felaktigt antal 1 när formeln får en tom cell (B10). Vi kommer att ta itu med problemet nedan.

Denna formel kräver bara en inmatning, det vill säga texten som innehåller ord. I vår LAMBDA-funktion kommer vi att namnge detta argument "text". Här är formeln konverterad till LAMBDA:

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

Observera att "text" visas som det första argumentet, och beräkningen är det andra och sista argumentet. På skärmen nedan har vi ersatt den ursprungliga formeln med den generiska LAMBDA-versionen. Observera att vi använder testsyntaxen, vilket gör att vi kan ansluta B5 för text:

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

Resultaten från den generiska LAMBDA-formeln är desamma som den ursprungliga formeln, så nästa steg är att definiera och namnge denna LAMBDA-formel med Namnhanteraren, som förklarats tidigare. Vi kommer att namnge denna formel "CountWords".

Nedan har vi ersatt den generiska (ej namngivna) LAMBDA-formeln med den namngivna LAMBDA-versionen och angett B5 för text. Observera att vi får exakt samma resultat.

Formeln som används i Namnhanteraren för att definiera CountWords är densamma som ovan, utan testsyntaxen:

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

Åtgärda det tomma cellproblemet

Som nämnts ovan returnerar formeln ovan ett felaktigt antal 1 när en cell är tom. Detta problem kan åtgärdas genom att ersätta +1 med koden nedan:

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

Fullständig förklaring här. För att uppdatera den befintliga namngivna LAMDA-formeln måste vi återigen använda Namnhanteraren:

  1. Öppna Namnhanteraren
  2. Välj namnet "CountWords" och klicka på "Edit"
  3. Ersätt koden "Hänvisar till" med den här formeln:

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

När Namnhanteraren är stängd fungerar CountWords korrekt på tomma celler, se nedan:

Obs: genom att uppdatera koden en gång i Namnhanteraren uppdateras alla instanser av CountWords-formeln på en gång. Detta är en viktig fördel med anpassade funktioner skapade med LAMBDA -formeluppdateringar kan hanteras på ett ställe.

Intressanta artiklar...