Hoe de Excel LAMBDA-functie - te gebruiken

Inhoudsopgave

Samenvatting

De Excel LAMBDA-functie biedt een manier om aangepaste functies te maken die opnieuw kunnen worden gebruikt in een werkmap, zonder VBA of macro's.

Doel

Maak een aangepaste functie

Winstwaarde

Zoals gedefinieerd door formule

Syntaxis

= LAMBDA (parameter, …, berekening)

Argumenten

  • parameter - Een invoerwaarde voor de functie.
  • berekening : de berekening die moet worden uitgevoerd als resultaat van de functie. Moet het laatste argument zijn.

Versie

Excel 365

Gebruiksopmerkingen

Bij computerprogrammering verwijst LAMBDA naar een anonieme functie of uitdrukking. Een anonieme functie is een functie die zonder naam is gedefinieerd. In Excel biedt de LAMBDA-functie een manier om specifieke formulefunctionaliteit te definiëren en in te kapselen, net als een Excel-functie. Eenmaal gedefinieerd, kan een LAMBDA-functie een naam krijgen en elders in een werkmap opnieuw worden gebruikt. Met andere woorden, de LAMBDA-functie is een manier om aangepaste functies te maken.

Een van de belangrijkste voordelen van een aangepaste LAMBDA-functie is dat de logica in de formule slechts op één plaats bestaat. Dit betekent dat er slechts één exemplaar van de code hoeft te worden bijgewerkt bij het oplossen van problemen of het bijwerken van functionaliteit, en wijzigingen worden automatisch doorgevoerd in alle instanties van de LAMBDA-functie in een werkmap. Een LAMBDA-functie vereist geen VBA of macro's.

Voorbeeld 1 | Voorbeeld 2 | Voorbeeld 3

Een LAMBDA-functie maken

LAMBDA-functies worden doorgaans gemaakt en opgelost in de formulebalk op een werkblad, en vervolgens verplaatst naar de name manager om een ​​naam toe te wijzen die overal in een werkmap kan worden gebruikt.

Er zijn vier basisstappen voor het maken en gebruiken van een aangepaste formule op basis van de LAMBDA-functie:

  1. Controleer de logica die u gaat gebruiken met een standaardformule
  2. Maak en test een generieke (naamloze) LAMBDA-versie van de formule
  3. Geef een naam en definieer de LAMBDA-formule met de naambeheerder
  4. Test de nieuwe aangepaste functie met de gedefinieerde naam

De onderstaande voorbeelden bespreken deze stappen in meer detail.

voorbeeld 1

Om te illustreren hoe LAMBDA werkt, laten we beginnen met een heel eenvoudige formule:

=x*y // multiple x and y

In Excel gebruikt deze formule doorgaans celverwijzingen als volgt:

=B5*C5 // with cell references

Zoals u kunt zien, werkt de formule prima, dus we zijn klaar om verder te gaan met het maken van een generieke LAMBDA-formule (naamloze versie). Het eerste dat u moet overwegen, is of de formule invoer (parameters) vereist. In dit geval is het antwoord "ja" - de formule vereist een waarde voor x en een waarde voor y. Met dat vastgesteld, beginnen we met de LAMBDA-functie en voegen we de vereiste parameters toe voor gebruikersinvoer:

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

Vervolgens moeten we de werkelijke berekening toevoegen, x * y:

=LAMBDA(x,y,x*y)

Als u de formule op dit punt invoert, krijgt u een #CALC! fout. Dit gebeurt omdat de formule geen invoerwaarden heeft om mee te werken, aangezien er geen celverwijzingen meer zijn. Om de formule te testen, hebben we een speciale syntaxis nodig, zoals deze:

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

Deze syntaxis, waarbij parameters worden geleverd aan het einde van een LAMBDA-functie in een aparte set haakjes, is uniek voor LAMBDA-functies. Hierdoor kan de formule direct op het werkblad worden getest, voordat de LAMBDA wordt genoemd. In het onderstaande scherm kunt u zien dat de generieke LAMBDA-functie in F5 exact hetzelfde resultaat retourneert als de originele formule in E5:

We zijn nu klaar om de LAMBDA-functie een naam te geven met de Name Manager. Selecteer eerst de formule, * exclusief * de testparameters aan het einde. Open vervolgens de Name Manager met de sneltoets Control + F3 en klik op Nieuw.

Voer in het dialoogvenster Nieuwe naam de naam "XBYY" in, laat het bereik ingesteld op de werkmap en plak de formule die u hebt gekopieerd in het invoergebied "Verwijst naar".

