Categories
- Best practices(16)
- Berekeningen(6)
- Kringverwijzingen(2)
- Ontdubbeling(1)
- Gedefinieerde namen(1)
- Excel errors(2)
- Verklarende Excel woordenlijst(18)
- Excel standaarden(1)
- Opmaak(2)
- Formules(7)
- Functies(11)
- Input sources(4)
- Navigatie
- Risico's(2)
- Spreadsheet ontwikkeling(8)
- Spreadsheet onderhoud(7)
- Tabellen(1)
- VBA(1)
De kracht van LAMBDA
Een veelgehoorde klacht over formules in Excel is dat ze moeilijk te lezen zijn, vooral als je hem niet zelf geschreven hebt. Formules in Excel missen ook herbruikbaarheid: een formule berekent zijn resultaat eenmalig, voor één cel. Je kunt de formule uitbreiden over meerdere cellen, of ze kopiëren naar een andere plek, maar een spreadsheetontwikkelaar moet er goed op letten dat elke wijziging in de logica consequent wordt toegepast op alle formules.
Bekende oplossingen
Een bekende oplossing om formules beter leesbaar te maken is om deze op te knippen in losse stappen (formule breakdown), zodat de tussenstappen korter zijn en afzonderlijk kunnen worden gelabeld. Om het onderhoudbaarheidsprobleem op te lossen worden soms meer ingrijpende oplossingen gebruikt; van gegenereerde Excel-sheets tot VBA-scripts die formules op de juiste plaatsen toevoegen.
Maak kennis met LAMBDA
Wat als ik je vertel dat er een ‘native’ manier is om beide problemen in Excel op te lossen? Maak kennis met LAMBDA(). Met LAMBDA kun je een formule specificeren, zonder dat deze direct wordt omgezet in een waarde. In plaats daarvan verpak je de formule in een LAMBDA-functie, label je deze met een gedefinieerde naam en roep je de berekening op vanaf verschillende locaties in je spreadsheet.
Voorbeeld: Hypotenuse
Je kunt bijvoorbeeld de formule van Pythagoras invoeren om de langste zijde van een rechthoekige driehoek onder de gedefinieerde naam **hptn** te berekenen (voor ‘hypotenuse’, gebruik kleine letters om hem te onderscheiden van oorspronkelijke Excel-functies):
=LAMBDA(a, b, SQRT(POWER(a, 2) + POWER(b, 2)))
Zoals je kunt zien, vindt de eigenlijke berekening plaats in het derde argument van de LAMBDA-functie, de eerste twee specificeren de parameters die door deze formule worden vereist (opgemerkt moet worden dat het aantal parameters flexibel is).
Vervolgens kun je de hypotenusa (de lengte van de helling) overal in je werkmap berekenen met behulp van:
Vet he?!
Waarom zou je LAMBDA-functies gebruiken?
Je zou kunnen zeggen dat LAMBDA-functies functionaliteit verbergen, maar door de namen zorgvuldig te kiezen kun je formules in je model echt verduidelijken. Laten we eerlijk zijn, =getLastCell(A:A) leest net iets makkelijker dan =LOOKUP(2,1/(A:A<>””),A:A)
LAMBDA-functies kunnen in elke formule worden aangeroepen, inclusief de eigen definitie! Stel dat Excel de FACT-functie niet had om een faculteit te berekenen, dan zou je er zelf een recursieve versie van kunnen implementeren! Voer gewoon de volgende gedefinieerde naam in:
Voor de duidelijkheid: een faculteit is een notoir slecht voorbeeld om recursief te implementeren, maar het toont wel helder aan wat de kracht van LAMBDA’s is. Een veelvoorkomend voorbeeld uit de praktijk is bijvoorbeeld een functie die herhaald tekstvervanging uitvoert, maar de implementatie daarvan is iets te uitgebreid voor het doeleinde van dit artikel.