16.07.2014 Views

Zaawansowane modele finansowe z wykorzystaniem Excela i VBA

Zaawansowane modele finansowe z wykorzystaniem Excela i VBA

Zaawansowane modele finansowe z wykorzystaniem Excela i VBA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IDZ DO<br />

PRZYK£ADOWY ROZDZIA£<br />

KATALOG KSI¥¯EK<br />

ZAMÓW DRUKOWANY KATALOG<br />

Wydawnictwo Helion<br />

ul. Chopina 6<br />

44-100 Gliwice<br />

tel. (32)230-98-63<br />

e-mail: helion@helion.pl<br />

TWÓJ KOSZYK<br />

CENNIK I INFORMACJE<br />

ZAMÓW INFORMACJE<br />

O NOWOCIACH<br />

ZAMÓW CENNIK<br />

CZYTELNIA<br />

SPIS TRECI<br />

KATALOG ONLINE<br />

DODAJ DO KOSZYKA<br />

FRAGMENTY KSI¥¯EK ONLINE<br />

<strong>Zaawansowane</strong> <strong>modele</strong><br />

<strong>finansowe</strong> z <strong>wykorzystaniem</strong><br />

<strong>Excela</strong> i <strong>VBA</strong><br />

Autorzy: Mary Jackson, Mike Staunton<br />

T³umaczenie: Daniel Kaczmarek<br />

ISBN: 83-7361-340-4<br />

Tytu³ orygina³u: Advanced Modelling<br />

in Finance using Excel and <strong>VBA</strong><br />

Format: B5, stron: 320<br />

Zastosowania <strong>Excela</strong> wykraczaj¹ poza sporz¹dzanie prostych zestawieñ i wykonywanie<br />

trywialnych obliczeñ. W rêkach specjalisty Excel staje siê potê¿nym narzêdziem<br />

przydatnym w analizie skomplikowanych zagadnieñ finansowych.<br />

Ta wyj¹tkowa ksi¹¿ka dowodzi, ¿e Excel i Visual Basic for Applications mog¹ odgrywaæ<br />

istotn¹ rolê w objanianiu i wdra¿aniu metod ilociowych w dziedzinie finansów.<br />

Dysponuj¹c wydajnym kodem i funkcjami <strong>VBA</strong> w ci¹gu kilku sekund, a nawet u³amków<br />

sekund, mo¿emy wykonywaæ w Excelu obliczenia, które dot¹d by³y przeprowadzane<br />

jedynie przy u¿yciu specjalnych pakietów i jêzyków.<br />

Wszystkie <strong>modele</strong> opracowano zarówno w postaci arkuszy kalkulacyjnych pomocnych<br />

w nauczaniu finansów, jak równie¿ w formie zdefiniowanych przez u¿ytkownika funkcji<br />

napisanych w <strong>VBA</strong>, a stanowi¹cych bibliotekê przenonych funkcji gotow¹ do<br />

zastosowania w Excelu. Ksi¹¿ka przeznaczona jest zarówno dla magistrantów, jak i dla<br />

studentów ostatnich lat studiów licencjackich.<br />

Ksi¹¿ka opisuje:<br />

• <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong><br />

• Podstawy programowania w <strong>VBA</strong><br />

• Tworzenie w³asnych funkcji w <strong>VBA</strong><br />

• Optymalizacjê portfela akcji<br />

• Wycenê aktywów<br />

• Mierzenie efektywnoci<br />

• Zagadnienia zwi¹zane z opcjami na akcje<br />

• Drzewa dwumianowe i formu³ê Blacka<br />

• Scholesa<br />

• Zagadnienia zwi¹zane z opcjami na obligacje<br />

<strong>Zaawansowane</strong> obliczenia dla finansistów i mened¿erów<br />

• Poznaj zaawansowane funkcje <strong>Excela</strong><br />

• Naucz siê pisaæ programy w jêzyku Visual Basic for Applications<br />

• Zarz¹dzaj portfelem przy pomocy <strong>Excela</strong> i analizuj efektywnoæ zarz¹dzania<br />

• Poznaj metody analizy zwi¹zane z opcjami na akcje i obligacje


Spis treści<br />

Przedmowa......................................................................................... 9<br />

Rozdział 1. Wprowadzenie .................................................................................. 11<br />

1.1. Geneza finansów jako dziedziny nauki...................................................i...................12<br />

1.2. Założenia do wyceny aktywów...................................................i...............................12<br />

1.3. Problemy matematyczne i statystyczne...................................................i...................13<br />

1.4. Metody ilościowe ...................................................i...................................................i.13<br />

1.5. Rozwiązania w Excelu ...................................................i............................................14<br />

1.6. Przedstawione zagadnienia ...................................................i.....................................14<br />

1.7. Zamieszczone arkusze <strong>Excela</strong>...................................................i.................................17<br />

Część I<br />

<strong>Zaawansowane</strong> modelowanie w Excelu...........................19<br />

Rozdział 2. <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong>....................................... 21<br />

2.1. Korzystanie z funkcji <strong>Excela</strong>...................................................i...................................21<br />

2.2. Funkcje matematyczne...................................................i............................................23<br />

2.3. Funkcje statystyczne ...................................................i...............................................24<br />

2.3.1. Zastosowanie funkcji CZĘSTOŚĆ ...................................................i................25<br />

2.3.2. Zastosowanie funkcji KWARTYL ...................................................i................27<br />

2.3.3. Zastosowanie funkcji <strong>Excela</strong> rozkładu normalnego .........................................28<br />

2.4. Funkcje wyszukiwania ...................................................i............................................29<br />

2.5. Inne funkcje...................................................i...................................................i........ ..32<br />

2.6. Narzędzia inspekcji ...................................................i.................................................33<br />

2.7. Tabele danych ...................................................i...................................................i......34<br />

2.7.1. Tworzenie tabel danych z jedną zmienną wejściową .......................................34<br />

2.7.2. Tworzenie tabel danych z dwiema zmiennymi wejściowymi ..........................35<br />

2.8. Wykresy XY...................................................i...................................................i.........37<br />

2.9. Udostępnianie analizy danych i Solvera ...................................................i.................40<br />

2.10. Stosowanie nazw zakresów...................................................i...................................40<br />

2.11. Regresja...................................................i...................................................i........... ...42<br />

2.12. Narzędzie Szukaj wyniku...................................................i......................................44<br />

2.13. Algebra macierzy i związane z nią funkcje...................................................i...........46<br />

2.13.1. Wprowadzenie do teorii macierzy ...................................................i...............46<br />

2.13.2. Transpozycja macierzy ...................................................i................................46<br />

2.13.3. Dodawanie macierzy...................................................i....................................47


4 <strong>Zaawansowane</strong> <strong>modele</strong> <strong>finansowe</strong> z <strong>wykorzystaniem</strong> <strong>Excela</strong> i <strong>VBA</strong><br />

2.13.4. Mnożenie macierzy...................................................i......................................47<br />

2.13.5. Odwracanie macierzy...................................................i...................................49<br />

2.13.6. Rozwiązywanie układów równoważnych równań liniowych.........................50<br />

2.13.7. Podsumowanie funkcji macierzowych w Excelu ...........................................51<br />

Podsumowanie ...................................................i...................................................i............51<br />

Rozdział 3. Wprowadzenie do <strong>VBA</strong> ...................................................................... 53<br />

3.1. Korzyści ze znajomości <strong>VBA</strong> ...................................................i.................................53<br />

3.2. Zorientowane obiektowo cechy <strong>VBA</strong>...................................................i.....................55<br />

3.3. Zaczynamy pisać makra w <strong>VBA</strong>...................................................i.............................57<br />

3.3.1. Kilka przykładowych procedur <strong>VBA</strong> ...................................................i............57<br />

3.3.2. Interakcja z zastosowaniem MsgBox...................................................i.............58<br />

3.3.3. Edytor kodu źródłowego...................................................i................................59<br />

3.3.4. Wpisywanie kodu i wykonywanie makr...................................................i........60<br />

3.3.5. Rejestrowanie naciśnięć klawiszy i edytowanie kodu ......................................61<br />

3.4. Elementy programowania ...................................................i.......................................63<br />

3.4.1. Zmienne i typy danych...................................................i...................................63<br />

3.4.2. Zmienne tablicowe <strong>VBA</strong> ...................................................i...............................64<br />

3.4.3. Struktury sterujące ...................................................i.........................................66<br />

3.4.4. Sterowanie procedurami powtarzalnymi ...................................................i.......67<br />

3.4.5. Stosowanie w kodzie funkcji <strong>Excela</strong> oraz funkcji <strong>VBA</strong>...................................69<br />

3.4.6. Ogólne uwagi na temat programowania ...................................................i........69<br />

3.5. Komunikacja między makrami a arkuszem ...................................................i............70<br />

3.6. Przykładowe procedury...................................................i...........................................74<br />

3.6.1. Wykresy ...................................................i...................................................i......74<br />

3.6.2. Wykres prawdopodobieństwa normalnego...................................................i....77<br />

3.6.3. Generowanie granicy efektywności za pomocą Solvera ..................................79<br />

Podsumowanie ...................................................i...................................................i............82<br />

Lektury ...................................................i...................................................i......................83<br />

Dodatek 3A. Edytor Visual Basic ...................................................i..................................83<br />

Krokowe wykonywanie makra i korzystanie z innych narzędzi testujących .............86<br />

Dodatek 3B. Rejestrowanie naciśnięć klawiszy w trybie „odwołań względnych”...........88<br />

Rozdział 4. Tworzenie funkcji <strong>VBA</strong> zdefiniowanych przez użytkownika.................. 91<br />

4.1. Prosta funkcja obliczająca prowizję od sprzedaży...................................................i..92<br />

4.2. Wstawianie funkcji Commission(Sales) do arkusza ..................................................93<br />

4.3. Dwie funkcje z wieloma danymi wejściowymi służące do wyceny opcji .................94<br />

4.4. Manipulowanie tablicami w <strong>VBA</strong>...................................................i...........................97<br />

4.5. Funkcje wartości oczekiwanej i wariancji z tablicami wejściowymi ........................98<br />

4.6. Funkcja wariancji portfela posiadająca tablice wejściowe ......................................101<br />

4.7. Funkcje zwracające tablice...................................................i....................................103<br />

4.8. Stosowanie funkcji <strong>Excela</strong> i <strong>VBA</strong><br />

w funkcjach zdefiniowanych przez użytkownika...................................................i......105<br />

4.8.1. Stosowanie funkcji <strong>VBA</strong> w funkcjach zdefiniowanych przez użytkownika ... 105<br />

4.8.2. Dodatki...................................................i...................................................i......106<br />

4.9. Zalety i wady tworzenia funkcji <strong>VBA</strong> ...................................................i..................106<br />

Podsumowanie ...................................................i...................................................i..........107<br />

Dodatek 4A. Funkcje ilustrujące obsługę tablic...................................................i...........108<br />

Dodatek 4B. Funkcje wyceny opcji z zastosowaniem drzewa dwumianowego.............110<br />

Ćwiczenia w pisaniu funkcji ...................................................i........................................115<br />

Rozwiązania ćwiczeń w pisaniu funkcji ...................................................i......................117


Spis treści 5<br />

Część II<br />

<strong>Zaawansowane</strong> <strong>modele</strong> akcji........................................121<br />

Rozdział 5. Wprowadzenie do akcji ................................................................... 123<br />

Rozdział 6. Optymalizacja portfela .................................................................... 125<br />

6.1. Średnia i wariancja portfela...................................................i...................................125<br />

6.2. Reprezentacja portfeli za pomocą ryzyka i zwrotu ..................................................128<br />

6.3. Zastosowanie Solvera do znajdowania portfeli efektywnych..................................129<br />

6.4. Wyznaczanie granicy efektywności (podejście Huanga i Litzenbergera) ...............132<br />

6.5. Portfele efektywne z warunkami ograniczającymi ..................................................134<br />

6.6. Łączenie aktywów ryzykownych i pozbawionych ryzyka.......................................136<br />

6.7. Problem pierwszy: łączenie aktywa pozbawionego ryziyka<br />

z aktywem ryzykownym...................................................i............................................137<br />

6.8. Problem drugi: łączenie dwóch aktywów ryzykownych..........................................139<br />

6.9. Problem trzeci: łączenie aktywa wolnego od ryzyka z portfelem ryzykownym......141<br />

6.10. Funkcje zdefiniowane przez użytkownika w Module1..........................................143<br />

6.11. Funkcje w Module1 dla trzech ogólnych problemów konstrukcji portfela ...........145<br />

6.12. Makra z modułu ModułM ...................................................i...................................146<br />

Podsumowanie ...................................................i...................................................i..........148<br />

Lektury ...................................................i...................................................i....................148<br />

Rozdział 7. Wycena aktywów............................................................................ 149<br />

7.1. Model jednoindeksowy ...................................................i.........................................150<br />

7.2. Szacowanie współczynników beta...................................................i........................151<br />

