Lambda i Excel, allt du vill veta!

Vi börjar med en kort video om lambdafunktionen i Excel här:

Summering

Lambda är en funktion i Excel som låter dig som användare skapa egna funktioner, som sedan blir jämställda med Excels vanliga funktioner. Detta betyder att precis som du använder dig av =SUMMA(A1:A2) i Excel, kan skapa egna funktioner som tar ett antal parametrar, och returnerar ett värde.

När släpptes lambda-funktionen i Excel

På Global Excel Summit 2022 (februari) sa Microsoft att de börjat rulla ut funktionen till samtliga personer som har Excel 365, men de gör en gradvis utrullning. (* Märk väl att vissa större bolag använder sig av en Office-programlicens som gör att de bara uppdaterar sina Office-program två gånger om året.)

I den versionen av Excel jag har på min dator fungerar det:

Vilken version av Excel David har, där Lambda finns
Starta Excel, gå på Arkiv -> Konto -> Om Excel för att se vilken version du har

Så hur vet man om man fått funktionen? Enklast är att du startar Excel och i en tom cell skriver =lambda för att se om Excel lägger ut en tooltip med hur du ska fortsätta med funktionen så här:

Ett enkelt sett att se om man har funktionen lambda i Excel

Syfte

Det finns många tillfällen när Lambda är riktigt användbart, ett av dem är så klart om du behöver använda dig av samma uträkning på flera ställen i samma Excelfil, då kan du i stället skapa en LAMBDA, och därmed bara ha uträkningen på ett ställe. Det kan förenkla för dig när uträkningens formel behöver ändras, men det kan också hjälpa till med att göra ditt Excelark tydligare och lättare att underhålla.

Syntax

Syntaxen för lambda är sådan här i dess allra enklare form:

syntaxen for lambda i Excel 2022 2

I det här fallet skickar vi in två parametrar, x och y, och returnerar x+y. Vi använder oss av den generiska lambda-funktionen som man kan skriva i en cell, och därför avslutar vi med att skicka in vad ska x och y ska vara, vilket vi gör med den sista parentesen. Hade vi använt oss av namnhanteraren och lagt in det här som en namngiven funktion, hade vi inte haft (1,2) på slutet, eftersom det är värdena som man ska stoppa in där man behöver använda sin funktion.

Argument

Till en lambda kan man skicka in många värden, om den bara är skriven på sättet att den kan ta emot dessa. I bilden ovan har vi angivit att två argument ska skickas in, hade vi skrivit x,y,z,x+y så hade funktionen förväntat sig tre argument (men bara använt två av dem i sin formel).

Returvärde

Det är upp till dig som skapar lambdan att bestämma hur den ska returnera värden, och vilka värden den ska returnera.

Begränsningar

En lambda sparas i Excelarket, så överallt där du har Excelarket finns lambdan tillgänglig, så länge som du har en uppdaterad version av Excel.

Den är inte bakåtkompatibel […än…?] så har du gjort ett Excelark med en lambda och skickar filen till någon med en äldre version av Excel kommer den personen få en syntax error där lambda används.

Man kan inte ha lambda-funktioner sparade på en central plats och låta Excel “ropa” på dessa.

Hur använder man lambda?

Det finns väldigt många olika scenarios där det här kan passa in, eftersom lambda är en så generell funktion där det faktiskt är upp till dig att bestämma hur den ska uppföra sig, och därigenom också bestämma när det är lämpligt att använda den.

Hur skapar man en lambdafunktion?

För att skapa en egen lambda som du kan använda på flera ställen i ditt Excelark, så går du in på formler (1) och sedan namnhanteraren (2):

Öppna formler och sedan namnhanteraren i Excel

Då får du upp fönstret namnhanteraren. Klicka på “Nytt…” (3) högst upp till vänster:

Skapa-ny-i-namnhanteraren

Då får du upp ett fönster som ser ut så här:

Skapa en ny lambda genom att fylla i de här fälten

Ange namnet på din lambda vid (4), och det här är alltså det funktionsnamn som du vill att den nya funktionen ska ha i Excel när du sedan vill använda dig av detta.

I punkt 5 kan du ange en kommentar, som kommer visas som ett tooltip när du ska använda din nya uträkning.

I punkt 6 skriver du in det som din lambda ska göra, alltså själva lambdafunktionen inklusive ordet lambda, som så här:

En valutaomvandlare som lambda i Excel
En valutaomvandlare som lambda i Excel

