Förklarande formler

Anonim

Krav:

- Grundläggande kunskaper i vba
- Användning av tabeller/namngivna intervall

När du arbetar med arbetsböcker på och av, ibland månader mellan återbesök till arbetsboken kan det vara svårt att komma ihåg datastrukturen och formeln.
Så här kringgår jag detta problem och ser till att jag inom några minuter får en överblick över beräkningarna.
I detta exempel kommer jag att visa hur en formel för att beräkna bonusar kan förenklas.

Formelutseende utan 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; SUMMA ((C2-D2)*0,02); 1)))

Logiken i denna formel kan vara svår att extrahera vid första anblicken.

Formelutseende med bord och ingen UDF

Formel:

= IF (SUM ([@[Årlig försäljning]]/[@Lön]) = 3; SUM (([@[Årlig försäljning]]-[@Lön])*0,03); IF (AND (SUM ([ @[Årlig försäljning]]/[@Lön])> 1; SUMMA ([@[Årsförsäljning]]/[@Lön]) <3) = SANT; SUM (([@[Årlig försäljning]]-[@Lön ])*0,02); 1)))

Med tabeller blev det bara lite lättare att läsa när du informeras om de celler som används i beräkningen

Formelutseende med bord och UDF

Användardefinierad funktion infogad i en modul:

'Jag kommer hellre att ha långa och beskrivande funktionstitlar än korta och obeskrivliga titlar
Funktion calculate_salary_to_sale_ratio_and_return_bonus (årlig försäljning som dubbel, lön som dubbel) som dubbel

Dim lön_till_försäljnings_förhållande som dubbel
Dim bonus_factor As Double
Dim return_bonus As Double

lön_till_försäljningsförhållande = årlig Försäljning / lön

Välj Fall lön_till_försäljnings_förhållande
Fall 1 till 3
bonus_faktor = 0,02
Fall är> 3
bonus_faktor = 0,03
Case Else
bonus_faktor = 0#
Avsluta Välj

return_bonus = (årlig försäljning - lön) * bonus_faktor

calculate_salary_to_sale_ratio_and_return_bonus = return_bonus

Avsluta funktion

Användning av funktionen

Formel:= calculate_salary_to_sale_ratio_and_return_bonus ([@[Årlig försäljning]]; [@Lön])Detta berättar exakt vad som händer vid en första anblick, och du kan alltid gå djupare in i koden för att läsa detaljerna. Bifogad är en fil som visar alla tre scenarierna