Sådan bruges Excel LAMBDA-funktionen

Indholdsfortegnelse

Resumé

Excel LAMBDA-funktionen giver mulighed for at oprette brugerdefinerede funktioner, der kan genbruges i en projektmappe uden VBA eller makroer.

Formål

Opret brugerdefineret funktion

Returneringsværdi

Som defineret af formlen

Syntaks

= LAMBDA (parameter,…, beregning)

Argumenter

  • parameter - En inputværdi for funktionen.
  • beregning - Beregningen, der skal udføres som resultatet af funktionen. Skal være sidste argument.

Version

Excel 365

Brugsanvisninger

I computerprogrammering henviser LAMBDA til en anonym funktion eller et udtryk. En anonym funktion er en funktion defineret uden navn. I Excel giver LAMBDA-funktionen en måde at definere og indkapsle specifik formelfunktionalitet, ligesom en Excel-funktion. Når LAMBDA-funktionen er defineret, kan den navngives og genbruges andetsteds i en projektmappe. Med andre ord er LAMBDA-funktionen en måde at oprette brugerdefinerede funktioner på.

En af de vigtigste fordele ved en brugerdefineret LAMBDA-funktion er, at logikken indeholdt i formlen findes ét sted. Dette betyder, at der kun er en kopi af kode, der skal opdateres, når der løses problemer eller opdatering af funktionalitet, og ændringer overføres automatisk til alle forekomster af LAMBDA-funktionen i en projektmappe. En LAMBDA-funktion kræver ikke VBA eller makroer.

Eksempel 1 | Eksempel 2 | Eksempel 3

Oprettelse af en LAMBDA-funktion

LAMBDA-funktioner oprettes og debugges typisk i formellinjen på et regneark og flyttes derefter til navnestyreren for at tildele et navn, der kan bruges overalt i en projektmappe.

Der er fire grundlæggende trin til oprettelse og brug af en brugerdefineret formel baseret på LAMBDA-funktionen:

  1. Bekræft den logik, du vil bruge, med en standardformel
  2. Opret og test en generisk (ikke navngivet) LAMBDA-version af formlen
  3. Navngiv og definer LAMBDA-formlen med navnet manager
  4. Test den nye brugerdefinerede funktion ved hjælp af det definerede navn

Eksemplerne nedenfor diskuterer disse trin mere detaljeret.

Eksempel 1

For at illustrere, hvordan LAMBDA fungerer, lad os begynde med en meget enkel formel:

=x*y // multiple x and y

I Excel bruger denne formel typisk brug af cellereferencer som denne:

=B5*C5 // with cell references

Som du kan se, fungerer formlen fint, så vi er klar til at gå videre til at skabe en generisk LAMBDA-formel (ikke navngivet version). Den første ting at overveje er, hvis formlen kræver input (parametre). I dette tilfælde er svaret "ja" - formlen kræver en værdi for x og en værdi for y. Med det etablerede starter vi med LAMBDA-funktionen og tilføjer de nødvendige parametre til brugerinput:

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

Dernæst skal vi tilføje den faktiske beregning, x * y:

=LAMBDA(x,y,x*y)

Hvis du indtaster formlen på dette tidspunkt, får du en #CALC! fejl. Dette sker, fordi formlen ikke har nogen inputværdier at arbejde med, da der ikke længere er nogen cellereferencer. For at teste formlen skal vi bruge en særlig syntaks som denne:

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

Denne syntaks, hvor parametre leveres i slutningen af ​​en LAMBDA-funktion i et separat sæt parenteser, er unik for LAMBDA-funktioner. Dette gør det muligt at afprøve formlen direkte på regnearket, før LAMBDA navngives. På skærmen nedenfor kan du se, at den generiske LAMBDA-funktion i F5 returnerer nøjagtigt det samme resultat som den originale formel i E5:

Vi er nu klar til at navngive LAMBDA-funktionen med Name Manager. Vælg først formlen, * inkluderer ikke * testparametrene i slutningen. Åbn derefter Navneadministrator med genvejen Control + F3, og klik på Ny.

I dialogboksen Nyt navn skal du indtaste navnet "XBYY", lade rækkevidden være angivet til projektmappen og indsætte den formel, du kopierede, i inputområdet "Henviser til".