7.3. Model wyceny aktywów kapitałowych...................................................i.................154<br />

7.4. Macierze wariancji-kowariancji...................................................i............................154<br />

7.5. Value-at-Risk ...................................................i...................................................i.....156<br />

7.6. Horyzont zysków...................................................i...................................................i159<br />

7.7. Momenty rozkładów powiązanych ze sobą<br />

na przykładzie rozkładów normalnego i logarytmiczno-normalnego ..........................161<br />

7.8. Funkcje zdefiniowane przez użytkownika w Module1............................................162<br />

Podsumowanie ...................................................i...................................................i..........163<br />

Lektury ...................................................i...................................................i....................164<br />

Rozdział 8. Mierzenie efektywności i jej przypisywanie ..................................... 165<br />

8.1. Tradycyjny pomiar efektywności...................................................i..........................166<br />

8.2. Zarządzanie aktywne-pasywne ...................................................i.............................168<br />

8.3. Wprowadzenie do analizy stylu ...................................................i............................170<br />

8.4. Prosta analiza stylu...................................................i................................................172<br />

8.5. Analiza stylu dla kolejnych okresów ...................................................i....................173<br />

8.6. Przedziały ufności dla udziałów stylu...................................................i...................175<br />

8.7. Funkcje zdefiniowane przez użytkownika w Module1............................................178<br />

8.8. Makra w ModuleM...................................................i................................................179<br />

Podsumowanie ...................................................i...................................................i..........180<br />

Lektury ...................................................i...................................................i....................181<br />

Część III Opcje na akcje...................................................w..........183<br />

Rozdział 9. Wprowadzenie do opcji na akcje...................................................... 185<br />

9.1. Geneza formuły Blacka-Scholesa ...................................................i.........................186<br />

9.2. Formuła Blacka-Scholesa...................................................i......................................187<br />

9.3. Portfele zabezpieczające ...................................................i.......................................188<br />

9.4. Wycena niezależna od ryzyka...................................................i...............................190<br />

9.5. Proste jednokrokowe drzewo dwumianowe z wyceną niezależną od ryzyka..........191


6 <strong>Zaawansowane</strong> <strong>modele</strong> <strong>finansowe</strong> z <strong>wykorzystaniem</strong> <strong>Excela</strong> i <strong>VBA</strong><br />

9.6. Parytet put-call ...................................................i...................................................i...192<br />

9.7. Dywidendy ...................................................i...................................................i.........193<br />

9.8. Cechy opcji amerykańskiej ...................................................i...................................194<br />

9.9. Metody ilościowe ...................................................i..................................................194<br />

9.10. Zmienność i stopy zwrotu z akcji mające rozkład inny od normalnego ................195<br />

Podsumowanie ...................................................i...................................................i..........196<br />

Lektury ...................................................i...................................................i....................197<br />

Rozdział 10. Drzewa dwumianowe....................................................................... 199<br />

10.1. Wprowadzenie do drzew dwumianowych ...................................................i..........200<br />

10.2. Uproszczone drzewo dwumianowe...................................................i.....................201<br />

10.3. Drzewo dwumianowe JR ...................................................i....................................203<br />

10.4. Drzewo CRR ...................................................i...................................................i....207<br />

10.5. Przybliżenia dwumianowe a formuła Blacka-Scholesa .........................................208<br />

10.6. Zbieżność drzew dwumianowych CRR ...................................................i..............210<br />

10.7. Drzewo LR ...................................................i...................................................i.......211<br />

10.8. Porównanie drzew CRR i LR...................................................i..............................212<br />

10.9. Opcje amerykańskie oraz amerykańskie drzewo CRR ..........................................214<br />

10.10. Funkcje zdefiniowane przez użytkownika w Module0 i Module1 ......................216<br />

Podsumowanie ...................................................i...................................................i..........218<br />

Lektury ...................................................i...................................................i....................218<br />

Rozdział 11. Formuła Blacka-Scholesa ................................................................ 219<br />

11.1. Formuła Blacka-Scholesa...................................................i....................................219<br />

11.2. Formuła Blacka-Scholesa w arkuszu ...................................................i..................220<br />

11.3. Opcje na waluty i towary ...................................................i....................................222<br />

11.3. Obliczanie „greckich” parametrów opcji ...................................................i............223<br />

11.5. Portfele zabezpieczające ...................................................i.....................................224<br />

11.6. Formalne wyprowadzenie formuły Blacka-Scholesa.............................................227<br />

11.7. Funkcje zdefiniowane przez użytkownika w Module1..........................................229<br />

Podsumowanie ...................................................i...................................................i..........230<br />

Lektury ...................................................i...................................................i....................231<br />

Rozdział 12. Inne metody ilościowe dla opcji europejskich.................................. 233<br />

12.1. Wprowadzenie do symulacji Monte Carlo...................................................i..........234<br />

12.2. Symulacja przy użyciu przeciwnych zmiennych losowych...................................236<br />

12.3. Symulacja przy użyciu próbkowania quasi-losowego ...........................................237<br />

12.4. Porównanie metod symulacji ...................................................i..............................238<br />

12.5. Obliczanie parametrów greckich w symulacji Monte Carlo..................................240<br />

12.6. Całkowanie numeryczne ...................................................i.....................................240<br />

12.7. Funkcje zdefiniowane przez użytkownika w Module1..........................................242<br />

Podsumowanie ...................................................i...................................................i..........244<br />

Lektury ...................................................i...................................................i....................244<br />

Rozdział 13. Rozkłady inne niż normalny oraz zmienność wewnętrzna.................. 245<br />

13.1. Zastosowanie w formule Blacka-Scholesa<br />

alternatywnych założeń dotyczących rozkładów...................................................i.......246<br />

13.2. Zmienność wewnętrzna...................................................i.......................................248<br />

13.3. Uwzględnianie skośności i kurtozy...................................................i.....................249<br />

13.4. „Uśmiech zmienności”...................................................i........................................252<br />

13.5. Funkcje zdefiniowane przez użytkownika w Module1..........................................254<br />

Podsumowanie ...................................................i...................................................i..........257<br />

Lektury ...................................................i...................................................i....................257


Spis treści 7<br />

Część IV Opcje na obligacje...................................................w.....259<br />

Rozdział 14. Wprowadzenie do wyceny opcji na obligacje ................................... 261<br />

14.1. Struktura czasowa stóp procentowych ...................................................i................263<br />

14.2. Przepływy pieniężne z obligacji kuponowych<br />

i rentowność w momencie wykupu ...................................................i...........................264<br />

14.3. Drzewa dwumianowe...................................................i..........................................265<br />

14.4. Formuła Blacka na wycenę opcji na obligację...................................................i....266<br />

14.5. Trwałość i wypukłość...................................................i..........................................267<br />

14.6. Sposób zapisu...................................................i...................................................i...269<br />

Podsumowanie ...................................................i...................................................i..........269<br />

Lektury ...................................................i...................................................i....................270<br />

Rozdział 15. Modele stóp procentowych ............................................................. 271<br />

15.1. Model Vasicka struktury czasowej ...................................................i.....................272<br />

15.2. Wycena opcji europejskich na obligacje zerokuponowe — model Vasicka .........274<br />

15.3. Wycena europejskich opcji na obligacje kuponowe — model Vasicka ................276<br />

15.4. Model CIR struktury czasowej...................................................i............................276<br />

15.5. Wycena europejskich opcji na obligacje zerokuponowe — model CIR................277<br />

15.6. Wycena europejskich opcji na obligacje kuponowe — model CIR.......................278<br />

15.7. Funkcje zdefiniowane przez użytkownika w Module1..........................................279<br />

Podsumowanie ...................................................i...................................................i..........281<br />

Lektury ...................................................i...................................................i....................281<br />

Rozdział 16. Dopasowywanie struktury czasowej................................................ 283<br />

16.1. Drzewa ze stopami procentowymi o rozkładzie logarytmiczno-normalnym.........284<br />

16.2. Drzewa ze stopami procentowymi o rozkładzie normalnym.................................287<br />

16.3. Drzewo BDT ...................................................i...................................................i....288<br />

16.4. Wycena opcji na obligacje z <strong>wykorzystaniem</strong> drzewa BDT..................................290<br />

16.5. Funkcje zdefiniowane przez użytkownika w Module1..........................................292<br />

Podsumowanie ...................................................i...................................................i..........294<br />

Lektury ...................................................i...................................................i....................294<br />

Dodatki ...................................................w....................................295<br />

Dodatek Inne funkcje <strong>VBA</strong> ............................................................................ 297<br />

Prognozowanie...................................................i...................................................i..........297<br />

Modele ARIMA ...................................................i...................................................i........299<br />

Krzywe sklejane ...................................................i...................................................i........301<br />

Wartości własne i wektory własne...................................................i...............................302<br />

Lektury ...................................................i...................................................i....................303<br />

Skorowidz...................................................................................... 305


Rozdział 2.<br />

<strong>Zaawansowane</strong> funkcje<br />

i procedury <strong>Excela</strong><br />

Celem tego rozdziału jest zapoznanie czytelnika z niektórymi funkcjami i procedurami<br />

<strong>Excela</strong> zastosowanymi w dalszej części książki. Chodzi przede wszystkim o matematyczne,<br />

statystyczne lub wyszukiwawcze funkcje <strong>Excela</strong>, a także o najczęściej stosowane<br />

procedury, takie jak tworzenie tabel z danymi oraz wyświetlanie wyników na wykresach<br />

typu XY. Przedstawione zostaną również metody podsumowywania zestawów danych,<br />

przeprowadzania analiz regresji oraz uruchamiania narzędzi <strong>Excela</strong> Szukaj wyniku<br />

i Solver. Postaramy się jak najlepiej objaśnić prezentowany materiał, by nie sprawiał<br />

on czytelnikowi żadnych trudności. Bardziej zaawansowani użytkownicy <strong>Excela</strong> mogą<br />

ograniczyć się do pobieżnego przeglądnięcia tego rozdziału bądź odwoływać się do<br />

niego tylko wtedy, gdy odczują taką potrzebę. W celu uprzyjemnienia i zwiększenia<br />

efektywności lektury opracowano skoroszyt o nazwie ZMFExcel.xls, zawierający opisywane<br />

przykłady i umożliwiający sprawdzenie swoichz umiejętności.<br />

2.1. Korzystanie z funkcji <strong>Excela</strong><br />

Excel udostępnia wiele funkcji arkuszy kalkulacyjnych, będących zasadniczo zaimplementowanymi<br />

procedurami obliczeniowymi. Funkcje te ułatwiają wykonywanie obliczeń<br />

przeprowadzanych w arkuszu, a także mogą być dołączane do makr <strong>VBA</strong> i funkcji<br />

zdefiniowanych przez użytkownika (te zagadnienia zostaną przedstawione w rozdziale<br />

3. i 4.).<br />

Funkcje udostępnia przycisk Wstaw funkcję (oznaczony jako fx) znajdujący się na<br />

standardowym pasku narzędzi (wcześniej służył do tego tak zwany kreator funkcji.)<br />

Na rysunku 2.1 widać, że funkcje są pogrupowane w kilka różnych kategorii: matematyczne,<br />

statystyczne, logiczne, wyszukiwania i adresuz itd.<br />

Jak widać na rysunku, zaznaczona została funkcja , co spowodowało wyświetlenie<br />

krótkiego opisu jej danych wejściowych i wyjściowych. Pełniejszy opis można<br />

uzyskać, naciskając przycisk Pomoc (oznaczony jako ?).


22 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.1.<br />

Okno dialogowe<br />

Wstawianie funkcji<br />

przedstawiające<br />

funkcję<br />

KOMBINACJE<br />

należącą do kategorii<br />

Matematyczne<br />

Po kliknięciu przycisku OK wyświetlony zostanie formularz Argumenty funkcji zawierający<br />

pola, w których należy wprowadzić odpowiednie dane wejściowe, tak jak na<br />

rysunku 2.2. Dane wejściowe można wpisać w pola tekstowe (jak na rysunku) lub „wybrać”<br />

je, odwołując się do komórek arkusza (klikając wcześniej przyciski służące do<br />

zwijania formularza Argumenty funkcji). Zwróćmy uwagę, że formularz można przesunąć<br />

na inną niż standardowa pozycję. Kliknięcie przycisku OK na formularzu lub<br />

przycisku zatwierdzenia w wierszu edycji spowoduje wprowadzenie formuły do arkusza<br />

kalkulacyjnego.<br />

Rysunek 2.2.<br />

Tworzenie formuły<br />

KOMBINACJE<br />

w formularzu<br />

Argumenty funkcji<br />

Oprócz formularza Argumenty funkcji, zawierającego dane wejściowe dla funkcji<br />

, na rysunku 2.2 widać również wiersz Edycja przedstawiający taką postać<br />

formuły, w jakiej pojawi się ona w komórce arkusza, oraz wciśnięty przycisk Wstaw<br />

funkcję. Zwróćmy też uwagę na przycisk Wklej nazwy (oznaczony jako =ab), ułatwiający<br />

