Vereisten:
- Basiskennis van vba
- Gebruik van tabellen/benoemde bereiken
Wanneer u met in- en uitgeschakelde werkmappen werkt, kunnen soms maanden tussen het opnieuw bezoeken van de werkmap moeilijk zijn om de gegevensstructuur en de formule te onthouden.
Zo omzeil ik dit probleem en zorg ik ervoor dat ik binnen enkele minuten een overzicht heb van de gemaakte berekeningen.
In dit voorbeeld laat ik zien hoe een formule voor het berekenen van bonussen vereenvoudigd kan worden.
Formule-uiterlijk zonder tabel of UDF
Formule:
=ALS(SOM(C2/D2)=3;SUM((C2-D2)*0,03);IF(AND(SUM(C2/D2)>1;SUM(C2/D2)<3)=TRUE; SOM((C2-D2)*0,02;1)))
De logica in deze formule kan op het eerste gezicht moeilijk te extraheren zijn.
Formule-uiterlijk met tabel en geen UDF
Formule:
=IF(SUM([@[Jaaromzet]]/[@Salaris])=3;SUM(([@[Jaaromzet]]-[@Salaris])*0,03);IF(AND(SUM([ @[Jaaromzet]]/[@Salaris])>1;SUM([@[Jaaromzet]]/[@Salaris])<3)=TRUE;SUM(([@[Jaaromzet]]-[@Salaris ])*0,02);1)))
Met tabellen is het een beetje gemakkelijker te lezen geworden, omdat u op de hoogte bent van de cellen die in de berekening worden gebruikt
Formule-uiterlijk met tabel en UDF
Door de gebruiker gedefinieerde functie ingevoegd in een module:
' Ik heb liever lange en beschrijvende functietitels dan korte en niet-beschrijvende titels
Functie calculator_salary_to_sale_ratio_and_return_bonus (jaarlijkse verkoop als dubbel, salaris als dubbel) als dubbel
Salaris_to_sale_ratio dimmen als dubbel
Dim bonus_factor als dubbel
Dim return_bonus als dubbel
salaris_to_sale_ratio = jaaromzet / salaris
Selecteer Case salaris_to_sale_ratio
Geval 1 tot 3
bonusfactor = 0.02
Kast is > 3
bonusfactor = 0.03
Geval Anders
bonusfactor = 0#
Einde Selecteren
return_bonus = (jaarlijkse verkoop - salaris) * bonusfactor
calculator_salary_to_sale_ratio_and_return_bonus = return_bonus
Functie beëindigen
Gebruik van de functie
Formule:=calculate_salary_to_sale_ratio_and_return_bonus([@[Jaaromzet]];[@Salaris])Dit vertelt u op het eerste gezicht precies wat er gebeurt en u kunt altijd dieper in de code gaan om de details te lezen. Bijgevoegd is een bestand dat alle drie de scenario's demonstreert