Krav:
- Grunnleggende kunnskap om vba
- Bruk av tabeller/navngitte områder
Når du arbeider med arbeidsbøker av og på, noen ganger måneder mellom revisjoner av arbeidsboken, kan det være vanskelig å huske datastrukturen og formelen som er satt opp.
Slik arbeider jeg rundt dette problemet og sørger for at jeg i løpet av få minutter får en oversikt over beregningene som er gjort.
I dette eksemplet vil jeg vise hvordan en formel for beregning av bonuser kan forenkles.
Formel utseende uten bord eller UDF
Formel:
= IF (SUM (C2/D2) = 3; SUM ((C2-D2)*0,03); IF (AND (SUM (C2/D2)> 1; SUM (C2/D2) <3) = TRUE; SUM ((C2-D2)*0,02); 1)))
Logikken i denne formelen kan være vanskelig å trekke ut ved første øyekast.
Formel utseende med bord og ingen UDF
Formel:
= HVIS (SUM ([@[Årlig salg]]/[@Lønn]) = 3; SUM (([@[Årlig salg]]-[@Lønn])*0,03); HVIS (OG (SUM ([ @[Årlig salg]]/[@Lønn])> 1; SUM ([@[Årlig salg]]/[@Lønn]) <3) = SANN; SUM (([@[Årlig salg]]-[@Lønn ])*0,02); 1)))
Med tabeller ble det bare litt lettere å lese ettersom du blir informert om cellene som ble brukt i beregningen
Formel utseende med bord og UDF
Brukerdefinert funksjon satt inn i en modul:
'Jeg vil heller ha lange og beskrivende funksjonstitler enn korte og ubeskrivende titler
Funksjon calculate_salary_to_sale_ratio_and_return_bonus (årligSalg som dobbelt, lønn som dobbelt) som dobbelt
Dim lønn_til_salgsforhold som dobbelt
Dim bonus_factor As Double
Dim return_bonus As Double
lønn_til_salgsforhold = årligSalg / lønn
Velg sakslønn_til_salgs_forhold
Sak 1 til 3
bonus_faktor = 0,02
Sak er> 3
bonus_faktor = 0,03
Case Else
bonus_faktor = 0#
Avslutt Velg
return_bonus = (årlig salg - lønn) * bonus_faktor
calculate_salary_to_sale_ratio_and_return_bonus = retur_bonus
Sluttfunksjon
Bruk av funksjonen
Formel:= calculate_salary_to_sale_ratio_and_return_bonus ([@[Årlig omsetning]]; [@Lønn])Dette forteller deg nøyaktig hva som skjer ved første øyekast, og du kan alltid gå dypere inn i koden for å lese detaljene. Vedlagt er en fil som viser alle tre scenariene