wklejanie do formuły komórek, którym nadano nazwę (nadawanie nazw zakresom<br />

komórek oraz odwoływanie się do zakresów za pomocą nazw zostanie przedstawione<br />

w punkcie 2.10.).


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 23<br />

Podobnie jak funkcje <strong>Excela</strong> przycisk Wstaw funkcję umożliwia dostęp do kategorii<br />

funkcji zdefiniowanych przez użytkownika, opisanych wz rozdziale 4.<br />

Znamy już sposób korzystania z funkcji, a zatem w następnych punktach przedstawimy<br />

niektóre funkcje matematyczne i statystyczne.<br />

2.2. Funkcje matematyczne<br />

Spośród funkcji należących do kategorii Matematyczne zastosujemy funkcje ,<br />

, , , oraz .<br />

Funkcja zwraca wartość funkcji potęgowej exp(x) lub e x . Na przykład:<br />

zwróci wartość liczby e (2,7183, jeśli sformatujemy ją do czterech<br />

miejsc po przecinku);<br />

zwróci wartość e 2 (7,3891 — z czterema cyframi po przecinku);<br />

zwróci wartość 1/e, czyli e –1 (0,36788 — z pięcioma cyframi<br />

po przecinku).<br />

W obliczeniach finansowych przepływy pieniężne zachodzące w różnym czasie przekształca<br />

się w wartości przyszłe (lub teraźniejsze), przykładając czynniki kapitalizacji<br />

(lub dyskontowe). W przypadku kapitalizacji ciągłej stopą procentową równą r czynnik<br />

kapitalizacji w jednym roku ma wartość exp(r), a jeśli kapitalizacja odbywa się raz<br />

do roku, wówczas odpowiadającą jej roczną stopę procentową r a oblicza się za pomocą<br />

wyrażenia:<br />

r a<br />

= exp( r)<br />

−1<br />

Kapitalizacja ciągła oraz zastosowanie funkcji zostanie zilustrowane w punkcie 2.7.1<br />

dotyczącym tabel z danymi.<br />

Funkcja zwraca wartość logarytmu naturalnego liczby . Liczba ta musi być<br />

dodatnia, bo w przeciwnym razie funkcja zwróci wartość oznaczającą przepełnienie<br />

liczbowe. Na przykład:<br />

zwróci wartość ,<br />

zwróci wartość ,<br />

zwróci wartość ,<br />

zwróci wartość .<br />

W finansach często wykorzystuje się logarytmy (naturalne) zysków, stosując funkcję<br />

do przekształcania kwoty zysków w ich logarytmy.<br />

Funkcja zwraca wartość pierwiastka kwadratowego liczby . Oczywiście<br />

musi być liczbą dodatnią, w przeciwnym razie funkcja zwróci wartość <br />

oznaczającą przepełnienie liczbowe.


24 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Funkcja generuje losową liczbę o rozkładzie jednostajnym, większą lub równą<br />

zero i mniejszą od jeden. Liczba ta zmienia się po każdym przeliczeniu arkusza. <br />

można zastosować do wprowadzania probabilistycznej zmienności w symulacji Monte<br />

Carlo wartości opcji.<br />

Funkcja zwraca silnię liczby, równą ∗∗∗∗. Na<br />

przykład:<br />

zwróci wartość równą .<br />

Funkcja zwraca liczbę kombinacji (podzbiorów<br />

o rozmiarze ), jakie można utworzyć z podanej liczby elementów<br />

(). Podzbiory mogą mieć dowolny porządek. Na przykład, jeśli cena udziału<br />

zmienia się w kierunku „góra” lub „dół” w czterech odrębnych okresach, wówczas<br />

liczba sekwencji z trzema wzrostami (i jednym spadkizem) wynosi:<br />

lub równoważnie ,<br />

czyli mogą wystąpić cztery sekwencje: „góra-góra-góra-dół”, „góra-góra-dół-góra”,<br />

„góra-dół-góra-góra” i „dół-góra-góra-góra”. W ujęciu statystycznym <br />

oznacza liczbę kombinacji trzech spośród czterech elementów, co zwykle zapisuje się<br />

jako 4 C 3 (lub w postaci ogólnej n C r ).<br />

Excel udostępnia funkcje służące do transponowania macierzy, mnożenia macierzy oraz<br />

do odwracania macierzy kwadratowych. Są to następującze funkcje:<br />

, która zwraca transpozycję tablicy;<br />

, która zwraca iloczyn dwóch tablic;<br />

, która zwraca macierz odwrotną podanej tablicy.<br />

Wszystkie należą do kategorii funkcji matematycznych. Być może przed poznaniem<br />

tych funkcji niektórym czytelnikom przyda się krótkie wprowadzenie do teorii macierzy,<br />

dlatego zamieściliśmy je na końcu tego rozdziałzu (patrz punkt 2.13).<br />

2.3. Funkcje statystyczne<br />

Excel udostępnia kilka funkcji umożliwiających szybkie podsumowywanie cech zestawu<br />

danych (czyli „tablicy”, jeśli zastosujemy terminologię <strong>Excela</strong>). Są to funkcje <br />

zwracająca wartość średnią, , która zwraca<br />

wartość odchylenia standardowego, oraz i zapewne znane<br />

już czytelnikowi.<br />

Istnieje kilka użytecznych funkcji służących do rozpoznawania rozkładu zestawów<br />

danych o umiarkowanych rozmiarach, które warto poznać. Na przykład funkcja <br />

wyznacza wartości kwartyli na podstawie wartości percentyli zestawu danych, a funkcja<br />

zwraca pełen rozkład częstości pogrupowanego zestazwu danych.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 25<br />

W Excelu istnieją również funkcje dotyczące różnych teoretycznych rozkładów prawdopodobieństwa,<br />

w szczególności są to funkcje dotyczące rozkładu normalnego: <br />

i dla standardowego rozkładu normalnego,<br />

w którym średnia ma wartość 0, a odchylenie standardowe wynosi 1, oraz <br />

i dla dowolnego rozkładu normalnego.<br />

Innymi użytecznymi funkcjami z kategorii funkcji statystycznych są te operujące na<br />

dwóch zmiennych, zwracające wiele różnych wartości wykorzystywanych w analizie<br />

korelacji i regresji. Na przykład:<br />

,<br />

,<br />

,<br />

,<br />

,<br />

.<br />

Istnieje również mało znana funkcja , która zwraca podstawowe<br />

statystyki regresji w postaci tablicy. Większość wymienionych funkcji zostanie<br />

bardziej szczegółowo przedstawiona w punkcie 2.11 opisującym regresję. Wyniki<br />

ich działania porównamy z danymi wyjściowymi regreszji, zwracanymi przez procedurę<br />

Analiza danych Regresja.<br />

W następnym punkcie na podstawie arkuszy Częstość i SNorm z pliku ZMFExcel.xls<br />

wyjaśnimy, w jaki sposób należy stosować , oraz inne funkcje rozkładu<br />

normalnego.<br />

2.3.1. Zastosowanie funkcji CZĘSTOŚĆ<br />

Funkcja oblicza częstość, z jaką wartości<br />

z zestawu danych występują w określonych przedziałach, i zwraca je w postaci<br />

pionowej tablicy. Parametr jest zbiorem przedziałów, w jakie<br />

pogrupowano wartości. Funkcja zwraca dane wyjściowe w postaci tablicy, dlatego<br />

koniecznie należy zaznaczyć zakres komórek arkusza, w których zostaną wyświetlone<br />

dane wyjściowe, przed wprowadzeniem funkcji.<br />

Sposób stosowania funkcji objaśnimy na podstawie przykładowego arkusza<br />

Częstość z pliku ZMFExcel.xls. Jak widać na rysunku 2.3, w wierszach od czwartego<br />

do siódmego podsumowano miesięczne stopy zwrotu z kolumn D10:D71 oraz logarytmy<br />

stóp zwrotu (obliczone za pomocą funkcji ) z kolumn E10:E71. Załóżmy, że<br />

naszym celem jest otrzymanie rozkładu częstości logarytmów stóp zwrotu (E10:E71),<br />

czyli tak zwanej „tablicy_danych”. Chcielibyśmy w ten sposób sprawdzić, czy rozkład<br />

tych stóp zwrotu jest zbliżony do normalnego. Najpierw musimy zdefiniować przedziały<br />

grupowania danych. Analiza maksymalnej i minimalnej wartości logarytmu stóp zwrotu<br />

wskazuje, że zakres liczb –0,16 do +0,20 najlepiej jest podzielić na 10 – 12 przedziałów.<br />

Wartości wpisane w komórkach G5:G14 stanowią górne granice „przedziałów”,<br />

na jakie dzielimy logarytmy stóp zwrotu.


26 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.3.<br />

Arkusz służący<br />

do obliczania<br />

rozkładu<br />

częstości<br />

logarytmów<br />

stóp zwrotu<br />

Rysunek 2.4.<br />

Rozkład częstości<br />

logarytmów<br />

stóp zwrotu<br />

z rozkładami<br />

częstości<br />

procentowych<br />

i skumulowanych<br />

Aby prawidłowo wprowadzić funkcję , należy zaznaczyć zakres komórek<br />

H5:H15. Następnie należy wpisać znak i kliknąć przycisk Wstaw funkcję (oznaczony<br />

jako fx), aby uzupełnić składnię funkcji:<br />

<br />

Po wpisaniu nawiasu zamykającego „)” i pozostawieniu kursora w wierszu edycji <strong>Excela</strong>,<br />

należy wprowadzić funkcję do arkusza i, trzymając wciśnięte klawisze Ctrl i Shift, nacisnąć<br />

klawisz Enter. (Konieczne będzie użycie trzech palców, gdyż w przeciwnym razie<br />

funkcja nie zostanie wprowadzona. Jeśli mimo tego operacja się nie powiedzie, należy<br />

pozostawić zaznaczenie zakresu komórek wyjściowych, nacisnąć klawisz Edycja (F2),<br />

wyedytować formułę, jeśli zajdzie taka konieczność, po czym jeszcze raz nacisnąć<br />

Ctrl+Shift+Enter.)<br />

Teraz w komórkach G5:G15 powinna być widoczna formuła zamknięta w nawiasach<br />

klamrowych () oraz tablica częstości. Wyniki przedstawione są na rysunku 2.4.<br />

W komórce H17 zastosuj funkcję , aby sprawdzić, że częstości sumują się do .<br />

Interpretując wyniki, można powiedzieć, że nie istnieją logarytmy stóp zwrotu mające<br />

wartość poniżej –0,16, istnieje sześć wartości z przedziału od –0,16 do –0,12 i nie ma<br />

wartości przekraczających 0,20 (dolna komórka tablicy CZĘSTOŚĆ, czyli G15, zawiera<br />

liczbę wartości przekraczających górną granicę przedzziału, wynoszącą 0,20).


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 27<br />

Ponieważ funkcja zwraca tablicę, nie ma możliwości zmiany pojedynczych<br />

komórek. Jeśli zajdzie konieczność zdefiniowania innej liczby przedziałów, niezbędne<br />

będzie usunięcie tablicy wyjściowej i wprowadzenie fzunkcji na nowo.<br />

Pomocne może okazać się przekształcenie częstości w częstości procentowe (względem<br />

rozmiaru zestawu danych, zawierającego 62 wartości), a następnie obliczenie skumulowanych<br />

częstości procentowych tak, jak w kolumnach I oraz J na rysunku 2.4. Formuły<br />

częstości procentowych i skumulowanych częstości procentowych można przeanalizować<br />

w arkuszu Częstość.<br />

Najlepszym sposobem zaprezentowania skumulowanych częstości procentowych jest<br />

zamieszczenie ich na wykresie XY i połączenie punktów danych linią bez znaczników.<br />

Aby utworzyć wykres jak na rysunku 2.5, należy zaznaczyć jako dane źródłowe zakresy<br />

G5:G14 i J5:J14. W celu jednoczesnego zaznaczenia zakresów komórek, które nie<br />

sąsiadują ze sobą, należy najpierw zaznaczyć pierwszy zakres, a następnie trzymając<br />

wciśnięty klawisz Ctrl, zaznaczyć drugi i kolejne zakresy.<br />

Rysunek 2.5. Wykres skumulowanych częstości procentowych (dane rzeczgywiste oraz wartości<br />

ścisłego rozkładu normalnego)<br />

Jeśli stopy zwrotu mają rozkład normalny, rozkład skumulowany powinien mieć kształt<br />

zbliżony do litery S (jak linia przerywana). Rzeczywiste wartości logarytmów stóp<br />

zwrotu odbiegają nieco od wartości rozkładu normalnego, co może wynikać ze skośności.<br />

2.3.2. Zastosowanie funkcji KWARTYL<br />

Funkcja zwraca kwartyl zestawu danych. Druga dana<br />

wejściowa, kwartyl, jest liczbą całkowitą określającą, który kwartyl ma zostać zwrócony:<br />