Här har jag skrivit in namnet DavidsValutaomräknare som funktionsnamn (4) i bilden ovan, en liten tooltip i kommentarsfältet (5) och sedan =lambda(x,x*9,82) som formel. Jag hade så klart lika gärna kunnat använda en cell-referens i stället för 9,82 och då ska man komma ihåg att referensen går att låsa med dollartecken, som i $A$1, om man inte gör det så flyttar referensen med när man använder formeln på flera ställen i Excelarket, vilket kanske inte är som man tänkt sig.

När man gjort detta, kan man sedan vända sig av den nya formeln DavidsValutaomräknare i valfri cell:

Davids valutaomräknare som lambda, som den sedan används i en cell
Så här använder man sedan en egenskapad funktion i Excel

Skillnaden på en namngiven lambda och en generisk lambda?

En generisk lambda är en lambda som du skriver in i en cell, helt själv. Det gör att du inte kan använda den var som helst i Excelarket, utan den finns “bara” i den cellen. Det är ett utmärkt sätt att testa sin lambda innan man ger den ett namn och använder sig av namnhanteraren så som jag beskrev i stegen ovanför.

En namngiven lambda är en lambda som du kan använda i vilken cell som helst, och i hur många celler du vill. Du skapar den genom namnhanteraren, som jag beskrev i stycket ovanför.

Exempel på lambda-funktioner:

Excel har ingen inbyggd funktion för att räkna antalet ord som står skrivna i en cell, och därför kan man skapa en lambda som gör det. Så här kan den funktionen se ut:

=LAMBDA(minTxt;LÄNGD(STÄDA(minTxt))-LÄNGD(BYT.UT(STÄDA(minTxt);" ";""))+(LÄNGD(STÄDA(minTxt))>0))

Här skickar vi in minTxt som parameter in i Lambda-funktionen, det kan ju vara en cell-referens eller en textsträng, och sedan tar vi först längden för hela texten (efter att vi städat bort inledande och avslutande mellanslag), och så drar vi av antalet tecken som samma text har om vi byter ut alla mellanslag mot “ingenting”. Då får vi veta hur många mellanslag som texten innehåll, och den sista lilla klurigheten med +längden(städa(minTxt))>0) gör så att den jämför om längden av den städade texten är längre än 0, i sådana fall returneras ett (som i “sant”) och annars returneras 0. Vad detta gör är att om det finns något tecken alls i minTxt, så läggs det på ett, och därmed får vi ut antalet ord. Skickar vi däremot in en tom text i funktionen returneras noll.

Har du gjort egna lambda-funktioner?

Scrolla längst ner på den här sidan och skriv en egen kommentar om detta! Tycker du det verkar svårt? Användbart?

Har du själv skrivit egna lambda-funktioner? Skriv gärna en kommentar här nedanför och berätta vad du gjorde och varför du valde att göra en lambda!

Hur användbart var detta?

Klicka på en stjärna för att rösta!

Medelbetyg 4.8 / 5. Antal röster 15

Inga röster hittills, du får vara först!

Prenumerera på mitt nyhetsbrev

Missa inte när det kommer nya tips!

Inget spammande, jag kommer aldrig sälja dina uppgifter - du får bara ett bra Exceltips varje torsdag - rätt in i inkorgen!

Vill du se fler tips direkt? Här är tre till!

8 svar på ”Lambda i Excel, allt du vill veta!”

  1. Min första tillämpning blev en sökfunktion. Ville ha en generell sök där jag kan skicka in en lista och en söksträng och få ut alla träffar:
    =LAMBDA(seachFor;SearchIn;FILTER(SearchIn;ISNUMBER(SEARCH(seachFor;SearchIn));”ingen träff”))(A1;A3:A7)

    Kort:
    Skicka in en söksträng och en lista/kolumn och denna filtrerar resultatet och visar ny lista på alla matchar.
    A1 = söksträng
    A3-7 är listan

    Svara
  2. Spännande, det måste jag testa! Har aldrig varit särskilt intresserad eller duktig på makros och undrar om det här kanske kan vara ett enklare och mer flexibelt alternativ?

    Svara
  3. Mycket intressant och jag ser att jag har funktionen i min excel, så nu är det bara att lära sig något nytt. Kul och spännande

    Svara
  4. Jättespännande med lambda! Älskade att skapa makros när jag körde excel på ett tidigare jobb. Här ska testas!!

    Svara

Lämna en kommentar

Artikel tillagd till varukorg.
0 artiklar - 0,00 kr