POWRÓT DO ARTYKUŁÓW

Definiowanie własnych funkcji w excelu


Aplikacja excel zawiera bardzo szeroki wachlarz wbudowanych funkcji, które mają za zadanie ułatwić dokonywanie obliczeń i kalkulacji. Nie każdy użytkownik jest jednak świadomy, że samodzielnie może zdefiniować zupełnie nowe funkcje, które zostaną dołączone do repozytorium w sekcji: "zdefiniowane przez użytkownika", stając się dostępnymi podczas dalszej pracy z programem.

Podczas dokonywania obliczeń niejednokrotnie wykorzystujemy kombinacje wielu funkcji zagnieżdżając często jedne w drugich. Tak stworzone kalkulacje są dość obszerne i odwołują się do wielu zmiennych. Aby ułatwić sobie pracę lub przygotować dane w formie bardziej przyjaznej dla innych użytkowników możemy zdefiniować własne funkcje. Wykorzystamy tutaj elementy Visual Basica.

Wyobraźmy sobie, że firma handlowa udziela rabatów swoim klientom w zależności od poziomu sprzedaży. Do poziomu 1999,99 zł nie udziela się żadnych rabatów. Od 2 tyś. zł (ale do poziomu 2 999,99 zł) rabat wynosi 2%. Od 3 tyś. zł (ale do poziomu 4 999,99 tyś. zł) rabat wynosi 3%. Nadwyżka ponad 5 tyś. zł (łącznie z tą kwotą) wiąże się z rabatem 5%.

Aby obliczyć łączny rabat znając poziom sprzedaży moglibyśmy napisać następującą funkcję:


=JEŻELI(A10<2000;0;JEŻELI(A10<3000;(A10-2000)*2%;JEŻELI(A10<5000;(A10-3000)*3%+1000*2%;(A10-5000)*5%+2000*3%+1000*2%)))


gdzie w komórce A10 wpisujemy poziom sprzedaży.

Jak widać, składnia funkcji jest rozbudowana. Naszym celem jest zbudowanie funkcji, gdzie jedynym parametrem będzie wielkość sprzedaży np.


=rabat(sprzedaż)


Wpisując sprzedaż w dowolne pole i linkując funkcję rabat do tego pola powinniśmy otrzymać odpowiedni rabat, skalkulowany zgodnie z powyższymi warunkami.

Korzystając z Visual Basica tworzymy moduł o nazwie "Funkcja", dla którego definiujemy funkcję: "rabat" w oparciu o zmienną sprzedaż. Moglibyśmy zadeklarować więcej zmiennych, jak np. progi sprzedaży i wartości procentowe, jednak na tym etapie zadowolimy się stałymi elementami kodu.


kod VBA

Po zapisaniu zmian funkcja rabat znajduje się w repozytorium funkcji wbudowanych i jest gotowa do użycia. Użytkownik programu może zmieniać poziom sprzedaży w komórce i nie zagłębiając się w szczegóły kalkulacji otrzymuje gotową wartość całkowitego rabatu.