jeśli będzie mieć wartość 0, wówczas zwrócona zostanie najmniejsza wartość<br />

z tablicy; jeśli 1, zwrócony zostanie kwartyl pierwszy (czyli 25. percentyl tablicy); jeśli 2,<br />

zwrócona zostanie mediana (percentyl 50.); jeśli 3, kwartyl trzeci (percentyl 75.); jeśli 4,<br />

zwrócona zostanie wartość maksymalna.<br />

Dzięki kwartylom można szybko i stosunkowo łatwo uzyskać skumulowany rozkład<br />

zestawu danych. Na przykład wpisanie w komórce H22 na rzysunku 2.6 formuły:


28 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.6. Kwartyle logarytmów stóp zwrotu z arkusza Częstość<br />

gdzie G22 zawiera wartość całkowitą 1, spowoduje zwrócenie wartości pierwszego<br />

kwartyla. Wyświetlona zostanie liczba –0,043 informująca, że 25% pozycji z zestawu<br />

danych ma wartość od niej niższą. Drugi kwartyl o warztości 0,028 wyznacza medianę,<br />

a kwartyl trzeci, równy 0,075, wyznacza wartość, poniżej której znajduje się 75% pozycji<br />

zestawu danych. Rysunek 2.6 przedstawia wykres XY utworzony na podstawie<br />

zakresu H21:I25, na którym zaznaczono punkty danych. Linia wartości skumulowanych,<br />

wyznaczona na podstawie tylko pięciu punktów danych, jest bardzo zbliżona do<br />

jej dokładniejszej wersji z rysunku 2.5.<br />

Funkcję zastosujemy w punkcie 3.5 jako przykład obsługi tablic w <strong>VBA</strong>.<br />

Powiązana z nią funkcja , zwracająca wartość -tego percentylu<br />

zestawu danych, zostanie wykorzystana w punkcie 4.7, w przykładzie kodowania<br />

funkcji tablicowej.<br />

2.3.3. Zastosowanie funkcji <strong>Excela</strong><br />

rozkładu normalnego<br />

Funkcje statystyczne <strong>Excela</strong> dotyczące rozkładu normalnego noszą nazwy rozpoczynające<br />

się od słów , a niektóre z nich zawierają dodatkowo literę S<br />

wskazującą, że domyślnie przyjmuje się w nich założenie o standardowym rozkładzie<br />

normalnym.<br />

Funkcja zwraca funkcję rozkładu skumulowanego dla standardowego<br />

rozkładu normalnego. Funkcja <br />

zwraca wartości dla podanych prawdopodobieństw.<br />

Nieco bardziej uniwersalna funkcja <br />

dotyczy dowolnego rozkładu normalnego. Jeśli parametr wejściowy<br />

będzie miał wartość (lub ), funkcja zwróci wartości dla funkcji<br />

rozkładu skumulowanego; jeśli będzie miał wartość (lub ), zwrócona<br />

zostanie funkcja gęstości prawdopodobieństwa.<br />

Rysunek 2.7 przedstawia arkusz Norm zawierający formułę dla gęstości prawdopodobieństwa<br />

w komórce C5 oraz formułę dla prawdopodobieństwa lewostronnego w komórce<br />

D5. W obydwu formułach zastosowano funkcję ze średnią i odchyleniem<br />

standardowym zdefiniowanymi odpowiednio jako 0 i 1. W komórce C5 ostatnia


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 29<br />

Rysunek 2.7.<br />

Funkcje <strong>Excela</strong><br />

rozkładu normalnego<br />

z arkusza SNorm<br />

dana wejściowa () ma w przypadku formuły dla gęstości prawdopodobieństwa<br />

wartość 0, a w komórce D5 zawierającej formułę na prawdopodobieństwo<br />

lewostronne dana ta ma wartość 1.<br />

Wartości rzędnych odpowiadające prawdopodobieństwu lewostronnemu można odczytać<br />

z komórki F5 za pomocą funkcji .<br />

Aby zapoznać się z przedstawionymi funkcjami, wpisz fzormuły i sprawdź ich wyniki.<br />

W poprzednim punkcie wyznaczyliśmy rozkład skumulowanych częstości procentowych<br />

logarytmów stóp zwrotu. Jego normalność można sprawdzić, stosując funkcję<br />

wywoływaną z otrzymanymi wartościami średniej i odchylenia standardowego<br />

i obliczając w ten sposób teoretyczne częstości procentowe. Takie działanie<br />

wykonano w kolumnie K arkusza Częstość. Otrzymane w jej wyniku częstości widnieją<br />

na wykresie na rysunku 2.5 — zostały one nałożone na rozkład rzeczywistych stóp<br />

zwrotu. Na wykresie można zaobserwować pewne odchylenia od rozkładu normalnego.<br />

Excel udostępnia bogaty zbiór funkcji służących do podsumowywania danych oraz<br />

modelowania różnorodnych rozkładów teoretycznych. Będziemy je często stosować<br />

w częściach książki dotyczących akcji i opcji.<br />

2.4. Funkcje wyszukiwania<br />

Funkcje wyszukiwania pozwalają na znajdowanie określonych pozycji na podstawie<br />

podanych parametrów wejściowych w tabelach zawierających powiązane ze sobą<br />

informacje. Na przykład na rysunku 2.8 pokazano efekt zastosowania funkcji <br />

, która dla podanej zmienności zwraca wartość opcji kupna z tabeli zawierającej<br />

wartości zmienności i odpowiadające im wartości opcji kupna (tło teoretyczne<br />

przedstawimy w rozdziale 11. dotyczącym formuły Blackza-Scholesa).<br />

W ogólnym ujęciu funkcja:


30 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.8.<br />

Układ arkusza<br />

Wyszukiwanie<br />

służącego<br />

do wyszukiwania<br />

wartości opcji kupna<br />

odpowiadających<br />

podanej zmienności<br />

wyszukuje wartość w skrajnej lewej kolumnie tabeli (), a następnie<br />

zwraca wartość z tego samego wiersza we wskazanej kolumnie ().<br />

Domyślnie pierwsza kolumna tabeli musi być posortowana w porządku rosnącym (co<br />

oznacza, że będzie miał wartość (albo )). Jeśli tak rzeczywiście<br />

jest, to ostatni parametr wejściowy możnaz tak naprawdę zignorować.<br />

Przykłady wyszukiwania znajdują się w arkuszu Wyszukiwanie. Aby sprawdzić, czy<br />

przedstawione informacje zostały dobrze zrozumiane, można zastosować funkcję <br />

do wyznaczania wysokości prowizji w zależności od wartości sprzedaży,<br />

opierając się na tabeli wskaźników prowizji w komórkach z zakresu F5:G7. Następnie<br />

należy przewinąć arkusz w dół, do tabeli Tabela wyszukiwania wartości Blacka-Scholesa<br />

opcji zakupu przedstawionej na rysunku 2.8.<br />

(dla zmienności) znajduje się w komórce C17 (wartość 20%), <br />

to zakres komórek F17:G27, przy czym zmienności posortowane są rosnąco,<br />

a wartości opcji kupna znajdują się w drugiej kolumnie tabeli . Zatem<br />

wpisana w komórce D18 formuła:<br />

<br />

zwróci wartość opcji kupna równą , odpowiadającą zmienności na poziomie 20%.<br />

jest dopasowywana w przybliżeniu (lub dokładnie) do wartości w pierwszej<br />

kolumnie tabeli, na tej podstawie wybierany jest wiersz i zwracana jest wartość ze<br />

wskazanej kolumny. Spróbuj poeksperymentować, wpisując w komórce C17 różne wartości<br />

zmienności, na przykład czy , i sprawdź, w jaki sposób działa ta funkcja.<br />

Parametr wejściowy ma wartość logiczną ( lub ),<br />

która wskazuje, czy funkcja ma dopasowywać wartości w sposób dokładny czy przybliżony.<br />

Jeśli parametr ten będzie mieć wartość lub zostanie pominięty, dopasowywanie<br />

będzie miało charakter przybliżony. Jeśli wartość dokładnie odpowiadająca<br />

szukanej wartości nie zostanie znaleziona, funkcja zwróci wartość największą, lecz<br />

nie większą od wartości . Jeżeli natomiast <br />

będzie mieć wartość , wówczas wyszuka wartość dokładnie<br />

odpowiadającą szukanej wartości lub zwróci wartość błzędną .<br />

Istnieje również pokrewna funkcja wyszukująca wartości w górnym<br />

wierszu tabeli i odczytująca wartości ze wskazanegoz wiersza.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 31<br />

Rysunek 2.9.<br />

Formuły funkcji<br />

i ich wyniki<br />

w arkuszu<br />

Wyszukiwanie<br />

Kolejnymi funkcjami wyszukiwania są oraz , również przedstawione<br />

na rysunku 2.8. Funkcja <br />

zwraca względną pozycję takiej danej z tabeli zawizerającej jedną<br />

kolumnę (lub wiersz), która pasuje do podanej wartości w podanej kolejności (<br />

). Należy zwrócić uwagę, że funkcja zwróci położenie w tabeli, a nie samą<br />

wartość.<br />

Jeśli wartością parametru będzie , funkcja zwróci położenie danej<br />

dokładnie odpowiadającej szukanej wartości (), bez względu na porządek<br />

tablicy. Jeśli jego wartością będzie , zwrócone zostanie położenie wartości<br />

w przybliżeniu odpowiadającej szukanej wartości przy założeniu, że tablica jest uporządkowana<br />

rosnąco. Jeżeli natomiast będzie równy , wówczas funkcja<br />

zwróci położenie wartości w przybliżeniu odpowizadającej wartości <br />

zakładając, że tablica jest posortowana w porządku mzalejącym.<br />

Na rysunku 2.8 wartości opcji kupna znajdujące się w kolumnie G są uporządkowane<br />

rosnąco. Aby znaleźć pozycję wartości z tablicy, która odpowiada wartości 9,73, formuła<br />

w komórce D22 powinna mieć postać:<br />

<br />

Zwróci ona wartość wskazującą na szóstą pozycję w tablicy G17:G27.<br />

Funkcja zwraca wartość z tablicy, położoną<br />

w wierszu i kolumnie o podanych numerach. Numery kolumny i wiersza znajdujące się<br />

w komórkach C25 i C26 zapewniają, że wyrażenie , przedstawione na rysunku<br />

2.9, zwróci wartość z szóstego wiersza drugiej kolumnyz tablicy F17:G27.<br />

Jeśli tablica posiada tylko jedną kolumnę (lub tylko jeden wiersz), wówczas <br />

(albo ) jest niepotrzebny i zostawia się go pustym. Można sprawdzić, jak<br />

zadziała w przypadku takich tablic, zmieniając dane wejściowe w formule znajdującej<br />

się w komórce D27.<br />

Funkcje , i będziemy stosować w części książki<br />

dotyczącej akcji.


32 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

2.5. Inne funkcje<br />

Opracowując formuły w arkuszach tam, gdzie było to możliwe, staraliśmy się tworzyć<br />

formuły „ogólne”, których składnia uwzględniałaby pokrewne lecz różne przypadki.<br />

Na przykład wartość przepływu pieniężnego w którymś roku dla którejś z obligacji<br />

z rysunku 2.10 mogłaby być zerowa, równa wartości kuponu lub równa wartości obligacji<br />

powiększonej o wartość kuponu.<br />

Rysunek 2.10.<br />

Formuła ogólna<br />

zawierająca<br />

różne adresy<br />

i zagnieżdżone<br />

funkcje JEŻELI<br />

z arkusza Obligacje<br />

Funkcja zwróci odmienne wyniki dla każdego z dwóch warunków. Można również<br />

napisać zagnieżdżoną instrukcję w taki sposób, by mogła zwracać trzy różne<br />

wyniki (a nawet więcej, jeśli zagnieżdżenie zostanie rozwinięte na dalsze poziomy). Formuła<br />

przepływu pieniężnego w komórce C11 zawierająca jeden poziom zagnieżdżenia:<br />

<br />

zwróci wartości przepływów pieniężnych dla każdego typu obligacji i dla każdego roku,<br />

jeśli zostanie skopiowana do komórek z zakresu C11:H13.<br />

W przypadku obligacji typu 1. wartość przepływu pieniężnego będzie zależeć od roku<br />

(komórka B11) oraz terminu wykupu (C6). Jeśli rok będzie wcześniejszy niż termin<br />

wykupu (), wartość przepływu pieniężnego będzie równa wartości kuponu<br />

z komórki C5; jeśli osiągnięty zostanie termin wykupu (), wartość przepływu<br />

pieniężnego będzie równa wartości obligacji powiększonej o wartość kuponu ();<br />

w pozostałych przypadkach () przepływ pieniężny będzie miał wartość 0. Zagnieżdżona<br />

instrukcja obsługuje przypadki, gdy termin wykupu obligacji został osiągnięty<br />

lub przekroczony, a pierwszy warunek w zewnętrznej instrukcji obsługuje<br />

