Zaawansowane modele finansowe z wykorzystaniem Excela i VBA
Zaawansowane modele finansowe z wykorzystaniem Excela i VBA
Zaawansowane modele finansowe z wykorzystaniem Excela i VBA
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.