Verklarende formules

Anonim

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