przypadki płatności kuponowych.<br />

W formule zastosowano „adresowanie mieszane”, aby zapewnić, że po jej skopiowaniu<br />

zmienią się odpowiednio znajdujące się w niej adresy komórek. Napisaliśmy i ,<br />

aby zapewnić, że po wkopiowaniu formuły kolumna C i wiersze 5. i 6. nadal będą odwoływać<br />

się do odpowiedniego terminu wykupu i wartości kuponu. Jednak zmieni<br />

się na oraz dla innych lat. Napisaliśmy , dzięki czemu po skopiowaniu<br />

formuły do kolumny D rok nadal będzie odczytywany z kolumny B, natomiast i <br />

zmienią się na i .<br />

Dokładne przemyślenie i napisanie tej formuły zwróci się z nawiązką, jeśli weźmiemy pod<br />

uwagę czas, jaki zaoszczędzimy w trakcie powielaniaz jej w ramach większego modelu.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 33<br />

2.6. Narzędzia inspekcji<br />

Rysunek 2.11.<br />

Udostępnianie<br />

paska narzędzi<br />

Inspekcja formuł<br />

zawierającego<br />

najważniejsze<br />

przyciski<br />

Pracując z formułami o dowolnej złożoności, warto jest mieć cały czas pod ręką przyciski<br />

uruchamiające narzędzia Inspekcji, umieszczone na przykład na pasku narzędzi.<br />

Można je uruchomić poprzez menu, wybierając pozycję Widok, a następnie Paski<br />

narzędzi i Dostosuj. Na ekranie pojawi się okno dialogowe Dostosuj przedstawione<br />

na rysunku 2.11, na którym należy zaznaczyć pasek narzędzi Inspekcja formuł — stanie<br />

się on wówczas widoczny.<br />

Najważniejsze przyciski widoczne są na rysunku 2.11 i noszą nazwy, poczynając od<br />

strony lewej, Śledź poprzedniki, Usuń wszystkie strzałki oraz Śledź zależności.<br />

Wróćmy jednak do arkusza. Zaznacz w nim komórkę C11 i kliknij przycisk Śledź<br />

poprzedniki, aby znaleźć te komórki, których wartości wykorzystywazne są w komórce<br />

C11. Efekt jest widoczny na rysunku 2.12, na którym widać również komórki zasilające<br />

komórkę F13. Aby usunąć wszystkie linie, kliknij przyciszk Usuń wszystkie strzałki.<br />

Rysunek 2.12.<br />

Efekt działania<br />

narzędzia<br />

Śledź poprzedniki<br />

zastosowanego<br />

w arkuszu Obligacje<br />

W oknie dialogowym Dostosuj można dostosowywać paski narzędzi według własnych<br />

upodobań. Po kliknięciu zakładki Polecenia i wybraniu odpowiedniej kategorii można<br />

przenieść wybrane narzędzia znajdujące się na liście poleceń — w tym celu należy<br />

zaznaczyć dany przycisk i przenieść go na pasek narzędzi. Możliwe jest również działanie<br />

odwrotne: zaznaczenie i przeniesienie przycisku poza pasek narzędzi doprowadzi<br />

do przeniesienia go do okna narzędziowego.


34 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

2.7. Tabele danych<br />

Tabele danych pozwalają na wykonywanie sekwencji powtarzalnych obliczeń wartości<br />

formuł znajdujących się w komórkach bez konieczności ponownego ich wpisywania<br />

czy kopiowania. W skoroszycie ZMFExcel można znaleźć kilka przykładowych tabel<br />

danych. Wykorzystując obliczanie czynnika dyskontowego i kapitalizacji w arkuszu<br />

KapitalTabD, przedstawiamy tabelę danych z jedną zmienną wejściową, jak również<br />

tabelę z dwiema zmiennymi wejściowymi. Kolejny arkuszz, noszący nazwę BSTabD,<br />

zawiera inne przykłady zastosowania tabel danych, które jeszcze bardziej powinny<br />

przybliżyć ich rolę.<br />

2.7.1. Tworzenie tabel danych<br />

z jedną zmienną wejściową<br />

Rysunek 2.13 przedstawia arkusz, w którym obliczany jest czynnik kapitalizacji odpowiadający<br />

kapitalizacji ciągłej dla stopy nominalnej równej 5% w okresie jednego roku<br />

(wynik widoczny jest w komórce C10). Czynnik dyskontowy odpowiadający stopie<br />

nominalnej w wysokości 5% dla jednego roku znajduje się w komórce D10. Na arkuszu<br />

przedstawiono również formuły znajdujące się w komórkach, służące do obliczania<br />

obu czynników.<br />

Rysunek 2.13.<br />

Układ tabeli danych<br />

z jedną zmienną<br />

wejściową,<br />

znajdującej się<br />

w arkuszu<br />

KapitalTabD<br />

Załóżmy, że chcemy zbudować tabelę czynników kapitalizacji i dyskontowych dla<br />

okresów o różnej długości, na przykład t = 1, 2, aż do 10 lat. Aby wykorzystać do tego<br />

celu tabelę danych, należy najpierw w odpowiedni sposób rozmieścić dane, tak jak<br />

w wierszu 16. i następnych.<br />

Formuła (formuły) służące do wykonywania obliczeń znajdują się w górnym wierszu<br />

tabeli (wiersz 16.). Zatem formuła w komórce D16 ma postać , czyli w komórce<br />

stosowana jest po prostu formuła z komórki C10. Analogicznie, w komórce E16 wpisano


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 35<br />

Rysunek 2.14.<br />

Tabela danych<br />

zawierająca<br />

wartości<br />

czynników<br />

kapitalizacji<br />

i dyskontowych<br />

dla okresów<br />

o różnej długości<br />

formułę . Lista wymaganych długości okresów dla danej wejściowej t znajduje<br />

się w kolumnie C i zaczyna się w wierszu następnym po wierszu, w którym widnieją<br />

formuły. Zwróćmy uwagę, że komórka C16, znajdująca się na przecięciu wiersza z formułami<br />

i kolumny z wartościami, pozostała pusty. W przykładzie przedstawionym na<br />

rysunku 2.13 tak zwanym zakresem tabeli jest zakres C16:Ez26.<br />

Teraz arkusz jest już przygotowany do przeprowadzania obliczeń na tabeli danych.<br />

Wystarczy więc:<br />

Zaznaczyć zakres tabeli, czyli komórki z zakresu C16:E26.<br />

W menu głównym wybrać pozycję Dane, a następnie Tabela.<br />

W oknie dialogowym w polu Kolumnowa komórka wejściowa wpisać: <br />

następnie kliknąć OK.<br />

Wyniki tej operacji są pokazane na rysunku 2.14, na którym dla zwiększenia czytelności<br />

odpowiednio sformatowano niektóre komórki. W komórkach tabeli widnieją wartości<br />

liczbowe, choć w rzeczywistości zawierają one formuły tablicowe. Są to wartości<br />

dynamiczne, co oznacza, że będą obliczane na nowo za każdym razem, gdy zmianie<br />

ulegnie któryś z parametrów, na przykład stopa procentowa r, lub gdy zmieniona zostanie<br />

jedna lub więcej wartości zmiennej t. Można się o tym przekonać, nadając stopie<br />

procentowej w komórce C5 wartość 6% i obserwując zmianę wartości w komórkach<br />

tabeli. Aby kontynuować lekturę, należy ustawić stopę procentową z powrotem na 5%.<br />

2.7.2. Tworzenie tabel danych<br />

z dwiema zmiennymi wejściowymi<br />

Załóżmy, że chcielibyśmy obliczyć czynniki dyskontowe (za pomocą formuły z komórki<br />

C11) odpowiadające nie tylko różnym okresom, ale również różnym stopom procentowym.<br />

Ponownie pierwszą czynnością będzie odpowiednie ułożenie obu zmiennych<br />

wejściowych, zanim wywołana zostanie procedura Tabela. Jeden z możliwych<br />

do zastosowania układów przedstawiono na rysunku 2.15.z<br />

Jak widać na rysunku, obszarem tabeli jest zakres komórek C30:I40. W pierwszej<br />

kolumnie znajdują się długości okresu t (kolumnowej zmiennej wejściowej), dla których<br />

należy obliczyć współczynniki dyskontowe (dane kolumnowe). W wierszu 30.<br />

znajduje się pięć wartości stopy procentowej r (dane wierszowe). Komórka w lewym


36 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.15.<br />

Układ tabeli danych<br />

z dwiema zmiennymi<br />

wejściowymi,<br />

znajdującej się<br />

w arkuszu<br />

KapitalTabD<br />

górnym rogu tabeli (C30) zawiera formułę, na podstawie której zostaną obliczone wartości<br />

współczynnika dla wszystkich kombinacji wartości stopy procentowej i okresu.<br />

Formuła w komórce C30 ma postać , a więc stanowi odniesienie do formuły obliczania<br />

współczynnika dyskontowego.<br />

Aby zakończyć tworzenie tabeli danych, należy:<br />

Zaznaczyć zakres tabeli, czyli komórki C30:I40.<br />

W menu wybrać pozycje Dane i Tabela.<br />

W oknie dialogowym w polu: Kolumnowa komórka wejściowa wpisać <br />

Wierszowa komórka wejściowa wpisać a następnie kliknąć OK.<br />

Wyniki tych czynności są przedstawione na rysunku 2.16. Można sprawdzić, że wartości<br />

otrzymane dla stopy równej 5% zgadzają się z wartościami otrzymanymi wcześniej,<br />

widocznymi na rysunku 2.14.<br />

Rysunek 2.16.<br />

Tabela danych<br />

zawierająca<br />

czynniki dyskontowe<br />

dla różnych<br />

stóp procentowych<br />

i okresów<br />

o różnej długości<br />

Tabele danych nadają się przede wszystkim do przeprowadzania analiz typu „co jeśli”<br />

w niezwykle prosty sposób. Dobrą wiadomością jest to, że tabele automatycznie uwzględniają<br />

zmiany wprowadzone w modelu. Jest jeszcze druga, zła wiadomość: jeśli w arkuszu<br />

znajduje się większa liczba tabel z danymi, ich ciągłe przeliczanie może znacznie<br />

zmniejszyć szybkość, z jaką będą uwzględniane zmiany polegające na dodawaniu<br />

nowych pozycji lub modyfikacji wartości już obecnych w arkuszu. Z tego właśnie powodu<br />

możliwe jest wyłączenie automatycznego przeliczaznia tabel.<br />

Konstruując tabele danych, należy pamiętać o kilku rzezczach:<br />

Obecnie Excel wymaga, by komórki wejściowe tabeli danyzch znajdowały się<br />

w tym samym arkuszu co tabela.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 37<br />

Komórki tabeli danych zawierają formuły tablicowe, czyzli mają one<br />

na przykład postać , gdzie C5 i C7 są komórkami<br />

wejściowymi. Z tego względu nie istnieje możliwość edzytowania pojedynczej<br />

formuły znajdującej się w tabeli.<br />

W celu przebudowania lub rozszerzenia tabeli danych nazleży zaznaczyć<br />

wszystkie komórki zawierające formułę , a następnie z menu<br />

Edycja wybrać pozycję Wyczyść wszystko lub nacisnąć Delete.<br />

Każda zmiana wartości wejściowych lub wartości zmiennzych spowoduje<br />

ponowne przeliczenie tabeli danych, chyba że wyłączonaz zostanie domyślna<br />

metoda automatycznego przeliczania.<br />

W przypadku dużych modeli, w których przeliczanie tabeli po każdorazowej zmianie<br />

zabiera dużo czasu, może zajść konieczność wyłączenia opcji automatycznego przeliczania<br />

tabel danych. W tym celu należy:<br />

z menu wybrać pozycję Narzędzia oraz Opcje,<br />

wybrać zakładkę Przeliczanie, po czym zaznaczyć Automatyczne<br />

z wyjątkiem tabel.<br />

Po wyłączeniu automatycznego przeliczania wszystkie tabele będą ponownie przeliczane<br />

po naciśnięciu klawisza F9.<br />

Jeśli znasz już formułę Blacka-Scholesa wyceny opcji, możesz utrwalić wiedzę na temat<br />

tabel danych, konstruując trzy tabele proponowane w arkuszu BSTabD. Dzięki nim<br />

możliwe będzie przeanalizowanie wrażliwości wartości opcji zakupu z formuły Blacka-<br />

Scholesa na zmiany bieżącej ceny akcji S oraz na zmiany wartości innych zmiennych<br />

wejściowych.<br />

2.8. Wykresy XY<br />

W Excelu można tworzyć wykresy różnych typów, lecz dla celów matematycznych,<br />

naukowych i finansowych zaleca się stosowanie wykreszu XY (Punktowego). Tam,<br />

gdzie nie spowoduje to dwuznaczności, będziemy o tym wykresie mówić po prostu<br />

jako o wykresie XY. Ważną rzeczą jest to, że na wykresie XY obie osie, czyli X i Y,<br />