Zorg ervoor dat de formule begint met een gelijkteken (=). Nu de LAMBDA-formule een naam heeft, kan deze net als elke andere functie in de werkmap worden gebruikt. In het onderstaande scherm is de formule in G5, naar beneden gekopieerd,:

De nieuwe aangepaste functie retourneert hetzelfde resultaat als de andere twee formules.

Voorbeeld 2

In dit voorbeeld converteren we een formule om het volume van een bol te berekenen naar een aangepaste LAMBDA-functie. De algemene Excel-formule voor het berekenen van het volume van een bol is:

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

waarbij A1 staat voor straal. Het onderstaande scherm toont deze formule in actie:

Merk op dat deze formule slechts één invoer (straal) vereist om het volume te berekenen, dus onze LAMBDA-functie heeft maar één parameter (r) nodig, die als het eerste argument zal verschijnen. Hier is de formule geconverteerd naar LAMBDA:

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

Terug in het werkblad hebben we de originele formule vervangen door de generieke LAMBDA-versie. Merk op dat we de testsyntaxis gebruiken, waarmee we B5 voor radius kunnen aansluiten:

De resultaten van de generieke LAMBDA-formule zijn exact hetzelfde als de originele formule, dus de volgende stap is het definiëren en benoemen van deze LAMBDA-formule met de Name Manager, zoals hierboven uitgelegd. De naam die wordt gebruikt voor een LAMBDA-functie kan elke geldige Excel-naam zijn. In dit geval noemen we de formule "SphereVolume".

Terug in het werkblad hebben we de generieke (naamloze) LAMBDA-formule vervangen door de genoemde LAMBDA-versie en hebben we B5 ingevoerd voor r. Merk op dat de resultaten die worden geretourneerd door de aangepaste SphereVolume-functie exact hetzelfde zijn als eerdere resultaten.

Voorbeeld 3

In dit voorbeeld maken we een LAMBDA-functie om woorden te tellen. Excel heeft hiervoor geen functie, maar je kunt woorden tellen met een cel met een aangepaste formule op basis van de LEN- en SUBSTITUTE-functies als volgt:

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

Lees hier de uitgebreide uitleg. Hier is de formule in actie in een werkblad:

Merk op dat we een onjuiste telling van 1 krijgen als de formule een lege cel krijgt (B10). We zullen dit probleem hieronder behandelen.

Deze formule vereist slechts één invoer, namelijk de tekst die woorden bevat. In onze LAMBDA-functie noemen we dit argument "tekst". Hier is de formule geconverteerd naar LAMBDA:

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

Merk op dat "tekst" verschijnt als het eerste argument, en de berekening is het tweede en laatste argument. In het onderstaande scherm hebben we de originele formule vervangen door de generieke LAMBDA-versie. Merk op dat we de testsyntaxis gebruiken, waarmee we B5 voor tekst kunnen aansluiten:

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

De resultaten van de generieke LAMBDA-formule zijn hetzelfde als de originele formule, dus de volgende stap is om deze LAMBDA-formule te definiëren en benoemen met de Name Manager, zoals eerder uitgelegd. We noemen deze formule "CountWords".

Hieronder hebben we de generieke (naamloze) LAMBDA-formule vervangen door de genoemde LAMBDA-versie en hebben we B5 ingevoerd voor tekst. Merk op dat we precies dezelfde resultaten krijgen.

De formule die in Name Manager wordt gebruikt om CountWords te definiëren is dezelfde als hierboven, zonder de testsyntaxis:

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

Het probleem met lege cellen oplossen

Zoals hierboven vermeld, retourneert de bovenstaande formule een onjuiste telling van 1 wanneer een cel leeg is. Dit probleem kan worden opgelost door +1 te vervangen door de onderstaande code:

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

Volledige uitleg hier. Om de bestaande LAMDA-formule bij te werken, moeten we opnieuw de Name Manager gebruiken:

  1. Open de Name Manager
  2. Selecteer de naam "CountWords" en klik op "Bewerken"
  3. Vervang de code "Verwijst naar" door deze formule:

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

Zodra de Name Manager is gesloten, werkt de CountWords correct op lege cellen, zoals hieronder te zien is:

Opmerking: door de code één keer bij te werken in de Name Manager, worden alle instanties van de CountWords-formule in één keer bijgewerkt. Dit is een belangrijk voordeel van aangepaste functies die zijn gemaakt met LAMBDA-formule-updates kunnen op één plek worden beheerd.

Interessante artikelen...