Požiadavky:
- Základné znalosti vba
- Použitie tabuliek/pomenovaných rozsahov
Pri práci so zapnutými a vypnutými zošitmi môže byť niekedy ťažké zapamätať si nastavenú štruktúru údajov a vzorec, a to niekedy mesiace od opätovného navštívenia zošita.
Takto tento problém obchádzam a zaisťujem, aby som do niekoľkých minút mal prehľad o vykonaných výpočtoch.
V tomto príklade ukážem, ako je možné zjednodušiť vzorec na výpočet bonusov.
Vzhľad vzorca bez tabuľky alebo UDF
Vzorec:
= 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)))
Logiku v tomto vzorci je na prvý pohľad ťažké vyvodiť.
Vzhľad vzorca s tabuľkou a bez UDF
Vzorec:
= IF (SUM ([@[Ročné tržby]]/[@Plat]) = 3; SUM (([@[Ročné tržby]-[@Plat])*0,03); IF (AND (SUM ([ @[Ročné tržby]]/[@Plat]]> 1; SUMA ([@[Ročné tržby]]/[@Plat]) <3) = PRAVDA; SUM (([@[Ročné tržby]]-[@Plat ])*0,02); 1)))
S tabuľkami sa to začalo čítať o niečo jednoduchšie, pretože ste informovaní o bunkách použitých pri výpočte
Vzhľad vzorca s tabuľkou a UDF
Užívateľom definovaná funkcia vložená do modulu:
„Radšej budem mať dlhé a popisné funkčné názvy než krátke a nepopisné názvy
Funkcia count_salary_to_sale_ratio_and_return_bonus (yearlySales As Double, plat As Double) As Double
Dim plat_na_predaj_ratio ako dvojnásobok
Dim bonus_factor ako dvojitý
Dim return_bonus ako dvojnásobok
plat_na_predaj_ratio = ročnýPredaj / plat
Vyberte položku Prípad pay_to_sale_ratio
Prípad 1 až 3
bonus_factor = 0,02
Prípad je> 3
bonus_factor = 0,03
Prípad inak
bonus_factor = 0#
Ukončiť výber
return_bonus = (ročný predaj - plat) * faktor_ bonusu
count_salary_to_sale_ratio_and_return_bonus = return_bonus
Koncová funkcia
Použitie funkcie
Vzorec:= vypočítať_salary_to_sale_ratio_and_return_bonus ([@[ročné tržby]]; [@plat])To vám na prvý pohľad presne povie, čo sa deje, a vždy môžete ísť hlbšie do kódu a prečítať si špecifiká. V prílohe je súbor demonštrujúci všetky tri scenáre