są skalowane liczbowo. We wszystkich pozostałych wykresach posiadających dwie osie<br />

(w tym w wykresie liniowym) skalowane liczbowo są tylko osie pionowe, natomiast na<br />

osiach X wyświetlane są etykiety.<br />

By utworzyć wykres XY, korzysta się z Kreatora wykresów, który przeprowadza użytkownika<br />

przez cztery kroki noszące nazwy Typ wykresu, Źródło danych, Opcje wykresu<br />

oraz Położenie wykresu. Zakładając, że niemal za każdym razem będziemy tworzyć<br />

wykres XY osadzony w arkuszu, najważniejszym spośród tych czterech kroków będzie<br />

krok drugi — Źródło danych. Kolejne kroki przedstawimy, opierając się na wartościach<br />

z tabeli danych z jedną zmienną wejściową opisaną w zpunkcie 2.7.1 i przedstawioną<br />

na rysunku 2.14. Wartości z tabeli danych, które chcemy zamieścić na wykresie,


38 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

znajdują się w arkuszu KapitalTabD w komórkach z zakresu C17:E26. Kolumna C zawiera<br />

wartości x, a na wykresie mają znaleźć się odpowiadające im wartości z kolumn<br />

D i E. Po zaznaczeniu danych, które chcemy zobaczyć na wykresie, należy wykonać<br />

następujące czynności:<br />

1. Na głównym pasku narzędzi kliknąć przycisk Kreator wykresów<br />

(wyglądający jak miniaturowy wykres). W oknie dialogowzym pierwszego<br />

kroku (widocznym na rysunku 2.17) należy wybrać Typ wykresu — w naszym<br />

przypadku będzie to XY (Punktowy) — oraz jego podtyp: wygładzony<br />

liniowy bez znaczników. Następnie należy kliknąć przyzcisk Naciśnij<br />

i przytrzymaj, aby zobaczyć przykład. Jeśli przykład jest prawidłowy,<br />

przechodzimy dalej, klikając przycisk Dalej.<br />

Rysunek 2.17.<br />

Okno dialogowe,<br />

w którym określa się<br />

typ wykresu<br />

Przycisk<br />

Kreator<br />

wykresów<br />

2. W oknie dialogowym kroku 2. upewnij się, że na zakładcze Zakres danych<br />

widnieje prawidłowy Zakres danych — zauważ, że Excel zintepretuje ten blok<br />

danych jako serię trzech kolumn. Następnie kliknij zakzładkę Serie, na której<br />

zdefiniowane będą wartości X i Y dla nazwy Serie1. Kliknij pole Nazwa<br />

i wprowadź nazwę dla aktywnej serii — w tym celu możzesz zaznaczyć<br />

komórkę arkusza lub wpisać ją ręcznie (np. ). Rysunek 2.18<br />

przedstawia to okno dialogowe na chwilę przed zmianzą nazwy Serie2<br />

na , czyli zawartość komórki E15. Kliknij przycisk Dalej,<br />

by kontynuować.<br />

3. W oknie dialogowym kroku 3. ustaw opcje wykresu: tytułz, linie siatki,<br />

pokazywanie (lub nie) legendy itd. Do naszego wykresu zwystarczy dodać<br />

tytuły i wyłączyć wyświetlanie linii siatki, jak pokzazano to na rysunku 2.19.<br />

Kliknij przycisk Dalej, by kontynuować.<br />

4. W oknie dialogowym kroku 4. należy określić Położenie wykresu. Wykres<br />

może zostać utworzony w postaci obiektu w arkuszu (wyzkresu osadzonego)<br />

lub w oddzielnym arkuszu. Zwykle lepiej jest tworzyć zwykresy osadzone<br />

pozwalające obserwować efekty zmian w danych, jak ma zto miejsce<br />

na rysunku 2.20.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 39<br />

Rysunek 2.18.<br />

Okno dialogowe,<br />

w którym definiuje<br />

się wartości X i Y<br />

danych źródłowych<br />

Rysunek 2.19.<br />

Okno dialogowe,<br />

w którym ustawia się<br />

Opcje wykresu<br />

Rysunek 2.20.<br />

Okno dialogowe,<br />

w którym definiuje się<br />

Położenie wykresu<br />

Aby uzyskać bardziej profesjonalny efekt, we wstępnej wersji wykresu przedstawionego<br />

na rysunku 2.21 należałoby wprowadzić pewne kosmetyczne zmiany, przede<br />

wszystkim korzystając z poleceń Formatuj obszar kreślenia i ustawiając Obszar na<br />

Brak, formatując osie poprzez wywołanie polecenia Formatuj osie i analogicznie Formatuj<br />

tytuł wykresu oraz Formatuj legendę. Często zmian wymagają również skale osi,<br />

rozmiar czcionki w tytułach itd. oraz rozmiar samego wykresu. Czasami będziemy<br />

chcieli, by linie obrazujące serie danych zawierały oznaczenie poszczególnych punktów


40 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.21.<br />

Wstępna wersja<br />

wykresu<br />

utworzona przez<br />

Kreator wykresów<br />

(można to osiągnąć, wracając do serii danych i zmieniając formatowanie). Odpowiednio<br />

modyfikując wstępną wersję wykresu, można otrzymać wersję lepiej wykończoną, taką<br />

jak widoczna na części rysunku 2.14.<br />

2.9. Udostępnianie analizy danych<br />

i Solvera<br />

Excel posiada również pewne dodatkowe moduły dostępne po zainstalowaniu pełnej<br />

wersji, których może brakować, jeśli wybrany został sposób instalacji oszczędzający<br />

przestrzeń na dysku. Będziemy korzystać zarówno z Solvera, jak i z procedury Regresja<br />

dostępnej w Analysis ToolPak, warto więc sprawdzić w menu Narzędzia, czy oba<br />

te narzędzia są dostępne. Na rysunku 2.22 zaznaczone są opcje udostępniające Solvera<br />

oraz Analizę danych. Jeśli któregoś z tych narzędzi nie ma w menu Narzędzia, kliknij<br />

pozycję Dodatki (w tym samym menu). Upewnij się, że zaznaczone są opcje Analysis<br />

ToolPak, Analysis ToolPak — <strong>VBA</strong> oraz Solver, tak jak przedstawia to rysunek 2.22,<br />

a następnie kliknij przycisk OK. Powinno to spowodować, że Solver i Analiza danych<br />

pojawią się w menu Narzędzia.<br />

Korzystanie z Solvera najlepiej można wyjaśnić na przykładzie problemu optymalizacji,<br />

dlatego zajmiemy się nim w punkcie 6.5 części „<strong>Zaawansowane</strong> <strong>modele</strong> akcji”, w którym<br />

za jego pomocą będziemy szukać optymalnych wag portfezla.<br />

Zanim przejdziemy do analizy regresji z <strong>wykorzystaniem</strong> funkcji i Analysis ToolPak,<br />

opiszemy pokrótce nazwy zakresów przydatne do zaznaczania i odwoływania się do<br />

dużych zakresów danych.<br />

2.10. Stosowanie nazw zakresów<br />

Rysunek 2.23 przedstawia początkowe wartości stóp zwrotu z AkcjaA oraz Indeks,<br />

obecnych w arkuszu Beta w skoroszycie ZMFExcel. W następnym punkcie przeprowadzimy<br />

analizę regresji stóp zwrotu z akcji względem stóp zwrotu z indeksu, aby


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 41<br />

Rysunek 2.22.<br />

Menu Narzędzia<br />

zawierające<br />

Analizę danych<br />

i Solvera oraz<br />

okno dialogowe<br />

Dodatki<br />

Rysunek 2.23.<br />

Zakres danych<br />

posiadający nazwę,<br />

przycisk Wklej nazwy<br />

oraz okno dialogowe<br />

Definiuj nazwy<br />

Przycisk Wklej nazwy<br />

sprawdzić, czy istnieje między nimi jakaś zależność. W trakcie definiowania procedur<br />

obliczeniowych pomocne okaże się nadanie „nazw” zakresom komórek zawierających<br />

dane, na przykład dla zakresu danych B5:B64 oraz dla stóp zwrotu<br />

z indeksu z komórek C5:C65.<br />

Po zaznaczeniu zakresu komórek, któremu chcemy nadać nazwę, możemy wpisać ją<br />

w polu nazwy widocznym po lewej stronie zaraz pod głównym paskiem menu, pokazanym<br />

na rysunku 2.23. Od tego momentu nazwa AkcjaA będzie dołączona do zakresu<br />

komórek B5:B64 z arkusza Beta. Inną metodą nadania nazwy zaznaczonemu zakresowi<br />

komórek jest wybranie z menu pozycji Wstaw/Nazwa/Definiuj, a następnie wpisanie


42 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

nazwy w wywołanym oknie dialogowym (również przedstawionym na rysunku<br />

2.23). Od tej chwili możliwe będzie zaznaczanie lub odwoływanie się do komórek<br />

zawierających stopy zwrotu przez podanie nazwy zakresu, na przykład przez wybieranie<br />

pozycji AkcjaA z pola nazw, a także stosowanie ich w funkcjach przy użyciu przycisku<br />

Wklej nazwy.<br />

2.11. Regresja<br />

Zakładamy, że czytelnikowi nieobca jest prosta analiza regresji (z dwiema zmiennymi),<br />

którą będziemy przeprowadzać w części książki dotyczącej akcji. W tym punkcie pokażemy,<br />

w jaki sposób można zastosować <strong>Excela</strong> do wykonania niezbędnych w trakcie tej<br />

analizy obliczeń. W rzeczywistości analizę regresji można przeprowadzać na kilka sposobów,<br />

a główna linia podziału przebiega między zastosowaniem funkcji <strong>Excela</strong> a procedurą<br />

Regresja z Analysis ToolPak. Oba sposoby przedstawimy na przykładzie prostej<br />

analizy regresji między stopami zwrotu z akcji i indeksu znajdującymi się na arkuszu<br />

Beta skoroszytu ZMFExcel: najpierw zastosujemy funkcje <strong>Excela</strong>, a następnie posłużymy<br />

się procedurą Regresja narzędzia Analiza danych. Jeśli te funkcje i procedury nie<br />

są znane czytelnikowi, można przetestować ich działanzie w arkuszu Beta.<br />

Excel udostępnia funkcje dla najczęściej wymaganych statystyk regresji. Na rysunku<br />

2.24 widoczne są funkcje oraz , z których składa się równanie regresji,<br />

a także dwie miary dopasowania, to jest współczynnik R 2 oraz odchylenie standardowe<br />

reszt (funkcja od „regresja błąd standardowy”). W poprzednim punkcie<br />

nadaliśmy zakresom danych nazwy, a więc teraz możemy dołączyć je do okna Wklej<br />

funkcje, klikając przycisk Wklej nazwy. Funkcje te mają charakter dynamiczny, to znaczy<br />

zwracane przez nie wyniki mogą się zmieniać w momencie modyfikacji danych (należących<br />

do zakresów AkcjaA lub Indeks).<br />

Rysunek 2.24.<br />

Funkcje <strong>Excela</strong><br />

do analizy regresji,<br />

znajdujące się<br />

w arkuszu Beta<br />

Oprócz pojedynczych funkcji dostępna jest również funkcja tablicowa , która<br />

na podstawie dwóch kolumn wejściowych ze stopami zwrotu zwraca tablicę zawierającą<br />

podstawowe parametry regresji. Należy pamiętać, by przed wstawieniem funkcji<br />

zaznaczyć odpowiednio duży obszar komórek, w których znajdą się wyniki<br />

jej działania. Dla regresji prostej zwykle wystarczy zaznaczyć obszar o wielkości dwóch<br />

kolumn i pięciu wierszy. Rysunek 2.25 przedstawia formularz Argumenty funkcji, na<br />

którym zdefiniowano funkcję , zaznaczając uprzednio dla<br />

danych wyjściowych zakres komórek F40:G44. Pole Stała pozostało puste, a wartość<br />

wpisana w polu Statystyka zapewnia, że zwrócona zostanie pełna tablica wyników<br />

statystycznych.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 43<br />

Rysunek 2.25.<br />

Definiowanie<br />

funkcji tablicowej<br />

REGLINP<br />

w formularzu<br />

Argumenty funkcji<br />

Na rysunku 2.26 przedstawiono tablicę wyjściową wraz z opisem jej pól. Oprócz nachylenia<br />

i odciętej (nazwanych w arkuszu odpowiednio Beta i Alfa) zwraca również<br />

standardowe wartości błędów oraz podstawową analizęz wariancji.<br />

Rysunek 2.26.<br />

Tablica wyjściowa<br />

funkcji REGLINP<br />

wywołanej na danych<br />

dotyczących stóp<br />

zwrotu, znajdujących<br />

się w arkuszu Beta<br />

Zajmijmy się teraz procedurą Regresja wchodzącą w skład Analysis ToolPak. Aby ją<br />

zdefiniować, wybierz z menu pozycję Narzędzia, potem Analiza danych i Regresja —<br />

