Požadavky:
- Základní znalosti vba
- Použití tabulek/pojmenovaných rozsahů
Při práci se zapnutými a vypnutými sešity může být někdy těžké si pamatovat nastavení datové struktury a vzorce, někdy mezi revizemi sešitu.
Takto tento problém obcházím a zajišťuji, že během několika minut budu mít přehled o provedených výpočtech.
V tomto příkladu ukážu, jak lze vzorec pro výpočet bonusů zjednodušit.
Vzhled vzorce bez stolu nebo UDF
Vzorec:
= IF (SUM (C2/D2) = 3; SUM ((C2-D2)*0,03); IF (AND (SUM (C2/D2)> 1; SUM (C2/D2) <3) = PRAVDA; SUM ((C2-D2)*0,02); 1)))
Logiku v tomto vzorci lze na první pohled těžko extrahovat.
Vzhled vzorce s tabulkou 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; SUMA (([[[roční tržby]]-[@plat ])*0,02); 1)))
S tabulkami je čtení o něco snazší, protože jste informováni o buňkách použitých při výpočtu
Vzhled vzorce s tabulkou a UDF
Uživatelem definovaná funkce vložená do modulu:
„Raději budu mít dlouhé a popisné názvy funkcí než krátké a nepopisné názvy
Funkce count_salary_to_sale_ratio_and_return_bonus (yearlySales As Double, plat As Double) As Double
Dim plat_na_prodej_ratio jako dvojnásobek
Dim bonus_factor jako dvojitý
Dim return_bonus As Double
plat_na_prodej_ratio = roční prodej / plat
Vyberte možnost Case pay_to_sale_ratio
Případ 1 až 3
bonus_factor = 0,02
Případ je> 3
bonus_factor = 0,03
Případ jinak
bonus_factor = 0#
Konec Vybrat
return_bonus = (yearlySales - plat) * bonus_factor
count_salary_to_sale_ratio_and_return_bonus = return_bonus
Koncová funkce
Použití funkce
Vzorec:= count_salary_to_sale_ratio_and_return_bonus ([@[roční tržby]]; [@plat])To vám na první pohled přesně řekne, co se děje, a vždy můžete jít hlouběji do kódu a přečíst si specifika. Připojený soubor ukazuje všechny tři scénáře