Sørg for, at formlen begynder med et ligetegn (=). Nu hvor LAMBDA-formlen har et navn, kan den bruges i projektmappen som enhver anden funktion. På skærmen under formlen i G5, kopieret ned, er:

Den nye brugerdefinerede funktion returnerer det samme resultat som de to andre formler.

Eksempel 2

I dette eksempel konverterer vi en formel til at beregne volumen af ​​en kugle til en brugerdefineret LAMBDA-funktion. Den generelle Excel-formel til beregning af en kugles volumen er:

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

hvor A1 repræsenterer radius. Skærmen nedenfor viser denne formel i aktion:

Bemærk, at denne formel kun kræver en indgang (radius) for at beregne volumen, så vores LAMBDA-funktion behøver kun en parameter (r), som vises som det første argument. Her er formlen konverteret til LAMBDA:

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

Tilbage i regnearket har vi erstattet den originale formel med den generiske LAMBDA-version. Bemærk, at vi bruger testsyntaxen, som giver os mulighed for at tilslutte B5 for radius:

Resultaterne fra den generiske LAMBDA-formel er nøjagtigt de samme som den oprindelige formel, så det næste trin er at definere og navngive denne LAMBDA-formel med Name Manager, som forklaret ovenfor. Navnet, der bruges til en LAMBDA-funktion, kan være et hvilket som helst gyldigt Excel-navn. I dette tilfælde navngiver vi formlen "SphereVolume".

Tilbage i regnearket har vi erstattet den generiske (ikke navngivne) LAMBDA-formel med den navngivne LAMBDA-version og indtastet B5 for r. Bemærk, at resultaterne, der returneres af den tilpassede SphereVolume-funktion, er nøjagtigt de samme som tidligere resultater.

Eksempel 3

I dette eksempel opretter vi en LAMBDA-funktion til at tælle ord. Excel har ikke en funktion til dette formål, men du kan tælle ord med en celle med en brugerdefineret formel baseret på LEN- og SUBSTITUTE-funktionerne som denne:

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

Læs detaljeret forklaring her. Her er formlen i aktion i et regneark:

Bemærk, at vi får et forkert antal på 1, når formlen får en tom celle (B10). Vi løser dette problem nedenfor.

Denne formel kræver kun et input, som er teksten, der indeholder ord. I vores LAMBDA-funktion navngiver vi dette argument "tekst". Her er formlen konverteret til LAMBDA:

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

Bemærk "tekst" vises som det første argument, og beregningen er det andet og sidste argument. På nedenstående skærm har vi erstattet den originale formel med den generiske LAMBDA-version. Bemærk, at vi bruger testsyntaxen, som giver os mulighed for at tilslutte B5 til tekst:

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

Resultaterne fra den generiske LAMBDA-formel er de samme som den oprindelige formel, så det næste trin er at definere og navngive denne LAMBDA-formel med Name Manager, som forklaret tidligere. Vi navngiver denne formel "CountWords".

Nedenfor har vi erstattet den generiske (ikke navngivne) LAMBDA-formel med den navngivne LAMBDA-version og indtastet B5 til tekst. Bemærk, at vi får nøjagtigt de samme resultater.

Formlen, der bruges i Name Manager til at definere CountWords, er den samme som ovenfor uden testsyntaxen:

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

Løsning af det tomme celleproblem

Som nævnt ovenfor returnerer formlen ovenfor et forkert antal på 1, når en celle er tom. Dette problem kan løses ved at erstatte +1 med nedenstående kode:

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

Fuld forklaring her. For at opdatere den eksisterende navngivne LAMDA-formel skal vi igen bruge Name Manager:

  1. Åbn Name Manager
  2. Vælg navnet "CountWords" og klik på "Edit"
  3. Udskift koden "Henviser til" med denne formel:

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

Når navneadministratoren er lukket, fungerer CountWords korrekt på tomme celler som vist nedenfor:

Bemærk: ved at opdatere koden en gang i Name Manager opdateres alle forekomster af CountWords-formlen på én gang. Dette er en nøglefordel ved tilpassede funktioner oprettet med LAMBDA -formelopdateringer kan styres ét sted.

Interessante artikler...