
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 funktionReturneringsværdi
Som defineret af formlenSyntaks
= 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 365Brugsanvisninger
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:
- Bekræft den logik, du vil bruge, med en standardformel
- Opret og test en generisk (ikke navngivet) LAMBDA-version af formlen
- Navngiv og definer LAMBDA-formlen med navnet manager
- 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:
- Åbn Name Manager
- Vælg navnet "CountWords" og klik på "Edit"
- 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.