pojawi się wówczas okno dialogowe przedstawione na rysunku 2.27. Również w tym<br />

przypadku odwołania do zakresów wejściowych X i Y można zdefiniować, zaznaczając<br />

zakresy komórek lub, jeśli zakresy te zostały nazwane, wklejając ich nazwy. Zwykle<br />

wygodniej jest wskazać lewą górną komórkę zakresu wyjściowego niż zostawiać opcję<br />

domyślną (czyli zapisanie danych wyjściowych w nowym zarkuszu).<br />

Rysunek 2.27.<br />

Definiowanie<br />

parametrów<br />

obliczeniowych<br />

i wyjściowych<br />

procedury Regresja<br />

z Analysis ToolPak


44 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Wyniki działania procedury przedstawiono na rysunku 2.28: odcięta i nachylenie linii<br />

regresji znajdują się odpowiednio w komórkach F23 i F24, a miary dopasowania, czyli<br />

współczynnik R 2 oraz błąd standardowy (odchylenie standardowe reszt), widnieją<br />

w komórkach F12 i F13. Dane wyjściowe mają charakter statyczny, to znaczy tablica<br />

ta jest zrzutem liczb, które nie są w żaden sposób połączone z danymi początkowymi.<br />

Wprowadzenie zmian w danych wejściowych nie spowoduje zmiany wyników analizy<br />

— konieczne jest ręczne jej ponowienie.<br />

Rysunek 2.28. Wyniki działania procedury Regresja z pakietu Analysigs ToolPak, znajdujące się<br />

w arkuszu Beta<br />

Aby statyczności wyników procedury Regresja przeciwstawić dynamiczne wyniki<br />

działania funkcji, załóżmy, że stopę zwrotu z indeksu w czwartym miesiącu poprawiono<br />

na (zamiast dotychczasowej wartości –0,08 w komórce C8). Zmiana tej wartości<br />

spowoduje natychmiastową zmianę wyników działania funkcji w komórkach F31:F34<br />

i F40:G44, dzięki czemu wartość współczynnika (po sformatowaniu wyników)<br />

obniży się z 0,4755 do 0,3260. Natomiast w celu odpowiedniego uaktualnienia<br />

wyników Regresji z Analysis ToolPak należałoby tę procedurę uruchomić jzeszcze raz.<br />

Statyczny charakter danych wyjściowych generowanych przez procedury Analysis<br />

ToolPak sprawia, że są one mniej przydatne do przeprowadzania obliczeń niż odpowiadające<br />

im funkcje <strong>Excela</strong>. Większość z tych procedur napisano w starym makrojęzyku<br />

XLM, obecnym w Excelu w wersji 4. Co gorsza, w przeciwieństwie do większości<br />

funkcji <strong>Excela</strong> włączenie tych procedur do funkcji <strong>VBA</strong> zdefiniowanych przez użytkownika<br />

jest zadaniem skomplikowanym.<br />

2.12. Narzędzie Szukaj wyniku<br />

Szukaj wyniku to kolejna statyczna procedura <strong>Excela</strong>. Narzędzie generuje rozwiązanie<br />

dopasowujące formułę obecną w komórce do liczbowej wartości docelowej. Na przykład<br />

na rysunku 2.29 widać rozbieżność między ceną rynkową (w komórce G8) a ceną Blacka-<br />

Scholesa (w komórce G4) opcji zakupu na akcję. (Wartość wyznaczona na podstawie


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 45<br />

Rysunek 2.29.<br />

Formuła<br />

na obliczenie ceny<br />

Blacka-Scholesa<br />

opcji zakupu<br />

oraz cena rynkowa<br />

na arkuszu BSTabD<br />

formuły Blacka-Scholesa jest uzależniona od zmienności ceny akcji i zawsze uwzględnia<br />

szacunkową zmienność w przyszłości.) Załóżmy, że chcemy znaleźć taki zakres zmienności,<br />

dla którego obie ceny będą równe, albo równoważznie: dla którego różnica między<br />

obiema cenami (w komórce G9) będzie wynosić zero. Do rozwiązania tego problemu<br />

idealnie nadaje się procedura Szukaj wyniku.<br />

Aby zastosować procedurę Szukaj wyniku w arkuszu BSTabD, z menu wybierz pozycję<br />

Narzędzia, a następnie Szukaj wyniku. W polach wpisz wartości widoczne na rysunku<br />

2.30 i kliknij OK. Rozwiązanie wygenerowane przez Szukaj wyniku przedstawiono na<br />

rysunku 2.31: aby cena opcji obliczona na podstawie formuły Blacka-Scholesa była<br />

równa cenie rynkowej, zmienność musi być równa 23%.<br />

Rysunek 2.30.<br />

Ustawienia procedury<br />

Szukaj wyniku<br />

obliczającej zmienność<br />

(C9), dla której<br />

wartość BS jest równa<br />

cenie rynkowej<br />

Rysunek 2.31.<br />

Wygenerowana przez<br />

procedurę Szukaj<br />

wyniku wartość<br />

zmienności, dla której<br />

różnica (w komórce<br />

G9) jest równa zero<br />

Procedura Szukaj wyniku rozpoczyna swe działanie od „odgadniętej” wartości początkowej,<br />

a następnie realizując algorytm iteracyjny, przybliża się do rozwiązania. Faktyczną<br />

wartością początkową jest wartość z komórki wskazanej w polu Zmieniając komórkę<br />

— w tym przypadku jest to zmienność o wartości 20%. Znajdując rozwiązanie problemu,<br />

procedura Szukaj wyniku pozwala na różnicowanie wartości w tylko jednej komórce<br />

wejściowej, podczas gdy Solver (który poznamy w rozdziale 6.) uwzględnia zmienność<br />

kilku komórek wejściowych.<br />

Aby utrwalić swą wiedzę, stosując w arkuszu BSTabD procedurę Szukaj wyniku, znajdź<br />

wartość zmienności, dla której cena rynkowa będzie rózwna 9.


46 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

2.13. Algebra macierzy<br />

i związane z nią funkcje<br />

W algebrze powszechnie stosuje się zapis macierzowy, ponieważ pozwala on na wyrażanie<br />

w zwartej formie układów podobnie zdefiniowanych równań. Zaskakujące może<br />

być to, że działania na macierzach bardzo przypominają zwykłe działania algebraiczne,<br />

jedynie mnożenie macierzy jest nieco bardziej skomplikowane. Excel posiada zbiór<br />

przydatnych funkcji macierzowych znajdujących się w kategorii Matematyczne, których<br />

pełne zrozumienie wymaga przyswojenia sobie podstawowych wiadomości na temat<br />

funkcjonowania macierzy. W następnych punktach objaśnimy zasady zapisu macierzowego<br />

oraz przybliżymy operacje transpozycji, dodawania, mnożenia i odwracania macierzy.<br />

Przykłady ilustrujące te operacje pochodzą z arkusza MacDef, z pliku ZMFExcel.<br />

Czytelnicy posiadający gruntowną wiedzę na temat macierzy mogą od razu przejść do<br />

podsumowania funkcji macierzowych (punkt 2.13.7).<br />

2.13.1. Wprowadzenie do teorii macierzy<br />

W algebrze prostokątne tablice liczb nazywa się macierzami. Pojedyncza kolumna<br />

macierzy to tak zwany wektor kolumnowy i, analogicznie, pojedynczy wiersz macierzy<br />

to wektor wierszowy. W Excelu prostokątne bloki komórek nazywa się tablicami.<br />

Wszystkie przedstawione poniżej bloki liczb można trazktować jako macierze:<br />

2 [ 6 7 ]<br />

⎡ ⎤<br />

⎢ ⎥<br />

⎣4⎦<br />

⎡− 3<br />

⎢<br />

⎢<br />

2<br />

⎢⎣<br />

7<br />

2<br />

20<br />

9<br />

7 ⎤<br />

19<br />

⎥<br />

⎥<br />

21⎥⎦<br />

⎡− 3<br />

⎢<br />

⎢<br />

2<br />

⎢ 7<br />

⎢<br />

⎣ 0<br />

2<br />

20<br />

9<br />

13<br />

7 ⎤<br />

19<br />

⎥<br />

⎥<br />

21⎥<br />

⎥<br />

3 ⎦<br />

gdzie nawiasy | | są standardowym zapisem. Jeśli nazwiemy te macierze odpowiednio<br />

jako x, y, A i B, x będzie wektorem kolumnowym, a y wektorem wierszowym. Macierz<br />

A składa się z trzech wierszy i trzech kolumn, jest więc macierzą kwadratową. B nie<br />

jest natomiast macierzą kwadratową, ponieważ posiada cztery wiersze i trzy kolumny<br />

— jest to więc macierz o wymiarach 4 na 3. Liczba wierszy, r, i kolumn, c, wyznacza<br />

wymiar macierzy, zapisywany czasami w postaci (r×c). Na przykład jeśli:<br />

⎡<br />

x =<br />

2 ⎤<br />

⎢ ⎥ oraz y = [ 6 7 ]<br />

⎣4<br />

⎦<br />

wówczas x jest macierzą o wymiarze (2×1), a y ma wymiar (1×2).<br />

2.13.2. Transpozycja macierzy<br />

Transpozycja macierzy polega na przekształceniu wierszy w kolumny i odwrotnie.<br />

W wyniku transpozycji wektora kolumnowego x otrzymamy więc wektor wierszowy<br />

i oznaczymy go jako x T . We fragmencie arkusza kalkulacyjnego przedstawionego na<br />

rysunku 2.32 widnieją wektory powstałe w wyniku transpozycji wektora kolumnowego<br />

x i wektora wierszowego y.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 47<br />

Rysunek 2.32.<br />

Operacje<br />

na macierzach<br />

wykonane w arkuszu<br />

MacDef<br />

Funkcja zastosowana względem komórek tablicy zwróci jej transpozycję.<br />

Na przykład w wyniku transpozycji wektora x o wymiarze 2 na 1 zapisanego w komórkach<br />

C4:C5 powstanie wektor o wymiarze (1×2). Aby zastosować funkcję ,<br />

zaznacz zakres komórek I4:J4 i wpisz formułę:<br />

<br />

a następnie naciśnij jednocześnie klawisze Ctrl+Shift+Enter. Wynik tej operacji przedstawia<br />

rysunek 2.32.<br />

2.13.3. Dodawanie macierzy<br />

Dodawanie dwóch macierzy sprowadza się do dodania odpowiadających sobie pozycji<br />

tych macierzy. Aby działanie to było możliwe, dodawane do siebie macierze muszą<br />

mieć ten sam wymiar. Macierzy x i y nie można więc do siebie dodać, natomiast x i y T<br />

mają ten sam wymiar 2 na 1, a więc można przeprowadzić na nich dodawanie. Wynikiem<br />

tego działania będzie:<br />

x + y T =<br />

⎡2 ⎤ ⎡6 ⎤ ⎡ 8 ⎤<br />

⎢ ⎥ +<br />

⎣4<br />

⎢ ⎥ =<br />

⎦ ⎣7<br />

⎢ ⎥ ⎦ ⎣11<br />

⎦<br />

= z (na przykład)<br />

Aby pomnożyć wektor y przez, powiedzmy, 10, należy pomnożyć każdą jego pozycję<br />

przez 10. Zatem:<br />

10y = 10 ∗ [ 6 7]<br />

= [ 60 70]<br />

Ten sam wynik otrzymamy, dodając y do siebie 10 razy.<br />

2.13.4. Mnożenie macierzy<br />

Aby możliwe było mnożenie dwóch macierzy, muszą one mieć wspólne wymiary, to<br />

znaczy liczba kolumn jednej macierzy musi być równa liczbie wierszy drugiej. W skrócie<br />

mówi się o tym jako o „zgodności wymiarów”. Aby móc obliczyć iloczyn xy, kolumny<br />

macierzy x muszą odpowiadać wierszom macierzy y, czyli mnożąc (2×1) razy (1×2)<br />

otrzymamy na wyjściu macierz (2×2).<br />

Na rysunku 2.32 elementy iloczynu xy widocznego w komórkach C10:D11 zostały<br />

obliczone następująco:


48 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

2 ∗ [ 7]<br />

⎡ ⎤<br />

⎢ ⎥<br />

⎣4⎦<br />

⎡2<br />

∗ 6 2 ∗ 7⎤<br />

⎡12<br />

14⎤<br />

6 = ⎢ ⎥ =<br />

⎣4<br />

∗ 6 4 ∗ 7<br />

⎢ ⎥ ⎦ ⎣24<br />

28 ⎦<br />

to znaczy element w pierwszym wierszu i pierwszej kolumnie iloczynu xy jest wynikiem<br />

mnożenia poszczególnych elementów z pierwszego wiersza macierzy x przez elementy<br />

z pierwszej kolumny macierzy y itd.<br />

Natomiast iloczyn xy będzie miał wymiar (1×2) razy (2×1) równy (1×1), czyli będzie<br />

posiadał tylko jeden element. Element iloczynu xy znajdującego się w komórce C13<br />

obliczany jest następująco:<br />

⎡ ⎤<br />

6 ∗ ⎢ ⎥<br />

⎣4<br />

⎦<br />

[ 7]<br />

2 = [ 6 ∗ 2 + 7 ∗ 4 ] = [ 40]<br />

Na przykładzie uzyskanych wyników widać, że w przypadku operacji na macierzach xy<br />

nie jest tożsame z yx. Kolejność mnożenia ma więc znaczenie.<br />

Funkcja tablicowa zwraca iloczyn dwóch macierzy nazwanych <br />

i . Aby wyznaczyć elementy iloczynu macierzy xy, mającego wymiar (2×2),<br />

zaznacz zakres o wymiarze 2 na 2 komórki (C10:D11) i wpisz lub, korzystając z przycisku<br />

Wstaw funkcję, zdefiniuj na formularzu funkcji wyrażenie:<br />

<br />

pamiętając przy tym, by na zakończenie nacisnąć klawizsze Ctrl+Shift+Enter.<br />

Jeśli zakresy C4:C5 i C7:D7 będą nosić odpowiednio nazwy x i y, wówczas wystarczy<br />

wpisać formułę o prostszej postaci:<br />

<br />

Rozważmy jeszcze dwie tablice:<br />

C =<br />

⎡12<br />

⎢<br />

⎣ 3<br />

4 ⎤<br />

13<br />

⎥ ⎦<br />

oraz D =<br />

⎡16<br />

⎢<br />

⎣ 5<br />

19<br />

12<br />

− 2⎤<br />

14<br />

⎥ ⎦<br />

Macierz C ma wymiar (2×2), a wymiarem D jest (2×3), a zatem — ponieważ liczba<br />

kolumn macierzy C jest równa liczbie wierszy macierzy D — można obliczyć iloczyn<br />

CD o wymiarze (2×3):<br />

⎡ ( 12 ∗16<br />

+ 4 ∗5<br />

) ( 12 ∗19<br />

+ 4 ∗12<br />

) ( −12<br />

∗ 2 + 4 ∗14<br />

)<br />

CD =<br />

( ) ( ) ( ) ⎥ ⎤<br />

⎢<br />

⎣ 3∗16<br />

+ 13∗5<br />

3∗19<br />

+ 13∗12<br />

− 3∗<br />

2 + 13∗14<br />

⎦<br />

⎡212<br />

276 32 ⎤<br />

= ⎢<br />

⎥<br />

⎣113<br />

213 176 ⎦<br />

Z drugiej jednak strony niemożliwe jest wyznaczenie iloczynu DC ze względu na<br />

niezgodność wymiarów (liczba kolumn macierzy D jest różna od liczby wierszy w macierzy<br />

C). Ogólnie mówiąc, mnożenie macierzy nie jest przemienne, dlatego zazwyczaj<br />

CD ≠ DC, tak jak w tym przypadku.<br />

=


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 49<br />

Jeśli C i D są nazwami odpowiednio tablic o wymiarze 2 na 2 i 2 na 3, wówczas formuła:<br />

<br />

wygeneruje elementy tablicy będącej ich iloczynem o wzymiarach 2 na 3.<br />

2.13.5. Odwracanie macierzy<br />

Macierz kwadratową I, w której wszystkie elementy na przekątnej mają wartość 1,<br />

a wszystkie pozostałe elementy mają wartość 0, nazywamy macierzą jednostkową.<br />

Zatem:<br />

I =<br />

⎡1<br />

⎢<br />

⎢<br />

0<br />

⎢0<br />

⎢<br />

⎢...<br />

⎢<br />

⎣0<br />

0<br />

1<br />

0<br />

...<br />

0<br />

0<br />

0<br />

1<br />

...<br />

0<br />

...<br />

...<br />

...<br />

...<br />

...<br />

0⎤<br />

0<br />

⎥<br />

⎥<br />

0⎥<br />

⎥<br />

... ⎥<br />

1⎥<br />

⎦<br />

jest macierzą jednostkową<br />

Załóżmy, że D jest macierzą o wymiarach (2×3), którą zastosowaliśmy wcześniej, a I<br />

jest macierzą jednostkową o wymiarach (2×2). Wówczas:<br />

ID =<br />

⎡1<br />

⎢<br />

⎣0<br />

0⎤<br />

1<br />

⎥ ⎦<br />

∗<br />

⎡16<br />

⎢<br />

⎣ 5<br />

19<br />

12<br />

− 2⎤<br />

14<br />

⎥ ⎦<br />

⎡16<br />

19 − 2⎤<br />

= ⎢ ⎥<br />

⎣ 5 12 14 ⎦<br />

= D<br />

Mnożenie dowolnej macierzy przez macierz jednostkową o właściwych wymiarach<br />

nie ma wpływu na macierz początkową (i przez to jest tożsama z pomnożeniem tej<br />

macierzy przez 1).<br />

Załóżmy teraz, że A jest macierzą kwadratową o wymiarze n, czyli ma wymiary n na n.<br />

Macierz kwadratową A –1 (również mającą wymiar n) nazywamy macierzą odwrotną do<br />

macierzy A, jeśli:<br />

A –1 A = AA –1 = I<br />

Na przykład jeśli:<br />

A =<br />

⎡− 3<br />

⎢<br />

⎢<br />

2<br />

⎢⎣<br />

7<br />

2<br />

20<br />

9<br />

7 ⎤<br />

19<br />

⎥<br />

⎥<br />

21⎥⎦<br />

to A –1 =<br />

⎡−<br />

0,175<br />

⎢<br />

⎢<br />

− 0,064<br />

⎢⎣<br />

0,086<br />

− 0,015<br />

0,079<br />

− 0,029<br />

0,072 ⎤<br />

− 0,050<br />

⎥<br />

⎥<br />

0,045 ⎥⎦<br />

oraz<br />

AA –1 = I =<br />

⎡1<br />

⎢<br />

⎢<br />

0<br />

⎢⎣<br />

0<br />

0<br />

1<br />

0<br />

0⎤<br />

0<br />

⎥<br />

⎥<br />

1⎥⎦


50 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Rysunek 2.33.<br />

Odwracanie<br />

macierzy<br />

wykonane<br />

w arkuszu<br />

MacDef<br />

Wyznaczanie macierzy odwrotnej do danej może się okazać zadaniem bardzo czasochłonnym.<br />

Na szczęście znajdzie ją za nas funkcja . Na przykład, aby znaleźć<br />

macierz odwrotną do macierzy A widocznej we fragmencie arkusza na rysunku 2.33,<br />

zaznacz zakres I17:K19 o wymiarach 3 na 3 komórki, a następznie wpisz formułę tablicową:<br />

<br />

Możesz się przekonać, że wynikiem jest rzeczywiście macierz odwrotna — wystarczy<br />

wykonać mnożenie macierzy AA –1 .<br />

2.13.6. Rozwiązywanie układów równoważnych<br />

równań liniowych<br />

Macierze odwrotne są stosowane między innymi w trakcie rozwiązywania układów<br />

równań, takich jak poniższy:<br />

−3x1<br />

+ 2x2<br />

+ 7x3<br />

= 20<br />

2x<br />

+ 20x<br />

+ 19x<br />

= − 5<br />

1<br />

2 3<br />

7x<br />

+ 9x<br />

+ 21x<br />

= 0<br />

1<br />

2<br />

3<br />

Układ ten można zapisać w postaci macierzy, jako Ax = b, gdzie:<br />

A =<br />

⎡− 3<br />

⎢<br />

⎢<br />

2<br />

⎢⎣<br />

7<br />

2<br />

20<br />

9<br />

7 ⎤<br />

19<br />

⎥<br />

⎥<br />

21⎥⎦<br />

b =<br />

⎡20⎤<br />

⎢ ⎥<br />

⎢<br />

− 5<br />

⎥<br />

⎢⎣<br />

0 ⎥⎦<br />

oraz x =<br />

⎡x1<br />

⎤<br />

⎢ ⎥<br />

⎢<br />

x2<br />

⎥<br />

⎢⎣<br />

x ⎥<br />

3 ⎦<br />

Rozwiązanie uzyskuje się, mnożąc lewostronnie obie strony równania przez macierz<br />

odwrotną do A:<br />

A –1 Ax = A –1 b, wówczas Ix = A –1 b, czyli x = A –1 b<br />

Widoczny na rysunku 2.33 wektor x będący rozwiązaniem tego równania uzyskano<br />

dzięki wstawieniu w zakresie komórek I21:I23 funkcji mnozżenia macierzy w postaci:<br />

<br />

Nie każdy układ równań liniowych może mieć rozwiązanie, a w niektórych przypadkach<br />

może on mieć wiele rozwiązań. Układ Ax = b posiada tylko jedno rozwiązanie,<br />

jeśli macierz A jest kwadratowa i istnieje macierz do niej odwrotna A –1 . Wówczas<br />

rozwiązanie jest wyznaczane równaniem x = A –1 b.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 51<br />

2.13.7. Podsumowanie funkcji macierzowych<br />

w Excelu<br />

Podsumowując, Excel posiada funkcje służące do transponowania macierzy, mnożenia<br />

macierzy oraz do odwracania macierzy kwadratowych. Sąz to następujące funkcje:<br />

<br />

<br />

<br />

zwraca transpozycję tablicy<br />

zwraca iloczyn dwóch tablic<br />

zwraca macierz odwrotną do tablicy<br />

Każda z tych funkcji zwraca w wyniku tablicę, której rozmiar należy ocenić z wyprzedzeniem.<br />

Po zaznaczeniu zakresu komórek o odpowiednim rozmiarze należy wpisać<br />

formułę (lub uzyskać ją, naciskając przycisk Wstaw funkcję, i zdefiniować na formularzu<br />

formuły). Zostanie ona wprowadzona do komórek z zaznaczonego obszaru po naciśnięciu<br />

kombinacji klawiszy Ctrl+Shift+Enter (a nie tylko Enter). Jeśli operacja się nie<br />

powiedzie, pozostaw zaznaczenie zakresu komórek wyjściowych, naciśnij klawisz edycji<br />

(F2), wyedytuj formułę, jeśli jest to konieczne, po czym znów naciśnij Ctrl+Shift+Enter.<br />

Aby utrwalić swoje umiejętności, wykonaj ćwiczenia na zmacierzach w arkuszu MacĆwicz.<br />

Funkcje macierzowe będziemy często stosować w części „<strong>Zaawansowane</strong> <strong>modele</strong> akcji”<br />

książki — zarówno do obliczeń w arkuszach, jak i jako części funkcji <strong>VBA</strong> zdefiniowanych<br />

przez użytkownika.<br />

Podsumowanie<br />

Excel posiada bogaty zbiór funkcji i procedur. Są wśród nich funkcje matematyczne,<br />

statystyczne i wyszukiwania, a także często stosowane procedury służące na przykład<br />

do konstruowania tabel danych czy prezentowania wynizków na wykresach XY.<br />

Dostęp do funkcji uzyskuje się, klikając przycisk Wstaw funkcję, a jej parametry wejściowe<br />

definiuje się w formularzu funkcji. Stosowanie nazw zakresów znacznie ułatwia<br />

wskazywanie zakresów komórek, zwłaszcza w sytuacji gdy zakresy osiągają znaczne<br />

rozmiary. Nazwy zakresów również mogą być stosowane wz formularzu funkcji.<br />

Mechanizmy znajdujące się na pasku narzędzi Inspekcja formuł, w szczególności Śledź<br />

poprzedniki, Śledź zależności i Usuń wszystkie strzałki, stanowią nieocenioną pomoc<br />

w trakcie analizowania formuł wpisanych w komórkach.<br />

Warto bliżej poznać funkcje <strong>Excela</strong>, ponieważ bez truduz można je dołączać do funkcji<br />

zdefiniowanych przez użytkownika, zmniejszając tym samym ilość kodu <strong>VBA</strong>, jaką<br />

trzeba napisać.<br />

Szczególną uwagę należy zachować, stosując funkcje tablicowe. Dobrze jest z wyprzedzeniem<br />

określić rozmiar zakresu komórek wynikowych, odpowiedni dla tablicy z wynikami.<br />

Po zaznaczeniu właściwego zakresu komórek należy wstawić do niego formułę,<br />

naciskając kombinację klawiszy Ctrl+Shift+Enter.


52 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu<br />

Funkcje wbudowane cechują się zmiennością, co oznacza, że ich wynik zmienia się<br />

wraz ze zmianami wprowadzanymi w ich danych wejściowych. W przeciwieństwie do<br />

nich procedury, takie jak Szukaj wyniku czy Solver z pakietu Analysis ToolPak, mają<br />

charakter statystyczny — ich wynikiem jest „zrzut danych” niemający żadnego połączenia<br />

z danymi początkowymi. Z tego powodu w przypadku zmiany danych wejściowych<br />

procedury te należy uruchomić ponownie.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!