Escolar Documentos
Profissional Documentos
Cultura Documentos
com
Wszelkie prawa zastrzeone. Nieautoryzowane rozpowszechnianie caoci
lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione.
Wykonywanie kopii metod kserograficzn, fotograficzn, a take kopiowanie
ksiki na noniku filmowym, magnetycznym lub innym powoduje naruszenie
praw autorskich niniejszej publikacji.
Wydawnictwo HELION
ul. Kociuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (ksigarnia internetowa, katalog ksiek)
Drogi Czytelniku!
Jeeli chcesz oceni t ksik, zajrzyj pod adres
http://helion.pl/user/opinie?exwob2_p
Moesz tam wpisa swoje uwagi, spostrzeenia, recenzj.
ISBN: 978-83-246-3743-0
Numer katalogowy: 7054
Printed in Poland.
Excel nie zaspokaja oczywicie wszystkich potrzeb obliczeniowych naukowca, ale spe-
nia prawie wszystkie oczekiwania inyniera. Zasadniczym niedostatkiem z punktu wi-
dzenia potrzeb naukowych jest brak moliwoci oblicze symbolicznych. W naukach
stosowanych i w praktyce inynierskiej odgrywaj one jednak rol drugoplanow. Gdy
wchodzi w gr opracowanie i weryfikacja danych pomiarowych lub prace projektowe
wynik musi mie posta numeryczn, czyli tak, jak mona uzyska w arkuszu kal-
kulacyjnym. Chocia nie jest to jego gwne zadanie, arkusz wspomaga take w znacz-
nym stopniu graficzn prezentacj wynikw, pozwala tworzy rne rodzaje wykresw
i diagramw, dostosowanych gwnie do potrzeb grafiki biznesowej, ale i inynier znajdzie
tu dla siebie uyteczne narzdzia. W ostatnim okresie rozwoju arkusza kalkulacyjnego
rozbudowano rwnie w znacznym stopniu jego funkcje statystyczne. To umoliwia
Pewn alternatyw dla procedur i funkcji pisanych w VBA stanowi moe stosunkowo
mao znana i niedoceniana moliwo oferowana przez arkusz MS Excel, jak s operacje
tablicowe czyli operacje wykonywane rwnolegle na wielu danych. Operacje takie
w poczeniu ze stosowaniem nazw odpowiednio dobranych formu umoliwiaj bardzo
zwizy zapis nawet stosunkowo zoonych operacji, takich jak na przykad cakowanie
numeryczne. Niestety, przekazywanie parametrw do takich quasi-funkcji jest moliwe
tylko przez komrki lub predefiniowane nazwy. Zagadnieniu operacji tablicowych po-
wicam w tej ksice stosunkowo duo uwagi, gdy pomimo bogatej literatury dotycz-
cej Excela s one traktowane do pobienie.
Ksika jest zatem adresowana do wszystkich, ktrzy wykonuj lub planuj wykony-
wanie oblicze numerycznych w dziedzinie nauk cisych i technicznych, a wic pra-
cownikw nauki, inynierw, doktorantw i studentw, a take ambitnych uczniw szk
rednich. Poniewa jestem chemikiem, przykady zawarte w ksice dotycz gwnie
zagadnie chemicznych, ale staraem si je formuowa tak, aby byy zrozumiae take
dla przedstawicieli innych dyscyplin. Od Czytelnika oczekuj znajomoci podstaw ob-
sugi arkusza kalkulacyjnego umiejtnoci wprowadzania i edycji danych, organizacji
danych w arkuszu i skoroszycie (wstawianie i usuwanie wierszy i kolumn, formatowanie
komrek, wierszy i kolumn, kopiowanie i przesuwanie komrek, definiowanie wykresu),
zapisu i odczytu plikw Excela, wykonywania kopii ekranu i okien arkusza, drukowania
plikw itp., a ponadto znajomoci matematyki na poziomie szkoy redniej.
Mam nadziej, e lektura tej ksiki pozwoli spojrze na arkusz kalkulacyjny jak na po-
tne i elastyczne narzdzie obliczeniowe, za pomoc ktrego przy odrobinie wysiku
intelektualnego i stosunkowo niewielkim nakadzie czasu i rodkw mona zrealizo-
wa wiele bardzo rnorodnych zada obliczeniowych, a dokadno uzyskanych wynikw
powinna wystarczy do wikszoci zastosowa.
formua nie mieci si w wierszu na stronie, ale w arkuszu nie moe by podzielona na
wiersze, w treci umieszczaem znak . Znak ten nie jest czci formuy i nie naley
go wpisywa. Adresy komrek, na przykad C5, nazwy staych logicznych PRAWDA, FASZ
oraz znaczniki bdw, na przykad #ARG!, s pisane WERSALIKAMI.
Autor
tego tekstu jest tylko znakiem formatujcym). Stae logiczne s tylko dwie w pol-
skiej wersji jzykowej maj posta sw PRAWDA lub FASZ (mog by wprowadzane
maymi lub duymi literami, Excel zamienia je zawsze na due litery) i dokadnie tak
musz wyglda.
Liczba bez znaku (rwnie w notacji naukowej) moe by ujta w nawiasy okrge, taka
liczba jest traktowana jako ujemna (jest to amerykaski zwyczaj ksigowy) zasada ta
dotyczy tylko staych liczbowych, a nie wyrae, na przykad staa (100) ma warto
100, ale wyraenie = (100) ma warto 100.
Wszystko, co nie moe by zakwalifikowane jako wyraenie, staa logiczna lub liczbo-
wa, jest traktowane jako tekst. W praktyce atwo rozpozna, z jakim rodzajem danych
mamy do czynienia, na podstawie ich wyrwnania w komrce. Standardowo liczby s
dosuwane do prawej krawdzi komrki, wartoci logiczne s centrowane, a teksty do-
suwane do lewej krawdzi komrki. Dotyczy to zarwno staych, jak i wynikw obli-
czenia wyrae.
Aby liczba bd formua byy traktowane jako tekst, wystarczy poprzedzi je apostro-
fem ' albo zastosowa Tekstowy format komrki (przed wprowadzeniem formuy).
Wartoci logiczne wywietlane s podobnie jak liczby, tzn. jeli nie mieszcz si w ko-
mrce, zostaj zastpione s cigiem znakw ####.
Formuy s domylnie wyliczane, tzn. w arkuszu wywietlana jest nie sama formua, lecz
wynik jej wyliczenia z uwzgldnieniem biecej wartoci komrek i nazw, do ktrych
formua si odwouje. Sama formua jest widoczna w polu edycji nad arkuszem, gdy
komrka zawierajca t formu stanie si komrk biec (aktywn). Mona prze-
czy arkusz w tryb wywietlania formu, naciskajc klawisze Ctrl+` (apostrof lewostronny)
lub w starszych wersjach wybierajc z menu Narzdzia/Opcje/Widok/Opcje okna
i zaznaczajc pole Formuy, a od wersji 2007 na karcie Formuy w grupie Inspekcja
formu klikajc przycisk Poka formuy. W tym trybie wszystkie formuy w arkuszu s
wywietlane jak teksty, a nie wyliczane. Ponowne nacinicie tej kombinacji klawiszy
przywraca obliczanie formu.
Jeeli chcemy jednoczenie widzie zarwno formu, jak i wynik oblicze, mamy dwie
moliwoci. Jedna z nich to wywietlenie tego samego arkusza w dwch oknach jedno
bdzie w zwykym trybie wywietla wyniki, a drugie po przeczeniu w tryb wywietla-
nia formu pokae wzory uyte do oblicze. Aby wywietli arkusz w dwch oknach, naley
w starszych wersjach Excela wykona polecenie Okno/Nowe okno, a nastpnie Okno/
Rozmie/Ssiadujco lub Pionowo. Od wersji 2007 trzeba w tym celu z zakadki Widok
wybra polecenie Nowe okno, a nastpnie Wywietl obok siebie i Przewijanie synchroniczne.
Teraz w jednym z okien naley uy kombinacji klawiszy Ctrl+` w celu wywietlenia
formu. Druga moliwo to wykorzystanie makroinstrukcji, ktra obok formuy uywanej
do oblicze umieci w ssiedniej komrce jej tekstow kopi. Przykad takiej makroin-
strukcji podano w rozdziale 22. Elementy jzyka VBA (Visual Basic for Applications),
w podrozdziale Wywietlanie tekstw formu w arkuszu. Ten wariant wymaga wykonania
makroinstrukcji oddzielnie w przypadku kadej formuy, ktr chcemy widzie. Moe
wic mie zastosowanie wtedy, gdy obserwowane maj by tylko wybrane formuy.
Ad a) Stae liczbowe i logiczne uywane w wyraeniach maj posta tak jak przy ich
wprowadzaniu do komrek. Formaty staych liczbowych uytych w wyraeniu nie wpy-
waj na format uzyskanego wyniku. Format wyniku jest okrelony przez typ formatu
nadany komrce przed wprowadzeniem formuy. Moe on by jednak w kadej chwili
zmieniony. Najczciej stosowane formaty liczbowe zostay omwione w poprzednim
podrozdziale.
Stae tablicowe ujmuje si w nawiasy klamrowe {}. Stae te zostay opisane w rozdziale 3.
Operacje i funkcje tablicowe. Jeeli w zwykym wyraeniu wystpi staa tablicowa, to
do oblicze bierze si tylko lewy grny (pierwszy) element tablicy. Nie dotyczy to sytu-
acji, gdy staa tablicowa jest argumentem funkcji, ktra akceptuje argumenty tablicowe
w zwykych wyraeniach, na przykad funkcji SUMA, REDNIA itp.
Ad b) Adresy komrek skadaj si z litery lub dwch liter (a od wersji 2007 nawet trzech
liter) oznaczajcych kolumn i liczby oznaczajcej numer wiersza, na przykad adres D13
oznacza komrk w kolumnie D i 13 wierszu. Ten styl adresowania okrela si mianem
A1. Litery oznaczajce kolumny mog by wprowadzane jako mae lub due Excel
zamienia je na due. Kada cz adresu (wierszowa lub kolumnowa) moe by poprze-
dzona znakiem $ (znak dolara). Znaczenie tego znaku zostanie wyjanione w podrozdziale
Edycja, kopiowanie i przesuwanie zawartoci komrek. Istnieje jeszcze alternatywny
styl adresowania komrek, w ktrym adres ma posta typu W6K10, gdzie litery W i K ozna-
czaj odpowiednio wiersz i kolumn, a numery okrelaj ich pooenie w arkuszu. Ten
styl adresowania, okrelany jako styl W1K1, stosowany jest rzadziej i nie bdzie tu oma-
wiany. W wersji angielskiej uywa si odpowiednio liter R i C (styl R1C1). Wyboru
stylu adresowania dokonuje si przez zaznaczenie odpowiedniej opcji na karcie Narzdzia/
Opcje/Oglne (w wersji 2007 Przycisk pakietu Office/Opcje programu Excel/Formuy,
a w wersji 2010 Plik/Opcje/Formuy). W jednym skoroszycie musi by konsekwentnie
stosowany jeden styl adresowania.
Gdy skoroszyt, do ktrego chcemy si odwoa, jest zamknity, naley poda pen ciek
dostpu do pliku, na przykad 'C:\Documents and Settings\USER\Moje dokumenty\Excel\
[wykres1.xls]Arkusz1'!C3. Oczywicie bezporednie wpisywanie tak rozbudowanych
odwoa jest niewygodne i sprzyja popenianiu bdw. Dlatego znacznie wygodniej
wprowadza te odwoania przez wskazanie myszk odpowiednich komrek. Przy zamyka-
niu skoroszytu rdowego odwoania do niego zostan uzupenione ciek dostpu.
Nazwy musz zaczyna si od litery lub znaku podkrelenia, poza pierwszym znakiem
mog zawiera take cyfry i kropki. Due i mae litery nie s rozrniane. Nazwy nie
mog by identyczne z adresami komrek w obu stylach adresowania w wersji polskiej
i angielskiej (w zwizku z tym nie mona uywa m.in. nazw w, k, wk, r, c, rc, rwnie
w wariancie z duymi literami).
ponownie. Aby uy nazwy, ktra w danym arkuszu nie obowizuje, naley poprzedzi
j kwalifikatorem z nazw arkusza lub skoroszytu, w ktrym bya zdefiniowana, od-
dzielon wykrzyknikiem (!). Taka nazwa kwalifikowana moe mie form:
Zeszyt1.xls!abc nazwa abc obowizujca w skoroszycie Zeszyt1,
z wyczeniem arkuszy, w ktrych zdefiniowano j ponownie;
Arkusz2!abc nazwa abc zdefiniowana w Arkuszu2 w biecym skoroszycie.
Poczwszy od wersji 2007, w Excelu mona definiowa tabele. Kada tabela musi mie
nazw w momencie utworzenia nazwa jest nadawana automatycznie, ale pniej
mona j zmieni. Nazwa tabeli musi by zgodna z reguami dotyczcymi nazw defi-
niowanych i jest unikatowa w skoroszycie. Szczegowy opis dotyczcy uywania tabel
podano w rozdziale 3. Operacje i funkcje tablicowe, w podrozdziale Odwoania struk-
turalne w tabelach. Nazwy tabel mog by uywane w wyraeniach na podobnych
zasadach jak nazwy zakresw.
Nazwy nadawane komrkom lub obszarom w sposb uproszczony (przez Pole nazwy
albo przez Utwrz z zaznaczenia) odnosz si do ich adresw bezwzgldnych. Przy defi-
niowaniu nazwy za pomoc Menedera nazw lub sekwencji Wstaw/Nazwa/Definiuj mo-
na powiza nazw z dowolnym rodzajem adresu (bezwzgldnym, wzgldnym lub mie-
szanym). Znaczenie tych trzech rodzajw adresw wie si z kopiowaniem formu
i zostanie wyjanione w dalszej czci rozdziau.
Nazwa komrki moe wystpi zamiast jej adresu w odwoaniu do obszaru, na przykad
odwoanie lgr:D6 jest poprawne, jeeli nazw lgr nadano wczeniej komrce, na przy-
kad $B$3. Poprawne jest te odwoanie, w ktrym po jednej lub obu stronach dwukropka
s nazwy lub adresy obszarw. Takie odwoanie odnosi si do najmniejszego prostokt-
nego obszaru, obejmujcego oba zakresy jednoczenie.
Poniszy przykad pokazuje, w jaki sposb mona nada nazw formule. Zamy, e
dane s wsprzdne dwch punktw, ktre zapisujemy w wybranych komrkach arkusza,
jak to pokazano na rysunku 2.1.
Rysunek 2.1.
Definiowanie nazw
w skoroszycie
Naley teraz otworzy okno dialogowe Wstaw/Nazwa/Definiuj (od wersji 2007 Formuy/
Definiuj nazw), nastpnie w polu Nazwy w skoroszycie: (od wersji 2007 Nazwa:) wpisa
nazw odl, a w polu Odwouje si do: podane powyej odwoanie od znaku =, po czym
zatwierdzi to przyciskiem OK (rysunek 2.2).
Rysunek 2.2.
Wygld okna
dialogowego, w ktrym
definiuje si nazw odl
W razie potrzeby zmodyfikowania nazwy, przypisanej jej definicji lub utworzenia nowej
definicji podobnej do ju istniejcej naley wywoa Meneder nazw, wybra po-
trzebn definicj i wprowadzi niezbdne poprawki. We wczeniejszych wersjach Excela
(97 2003) trzeba uy sekwencji Wstaw/Nazwa/Definiuj. Zobaczymy okno podobne
do pokazanego na rysunku 2.3, na ktrym widnieje zestawienie wszystkich nazw zdefi-
niowanych w arkuszu, niezalenie od sposobu ich zdefiniowania.
Rysunek 2.3.
Okno Menedera
nazw, umoliwiajce
zarzdzanie nazwami
w arkuszu
Argumenty operacji powinny mie typ odpowiedni do danej operacji. Tam, gdzie ma
to sens, Excel dokonuje niezbdnej konwersji typw. Operator czenia tekstw & czy
dwa teksty w jeden. W razie uycia argumentu liczbowego lub logicznego zamiast teksto-
wego Excel zamienia go na tekst. Wynik jest zawsze tekstem.
Porwnanie tekstw jest alfabetyczne znak po znaku. Porwnywane s kody ASCII kolej-
nych znakw, z tym e mae litery s traktowane jak due (nie s rozrniane), a polskie
litery zostaj umieszczone pomidzy odpowiednimi literami alfabetu aciskiego, na przy-
kad "C" < "" < "D". Jeeli teksty s rnej dugoci i ich pocztkowe znaki s zgodne,
to tekst krtszy jest mniejszy, na przykad "A" < "Aa". Kolejno znakw w tabeli
ASCII jest z grubsza nastpujca: spacja, cyfry, litery.
Funkcj, ktra czsto sprawia uytkownikom problemy, jest funkcja wykadnicza ex.
Jej odpowiednikiem w Excelu jest funkcja EXP(x). Funkcja ma skadni typow dla
Excela, tzn. wymaga, aby argument by ujty w nawiasy, i nie zawiera operatora pot-
gowania. Prby wprowadzania jej w postaci e^x lub exp^x wywouj komunikaty
bdu. W Excelu nie jest te bezporednio dostpna liczba e podstawa logaryt-
mw naturalnych. Jej warto mona uzyska, wywoujc funkcj EXP z argumentem
1: e : = EXP(1). Jeli kto jest bardzo przyzwyczajony do zapisu funkcji wykadniczej
z operatorem potgowania, musi sam zdefiniowa nazw e lub exp, wprowadzajc
do wybranej komrki wyraenie = EXP(1) i nadajc tej komrce odpowiedni na-
zw. Mona to rwnie zrobi poza arkuszem, korzystajc z okna dialogowego
Wstaw/Nazwa/Definiuj (od wersji 2007 Formuy/Definiuj nazw).
Matematyka Excel
sin x SIN(x)
sin2 x SIN(x)^2
2
sin x SIN(x^2)
Przy wywoaniu funkcji typ wartoci podawanej jako argument powinien by zgodny
z charakterem i typem tego argumentu w opisie funkcji, na przykad funkcja SILNIA(n)
wymaga podania argumentu cakowitego nieujemnego. Jeeli podamy argument ujemny,
otrzymamy komunikat bdu #LICZBA!, ale jeeli podamy argument dodatni, lecz
w postaci liczby z czci uamkow, to taki argument bdzie przyjty, tyle e zostanie
zaokrglony w d do najbliszej liczby cakowitej (obcity). Jest to oglna zasada sto-
sowana do wszystkich funkcji Excela jeli zamiast oczekiwanego argumentu cako-
witego podana zostanie liczba uamkowa, to jest ona obcinana, a nie zaokrglana do
najbliszej liczby cakowitej. A wic na przykad funkcja SILNIA(3,7) da w wyniku 3!,
czyli 6.
Nawiasy te mona zagnieda, tzn. otwiera now par nawiasw wewntrz innej. Ope-
racje s potem wykonywane, poczwszy od pary najbardziej zagniedonych nawiasw.
Nawiasy su ponadto do ograniczenia argumentw funkcji.
Uycie nawiasw powinno by racjonalizowane, bo zbyt dua ich liczba utrudnia analiz
formuy, z drugiej strony lepiej uy o jedn par nawiasw za duo ni o jedn par za
mao. W trakcie edycji formuy nawiasy s podwietlane rnymi kolorami, aby atwiej byo
odszuka pary odpowiadajcych sobie nawiasw.
Matematyka Excel
1+ x
(1+x)/(1x)
1 x
Edycja, kopiowanie
i przesuwanie zawartoci komrek
Po wprowadzeniu danych do komrki czsto zachodzi potrzeba dokonania zmian, czyli
edycji zawartoci komrki. Aby rozpocz edycj, naley wskaza komrk, ktra ma
by poddana edycji. W polu edycji nad arkuszem bdzie widoczna zawarto komrki.
Wystarczy klikn myszk w miejscu, gdzie chcemy wprowadzi poprawki, a pojawi si
tam kursor i mona rozpocz edycj za pomoc klawiatury i myszki. Alternatywnym
sposobem rozpoczcia edycji jest nacinicie klawisza funkcyjnego F2 (jest to relikt po
arkuszu kalkulacyjnym Lotus 1-2-3). Po naciniciu F2 kursor pojawi si jednak nie
w polu edycji nad arkuszem, ale na kocu zawartoci komrki w arkuszu. Poza tym edy-
cja przebiega w podobny sposb. Po wywoaniu trybu edycji formuy Excel zaznacza
kolorowym obramowaniem wszystkie komrki, do ktrych odwouje si edytowane wy-
raenie. Tym samym kolorem zaznaczone s adresy i nazwy w wyraeniu. Uatwia to
sprawdzenie poprawnoci odwoa. W trakcie edycji to zaznaczenie niestety znika. Aby
zobaczy je ponownie, trzeba zakoczy edycj i wywoa j jeszcze raz. Edycj ko-
czymy naciniciem klawisza Enter (lub Ctrl+Shift+Enter w przypadku edycji formu
tablicowych) albo klikniciem myszk pola akceptacji D, ktre znajduje si przed
polem edycji nad arkuszem (w przypadku edycji formu tablicowych trzeba wczeniej
nacisn i przytrzyma Ctrl+Shift).
W trybie edycji mona dokona zamiany caej formuy zawartej w komrce lub jej zazna-
czonego fragmentu na warto liczbow. Po akceptacji warto ta pozostanie w komrce
na stae. Suy do tego klawisz funkcyjny F9.
Inn specyficzn dla Excela metod kopiowania jest odmiana metody przecignij
i upu z uyciem myszki. Pozwala ona na kopiowanie zawartoci komrki do ssied-
nich komrek i tworzenie w ten sposb kolumn lub wierszy z podobn zawartoci. Aby
skorzysta z tego sposobu kopiowania, naley zaznaczy kopiowany obszar, a nastpnie
wskaza kursorem myszki prawy dolny rg obszaru. Kursor myszki powinien przyj
wtedy ksztat czarnego plusa. Gdy to nastpi, naciskamy lewy przycisk myszy i prze-
cigamy kursor pionowo lub poziomo, wypeniajc dany obszar. Po zakoczeniu ko-
piowania zwalniamy przycisk myszy. Oprcz tego mona kopiowa cae zakresy komrek
wystarczy je zaznaczy, a nastpnie chwyci myszk za brzeg obszaru i przecign
w nowe miejsce przy wcinitym klawiszu Ctrl. Obok wskanika myszki bdzie wy-
wietlany may znak +. Naley pamita, aby po zakoczeniu kopiowania najpierw
zwolni przycisk myszy, a nastpnie klawisz Ctrl.
tylko wtedy, gdy w kopiowanych komrkach mieszcz si stae lub formuy zawierajce
tylko stae i adresy tzw. absolutne (inaczej: bezwzgldne) oraz nazwy. Takie rozwi-
zanie podyktowane jest logik operacji obliczeniowych. Jeeli na przykad w komrce B5
mamy liczb, a w komrce ssiedniej C5 formu obliczajc wynik na podstawie
tej liczby, to ta relacja ssiedztwa komrek powinna by zachowana przy kopiowaniu.
Jeeli zdecydujemy si skopiowa t par komrek w inne miejsce, to oczekujemy, e
formua bdzie w dalszym cigu pobiera dane z ssiedniej komrki, chocia jej adres
jest teraz zupenie inny. Dlatego adresy w Excelu s domylnie wzgldne. Adres zapisany
w postaci na przykad B5, wystpujcy w formule, jest przy kopiowaniu tej formuy mo-
dyfikowany tak, aby zachowa wzgldn relacj midzy nowym pooeniem komrki
z formu a pooeniem komrek, do ktrych ta formua si odwouje. Mianowicie przy
kopiowaniu komrki z formu w d w tej samej kolumnie modyfikowane bd numery
wierszy w odwoaniach zawartych w tej formule. Przy kopiowaniu w prawo w tym sa-
mym wierszu modyfikowane bd litery kolumn w odwoaniach, wreszcie przy kopiowa-
niu na ukos modyfikowane bd obie czci adresu.
Adresy typu B5, ktre podlegaj modyfikacji przy kopiowaniu, nosz nazw adresw
wzgldnych. W pewnych sytuacjach modyfikacja adresu nie jest podana. Jeeli na
przykad jaka komrka zawiera sta, ktra jest wykorzystywana w obliczeniach dla
rnych danych, jej adres nie powinien podlega modyfikacji taki adres nazywamy
bezwzgldnym albo absolutnym. W Excelu uzyskuje si go, poprzedzajc liter ko-
lumny i numer wiersza znakiem $ (dolara), na przykad $B$5. Przy tworzeniu tablic
dwuwymiarowych (typu tabliczki mnoenia znanej ze szkoy podstawowej), w ktrych
jedna grupa argumentw umieszczona jest w grnym wierszu, a druga grupa w pierwszej
kolumnie, przydatne s tzw. adresy mieszane, zawierajce jeden znak $ przed nume-
rem wiersza albo przed liter kolumny. Ta cz adresu, ktr poprzedza znak $, jest nie-
zmienna w czasie kopiowania.
Przy edycji formu znaki $ mona wprowadza do adresu bezporednio z klawiatury albo
za pomoc klawisza funkcyjnego F4. Jeeli kursor znajduje si w obrbie adresu, naciska-
nie klawisza F4 powoduje cykliczne przeczanie midzy czterema moliwymi wersjami
adresu: wzgldn, absolutn i dwiema mieszanymi.
Jeeli w zwykym wyraeniu wystpi staa tablicowa lub jej nazwa, do oblicze bierze
si tylko lewy grny (pierwszy) element tablicy. Nie dotyczy to sytuacji, gdy staa ta-
blicowa jest argumentem funkcji, ktra akceptuje argumenty tablicowe w zwykych wyra-
eniach, na przykad funkcji SUMA, REDNIA itp.
Jeeli nadano nazw pojedynczej komrce, ta nazwa domylnie oznacza adres abso-
lutny, jednak mona zmieni t definicj w Menederze nazw lub za pomoc sekwencji
Wstaw/Nazwa/Definiuj.
Sytuacja jest bardziej zoona, gdy uyje si adresu wzgldnego. Interpretacja takiej
formuy zalee bdzie od tego, ktra komrka bya aktywna w chwili definiowania
formuy, gdy wzgldem niej bd liczone przesunicia adresw. Dlatego najlepiej
przed zdefiniowaniem nazwy z adresem wzgldnym lub mieszanym wybra komrk,
w ktrej zamierzamy uy tej nazwy w formule. Podczas definiowania nazwy ta komrka
powinna by aktywna. Najlepiej wytumaczy to na przykadzie. Zamy, e aktywny
jest Arkusz1, a w nim aktywna jest komrka C1. Posugujc si Menederem nazw,
definiujemy nazw iloczyn wedug wzoru:
iloczyn : = A1*B1
Jeeli w zwykym wyraeniu uyjemy adresu lub nazwy zakresu, ktry jest wierszem
lub fragmentem wiersza, to do obliczenia wartoci wyraenia (formuy) zostanie uyta
warto z tego wiersza i kolumny, w ktrej uywamy formuy. Jeeli zakres nie obejmuje
tej kolumny, wystpi bd #ARG!.
Jeeli w zwykym wyraeniu uyjemy adresu lub nazwy zakresu, ktry jest kolumn lub
fragmentem kolumny, to do obliczenia wartoci wyraenia (formuy) zostanie uyta
warto z tej kolumny i wiersza, w ktrym uywamy formuy. Jeeli zakres nie obejmuje
tego wiersza, wystpi bd #ARG!.
Nie ma znaczenia, jaki rodzaj adresu (wzgldny, bezwzgldny czy mieszany) zosta uyty.
Rnice w rodzajach adresw ujawni si dopiero po skopiowaniu komrki z formu.
Warto tu zwrci uwag na mniej znane odwoania do caych wierszy i kolumn. Odwo-
anie do caego sidmego wiersza moe mie posta $7:$7 lub 7:7, a odwoanie do caej
kolumny C posta $C:$C lub C:C. Przykadowo jeli w komrce B5 umiecimy wyrae-
nie = $7:$7+5, to Excel obliczy je jako = B$7+5; jeli w komrce E2 umiecimy wyra-
enie = 4*$C:$C, to obliczona zostanie warto = 4*$C2. Nic si nie zmieni, jeli wier-
szom lub kolumnom nadamy nazwy, czy to bezporednio w arkuszu, czy za pomoc
Menedera nazw.
Jeeli jednak wyraeniu, na przykad = $7:$7+5, nadamy nazw, to gdy pniej uyjemy
tej nazwy w komrce B5, bdzie to ju traktowane jak odwoanie do formuy czyli
w tym przypadku odwoanie do wartoci z pierwszej komrki zakresu $A$7 powik-
szonej o 5.
Jeeli w zwykym wyraeniu uyjemy adresu lub nazwy zakresu, ktry skada si z dwu
lub wicej wierszy i dwu lub wicej kolumn, to wystpi bd #ARG!. Takie odwoanie
jest nieprawidowe (w przeciwiestwie do analogicznego odwoania odnoszcego si
do staej tablicowej). Poprawne jest jednak uycie takiego odwoania jako argumentu
funkcji, ktra akceptuje argumenty tablicowe w zwykych wyraeniach, na przykad
funkcji SUMA, REDNIA itp. Do poszczeglnych komrek zakresu mona odwoywa
si w zwykych wyraeniach tak jak do elementw tablicy, czyli za pomoc funkcji
INDEKS(nazwa_obszaru; nr_wiersza; nr_kolumny). Szczegowy opis tej funkcji za-
mieszczono w rozdziale 3. Operacje i funkcje tablicowe.
Jeeli w zwykym wyraeniu uyto nazwy formuy (od wersji 2007 zdefiniowanej za
pomoc Menedera nazw, we wczeniejszych wersjach przez Wstaw/Nazwa/Definiuj)
z formu mamy w tym przypadku do czynienia, gdy w definicji przypisanej do
nazwy uyto jakiegokolwiek operatora dziaania to nawet gdy reprezentuje ona
pojedynczy wiersz lub kolumn albo ich fragmenty, nazwa ta bdzie traktowana jak
odwoanie do formuy tablicowej. Takie odwoanie bdzie jednak zawsze odwoaniem
do pierwszego elementu wiersza lub kolumny, albo do lewego grnego elementu tablicy.
Przy uywaniu nazw musimy zatem pamita o dwu sprawach: pierwszej czy na-
zwa odnosi si do zakresu, z ktrym zwizany jest okrelony adres, czy do formuy lub
tablicy, ktra nie ma okrelonego adresu, oraz drugiej jakiego rodzaju adresy byy
uyte w definicji. Jeli odwoujemy si do nazwy zakresu, waciw komrk znajdujemy
na zasadzie rzutu prostopadego rzutujemy komrk z odwoaniem na wiersz lub
kolumn, do ktrej si odwoujemy, jeli linia rzutu przecina zakres, to punkt przeci-
cia wyznacza komrk, do ktrej odnosi si odwoanie. Jeli punkt przecicia nie ist-
nieje lub jest wicej ni jeden taki punkt, wtedy pojawia si bd. Jeli odwoanie nie
wie si z adresem, jest to zawsze odwoanie do pierwszego elementu tego odwoania.
Z kolei rodzaj adresu decyduje, jak jest on interpretowany w odwoaniu. Jeli jest to adres
absolutny (ze znakami $), sprawa jest oczywista; jeli natomiast uyto adresu wzgldnego
lub mieszanego, istotne staje si pooenie tego adresu wzgldem komrki biecej
w momencie formuowania definicji. Pniej taka sama zaleno jest odtwarzana pomi-
dzy komrk, w ktrej umiecilimy formu, a adresem zakresu uytego w odwoaniu
bezporednio lub porednio (poprzez nazwy innych formu w wyraeniu). Stosowanie ad-
resw wzgldnych w formuach nazwanych powiksza elastyczno tych formu, naley
jednak uywa ich ostronie, gdy atwo si pogubi w zalenociach midzy adresami
i utraci kontrol nad sensem formu.
Pierwsza para funkcji umoliwia odczyt numeru wiersza lub numeru kolumny w odwo-
aniu podanym jako argument.
Odwoanie to komrka lub zakres komrek, dla ktrych chcemy okreli numer kolumny
lub numer wiersza. Odwoanie moe si odnosi tylko do jednego obszaru.
Jeli odwoanie oznacza zakres komrek, a funkcja NR.KOLUMNY lub WIERSZ zostanie wpro-
wadzona jako tablica, funkcje zwracaj listy numerw kolumn lub wierszy odpowiednio
w ukadzie poziomym lub pionowym. Jeeli w takim przypadku uyjemy funkcji w zwy-
kym wywoaniu, zwrcony bdzie numer kolumny lub wiersza lewej grnej komrki
odwoania.
Odwoanie musi by poprawnym adresem albo nazw komrki lub zakresu komrek, albo
wyraeniem dajcym po obliczeniu adres. Nie moe mie postaci tekstowej ani liczbowej.
Przykady poprawnych odwoa: A10, B:C, H:H, 1:8, $B$3:$C$5, adr (nazwa przypisana do
komrki lub zakresu komrek).
Kolejna funkcja o nazwie ADRES generuje tekst adresu komrki na podstawie numerw
kolumny i wiersza. Moe rwnie uwzgldnia nazw arkusza, zwracajc adres kwali-
fikowany.
Typ_adresu okrela, jakiego rodzaju odwoanie bdzie wynikiem funkcji (tabela 2.2).
Poniewa adres generowany jest w postaci tekstu, nie jest modyfikowany przy ewentual-
nym kopiowaniu, dlatego rodzaj odwoania na og nie bdzie mia znaczenia.
A1 to warto logiczna okrelajca styl odwoa A1 lub W1K1. Jeli a1 przybierze warto
PRAWDA bd zostanie pominite, funkcja ADRES poda odwoanie do komrki w stylu A1,
jeli natomiast przybierze warto FASZ, funkcja ADRES poda odwoanie do komrki
w stylu W1K1.
Funkcja ADRES zwraca adres w postaci tekstowej, a wic swego rodzaju pprodukt,
ktry trzeba dopiero przeksztaci w odwoanie, aby mona byo odczyta zawarto ko-
mrki, ktrej adres zosta wygenerowany. Suy do tego funkcja ADR.POR, ktra zwraca
odwoanie odpowiadajce jej argumentowi tekstowemu.
Natomiast nie jest moliwe uycie funkcji ADR.POR jako funkcji tablicowej (z argumen-
tem w formie tablicy). Nie ma natomiast przeszkd, aby argument tekst_adresu repre-
zentowa adres lub nazw zakresu komrek i by w ten sposb uzyska tablicowy wynik
dziaania funkcji. Ten sposb uycia funkcji ADR.POR bdzie zreszt czsto wykorzysty-
wany w dalszej czci ksiki do generowania tablic dynamicznych.
Wartoci tworzce tablic nazywamy elementami tablicy (macierzy). Przy ich zapisie
uywamy indeksw liczbowych, z ktrych pierwszy oznacza numer wiersza, a drugi
numer kolumny.
Macierz zoon tylko z jednego wiersza lub jednej kolumny moemy nazwa wektorem,
odpowiednio wierszowym lub kolumnowym.
Operacje tablicowe
zaimplementowane w Excelu
Tablica (macierz) moe by reprezentowana w Excelu na dwa sposoby: jako zakres ko-
mrek lub tzw. staa tablicowa (zwana te literaem tablicowym).
1 2 3
0 3 2
3 2 1
Elementami staej tablicowej mog by tylko stae: liczbowe (w zapisie dziesitnym, uam-
kowym lub naukowym), tekstowe (ujte w cudzysowy) lub logiczne. Nie mona uywa
wyrae ani odwoa do innych komrek.
Staej tablicowej mona nada nazw, ale tylko za pomoc okna dialogowego Wstaw/
Nazwa/Definiuj (od wersji 2007 Formuy/Definiuj nazw lub Meneder nazw), a nie bez-
porednio w arkuszu.
a1
A= B = [b1 b2 b3 ]
a
2
a1 o b1 a1 o b2 a1 o b3
Ao B =
a o b a 2 o b2 a 2 o b3
2 1
5. Jeli A jest tablic jednowymiarow (wektorem), a B tablic dwuwymiarow,
B musi by dopasowane wielkoci do wektora A. W przypadku gdy A jest
wektorem kolumnowym, A i B musz mie t sam liczb wierszy. Analogicznie
gdy A jest wektorem wierszowym, A i B musz mie t sam liczb kolumn.
Operacja jest wykonywana na analogicznych elementach obu tablic, na przykad:
a1 b11 b12 b13
A = a2 B = b21 b22 b23
a3 b31 b32 b33
a1 o b11 a1 o b12 a1 o b13
A o B = a2 o b21 a2 o b22 a2 o b23
a3 o b31 a3 o b32 a3 o b33
Wanym uatwieniem dla osb rozwizujcych ukady rwna liniowych jest moliwo
wyznaczenia macierzy odwrotnej. Macierz odwrotn do macierzy kwadratowej A, ozna-
czan symbolem A1, jest macierz speniajca zaleno:
AA1 = A1A = E
gdzie E jest macierz jednostkow.
Wprowadzanie
i edycja formu tablicowych
Przy wykonywaniu jakichkolwiek operacji tablicowych w Excelu naley pamita o istot-
nej rnicy w stosunku do operacji na pojedynczych liczbach. Wynik operacji tablicowej
jest z reguy tablic liczbow, ktra musi by umieszczona w kilku ssiednich komrkach.
Dlatego przed wprowadzeniem do arkusza formuy tablicowej (w tym take staej tabli-
cowej) naley zaznaczy (podwietli) za pomoc myszki (przy wcinitym jej lewym
przycisku) lub klawiszy ze strzakami (przy wcinitym klawiszu Shift) zakres kom-
rek, w ktrym ma by wywietlony wynik. Po wprowadzeniu formuy zatwierdza si j
kombinacj klawiszy Ctrl+Shift+Enter albo klikniciem myszk w przycisk OK lub pole
akceptacji D, poprzedzonym wciniciem i przytrzymaniem klawiszy Ctrl+Shift (nie
wystarczy sam klawisz Enter ani samo kliknicie myszk w przycisk OK czy pole D).
Szczeglnie trzeba o tym pamita podczas korzystania z okienka dialogowego Wstaw
funkcj. Ma ono taki sam wygld niezalenie od tego, czy wprowadzamy funkcj skalarn,
czy tablicow. Taki sam przycisk OK sugeruje, e wystarczy go uy. Tymczasem w przy-
padku funkcji tablicowej jest to niewystarczajce. Omykowe uycie samego przycisku
OK powoduje, e albo wywietla si komunikat bdu #ARG!, albo widoczny jest tylko
pierwszy element wynikowej tablicy.
Podobnie jak w przypadku zwykej formuy, moliwe jest przeksztacenie zakresu zawie-
rajcego formu tablicow w sta tablicow zawierajc wartoci wyliczone przez t
formu. W tym celu naley zaznaczy obszar zajmowany przez formu, przej do trybu
edycji (naciskajc klawisz F2 lub klikajc myszk na pasku formuy), po czym nacisn
klawisz F9 i w kocu Ctrl+Shift+Enter. Zamiana formuy na wartoci jest trwaa, mona
j jednak odwoa, klikajc przycisk Cofnij.
Mona rwnie zamieni fragment formuy na sta tablicow, oczywicie fragment musi
by tak dobrany, aby da si obliczy. Sposb postpowania jest podobny jak przy prze-
ksztacaniu caej formuy, z t rnic, e po przejciu do trybu edycji naley zaznaczy
(podwietli) wybrany fragment formuy i dopiero potem nacisn klawisz F9. Dalej bez
zmian.
Zamiana zakresu na sta tablicow moliwa jest w sposb poredni. Powiedzmy, e z da-
nych zawartych w zakresie A3:B5 chcemy utworzy sta tablicow. Musimy najpierw
utworzy odwoanie tablicowe do tego zakresu, zapisujc w wybranej komrce lub zakresie
komrek = A3:B5. Nastpnie postpujemy jak przy zamianie formuy tablicowej na sta
tablicow, tzn. naciskamy klawisz F9 i w kocu Enter, jeeli zaznaczona bya jedna ko-
mrka, lub Ctrl+Shift+Enter, jeeli zaznaczono zakres komrek.
Gdy argumentem funkcji lub operacji jest tablica, ale wynik jest pojedyncz liczb jak
na przykad w przypadku funkcji WYZNACZNIK.MACIERZY formu zatwierdza si w zwyky
sposb klawiszem Enter. Istniej jednak wyjtki od tej reguy jeeli po zatwierdzeniu
formuy klawiszem Enter pojawi si bd #ARG! lub wynik jest niezgodny z oczekiwaniem,
naley sprbowa Ctrl+Shift+Enter. Szczegln ostrono trzeba zachowa podczas
uywania funkcji SUMA, gdy w zalenoci od tego, czy formu potraktujemy jak zwyk,
czy jak tablicow, moemy otrzyma rne wyniki. Wicej informacji na ten temat mona
znale w podrozdziale Zasady interpretacji nazw i adresw w wyraeniach tablicowych
w arkuszu i w formuach nazwanych.
Naley zwrci uwag, e jeli formua tablicowa obejmuje przykadowo cztery komrki
i wybierzemy jedn z nich do skopiowania, a nastpnie skopiujemy j do zakresu zoo-
nego z czterech komrek, to nie otrzymamy jednej spjnej formuy, tylko cztery kopie
niezalenych formu z odrbnie wyliczonymi adresami zakresw. Aby uzyska jedn
spjn formu tablicow, naley skopiowa od razu cay zakres albo skopiowa jedn
komrk do zakresu jednokomrkowego, a nastpnie poszerzy ten zakres do czterech
komrek.
Odwoania do elementw
lub fragmentw tablic
Uycie funkcji INDEKS
W przypadku gdy nie potrzeba ujawnia caej tablicy wynikw funkcji czy operacji ta-
blicowej, a jedynie wybrane elementy wynikowej tablicy, naley uy funkcji INDEKS
(tablica; nr_wiersza; nr_kolumny). Umoliwia ona wybr pojedynczego elementu
lub wskazanych elementw tablicy wynikw. Jeeli funkcja ma zwrci w wyniku poje-
dyncz liczb, zatwierdza si j samym Enter, jeeli wynikiem ma by tablica, zazna-
czamy najpierw miejsce na wynik, a nastpnie zatwierdzamy przez Ctrl+Shift+Enter.
Funkcja INDEKS ma dwa warianty skadni: tablicow i adresow. Forma tablicowa zaw-
sze podaje w wyniku warto lub tablic wartoci. Forma adresowa zawsze podaje
w wyniku adres. Opis skadni adresowej mona znale w pliku pomocy Excela [15]
tu nie bdziemy z niej korzysta.
tablica jest zakresem komrek lub tablic, albo wyraeniem dajcym w wyniku tablic;
Jeli zostan uyte zarwno argumenty nr_wiersza, jak i nr_kolumny, to funkcja INDEKS
daje w wyniku warto w komrce na przeciciu nr_wiersza i nr_kolumny.
Jeli argument tablica zawiera tylko jeden wiersz lub kolumn, to jeden z argumentw
nr_wiersza lub nr_kolumny mona pomin.
Jeli tablica zawiera wicej ni jeden wiersz i wicej ni jedn kolumn, przy czym wy-
korzystany zostanie tylko jeden argument nr_wiersza lub nr_kolumny, a drugi z argumen-
tw zostanie pominity lub jako argument zostanie podana warto 0, to funkcja INDEKS
da w wyniku tablic z caym wierszem lub kolumn. Aby skorzysta z tych wartoci otrzy-
manych w postaci tablicy, naley wprowadzi funkcj INDEKS jako funkcj tablicow,
naciskajc Ctrl+Shift+Enter.
Argumenty nr_wiersza i nr_kolumny mog mie rwnie form tablic lub zakresw
komrek zawierajcych numery wierszy lub kolumn.
Przykadowo jeeli TX jest tablic kolumnow, odwoanie do drugiego elementu tej tablicy
moe mie jedn z postaci:
= INDEKS(TX;2)
= INDEKS(TX;2;)
= INDEKS(TX;2;0)
= INDEKS(TX;2;1)
Podobnie jeeli TY jest tablic zoon z jednego wiersza, odwoanie do trzeciego elementu
tej tablicy moe mie posta (alternatywnie):
= INDEKS(TY;3)
= INDEKS(TY;;3)
= INDEKS(TY;0;3)
= INDEKS(TY;1;3)
1 2 4 6
3 5 3 7
6 8 10 2
5 7 4 3
Pierwszy argument funkcji INDEKS moe reprezentowa cay arkusz, co mona zapisa jako
zakres wierszy $1:$1048576 w wersjach 2007 lub 2010 bd $1:$65536 we wczeniejszych
wersjach. Jeeli odwoanie ma dotyczy arkusza innego ni biecy, naley je poprzedzi
kwalifikatorem arkusza. Mona oczywicie uy rwnie mniejszego zakresu wierszy lub
odpowiedniego zakresu kolumn, poczwszy od kolumny A. Uycie funkcji INDEKS w takiej
formie umoliwia odwoanie do komrki lub komrek o wyliczonym adresie.
Jeeli odwoanie dotyczy biecego arkusza, wystarczy poda dwa pierwsze argumenty.
cilej, funkcja zwraca odwoanie do komrki lub zakresu, ktry jest przesunity o podan
liczb wierszy lub kolumn w stosunku do komrki odniesienia. Podany zakres_odniesienia
moe by pojedyncz komrk lub zakresem komrek. Komrk odniesienia jest lewy
grny rg tego zakresu. Podajc argumenty wysoko i szeroko, mona okreli roz-
miary zakresu wynikowego inne ni rozmiary zakresu_odniesienia. Funkcja PRZESUNICIE
w rzeczywistoci nie przesuwa adnych komrek ani nie zmienia wyboru zakresu, tylko
zwraca adres zakresu wynikowego. Funkcja ta moe by wykorzystywana z innymi
funkcjami wymagajcymi podania adresu jako argumentu. Jej skadnia jest taka, jak za-
pisano poniej:
PRZESUNICIE(zakres_odniesienia; wiersze; kolumny; wysoko; szeroko)
Kolumny to liczba kolumn w lewo (liczba ujemna) lub w prawo (liczba dodatnia) liczonych
od grnej lewej komrki zakresu_odniesienia. Argument kolumny rwny 0 oznacza t sam
kolumn.
Jeli argumenty wiersze lub kolumny przesuwaj adres poza brzeg arkusza, to funkcja
PRZESUNICIE da w wyniku warto bdu #ADR!.
Jeli argumenty wysoko lub szeroko zostan pominite, to zakres wynikowy bdzie
mie tak sam wysoko lub szeroko jak zakres_odniesienia.
5 3 7
8 10 2
7 4 3
3 4
5 7
8 10
czenie tablic
i tworzenie tablic mieszanych
W niektrych przypadkach Excel wymaga, aby dane miay posta spjnego obszaru. Do
utworzenia spjnego obszaru z danych znajdujcych si w rnych miejscach arkusza
powinien suy operator poczenia, oznaczany w polskiej wersji Excela rednikiem (;),
ale dziaa on tylko w odniesieniu do argumentw niektrych (nielicznych) funkcji. Spjny
obszar mona zbudowa z niezalenych obszarw kolumnowych lub wierszowych o iden-
tycznych rozmiarach, posugujc si odpowiedni formu tablicow lub funkcj WYBIERZ
z argumentami w postaci tablic. Na przykad obszar zbudowany z trzech wierszy mona
skonstruowa za pomoc formu (zapis dotyczy wersji 2007 i wczeniejszych, w wersji
2010 \ naley zamieni na ; i odwrotnie):
= wiersz_1*{1\0\0}+wiersz_2*{0\1\0}+wiersz_3*{0\0\1}
lub = WYBIERZ({1\2\3}; wiersz_1; wiersz_2; wiersz_3)
Uyte nazwy wierszy lub kolumn mona oczywicie zastpi dowolnymi odwoaniami,
dajcymi w wyniku odpowiedni zakres lub tablic.
Funkcja ta jest bardzo elastyczna, jej skadnia i bardziej typowe zastosowania zostay
opisane w rozdziale 12. Rozwizywanie rwna nieliniowych. Oglnie skadnia funkcji
jest taka:
Jeeli nr_arg jest tablic wierszow, to funkcja WYBIERZ zwraca tablic, ktra ma tyle
kolumn, ile elementw liczy nr_arg, i tyle wierszy, ile liczy najdusza z kolumn argu-
mentw wykorzystanych do utworzenia tablicy wynikowej. Kolumny tablicy wynikowej
zale od postaci argumentw wartoi.
Analogicznie jeeli nr_arg jest tablic kolumnow, to funkcja WYBIERZ zwraca tablic,
ktra ma tyle wierszy, ile elementw liczy nr_arg, i tyle kolumn, ile liczy najduszy z wier-
szy argumentw wykorzystanych do utworzenia tablicy wynikowej. Wiersze tablicy wy-
nikowej zale od postaci argumentw wartoi.
Jeeli nr_arg jest tablic dwuwymiarow, to funkcja WYBIERZ zwraca tablic o rozmiarach
nr_arg. Elementy tablicy wynikowej zale od postaci argumentw wartoi.
Przykadowo jeeli mamy dwie tablice lub zakresy danych Tabl1, obejmujcy trzy ko-
lumny, oraz Tabl2, zoony z dwch kolumn, to za pomoc odpowiedniej formuy tabli-
cowej lub funkcji WYBIERZ w poczeniu z funkcj INDEKS moemy utworzy tablic zo-
on z piciu kolumn, tak jakby je zapisa obok siebie.
= {1;0;0;0;0}*INDEKS(tabl1;;1)+{0;1;0;0;0}*INDEKS(tabl1;;2)+
{0;0;1;0;0}*INDEKS(tabl1;;3)+{0;0;0;1;0}*INDEKS(tabl2;;1)+
{0;0;0;0;1}*INDEKS(tabl2;;2)
= WYBIERZ({1;2;3;4;5}; INDEKS(tabl1;;1); INDEKS(tabl1;;2); INDEKS(tabl1;;3);
INDEKS(tabl2;;1); INDEKS(tabl2;;2))
Wygenerowanie takich tablic jest moliwe, wymaga jednak posuenia si pewn sztuczk,
gdy nie ma funkcji sucej specjalnie do tego celu. Mona mianowicie wykorzysta jedn
z funkcji, ktrych pierwotne przeznaczenie byo inne. S to funkcje WIERSZ(przedzia)
lub NR.KOLUMNY(przedzia). Omwiono je w rozdziale 2. Funkcje te uyte w formule
tablicowej zwracaj list numerw wierszy lub kolumn podanych jako argument. Wynik
ma form tablicy jednowymiarowej. W przypadku funkcji WIERSZ jest to wektor kolum-
nowy, a w przypadku funkcji NR.KOLUMNY wektor wierszowy. Z uyciem tych funkcji
wie si jednak pewna niedogodno jeeli doda si lub usunie wiersze bd kolumny
z przedziau uytego jako argument, przedzia zostanie zmodyfikowany, podobnie jak
modyfikowane s w takim przypadku wszystkie adresy w arkuszu. Aby zabezpieczy si
przed t niedogodnoci, a ponadto uzyska moliwo konstrukcji przedziau z segmen-
tw, naley uy jeszcze funkcji ADR.POR(adres_przedziau), podajc adres_przedziau
w postaci tekstowej. Opis skadni i sposb uycia tej funkcji podano rwnie w rozdziale 2.
Tego wyraenia nie naley wpisywa do arkusza, bo wtedy dugo tablicy bdzie ogra-
niczona wielkoci zaznaczonego zakresu, zamiast tego trzeba je zapamita pod wybran
nazw, na przykad zakres, posugujc si poleceniem Wstaw/Nazwa/Definiuj (od wersji
2007 Formuy/Definiuj nazw), i w polu Nazwy w skoroszycie: wpisa wybran nazw,
a w polu Odwouje si do: wpisa podane powyej odwoanie, po czym zatwierdzi to
przyciskiem OK. Jest to formua tablicowa, jednak przy definiowaniu jej nazwy nie trzeba
uywa kombinacji Ctrl+Shift+Enter. Dziki nadaniu nazwy formua staje si dynamicz-
na w tym sensie, e zmiana wartoci n w arkuszu automatycznie modyfikuje rozmiar tablicy,
przy czym jest on ograniczony tylko liczb wierszy w arkuszu (1 n 65536 w Excelu
do wersji 2003 oraz 1 n 1048576 od wersji 2007).
Jeeli przy definiowaniu n uyto adresu absolutnego, to uycie w dowolnej komrce nazwy
zakres bdzie oznacza tak sam kolumn (pionow tablic) liczb od 1 do n. Jeeli nato-
miast przy definiowaniu n uyto adresu wzgldnego, a komrk aktywn w chwili defi-
niowania bya komrka ssiednia z prawej strony n, to uycie w dowolnej komrce na-
zwy zakres bdzie oznacza kolumn (pionow tablic) liczb od 1 do n, przy czym n bdzie
Tablica zakres zdefiniowana w powyszy sposb jest tablic kolumnow. W razie potrzeby
do zdefiniowania tablicy wierszowej mona uy funkcji TRANSPONUJ(zakres). W zasa-
dzie mona te uy funkcji NR.KOLUMNY, ale jako argument naleaoby poda oznaczenia
literowe kolumn, co jest duo mniej wygodne od numerw wierszy.
Jeli pocztkowa liczba w tablicy zakres ma by inna ni 1, mona uzmienni obie gra-
nice lub uy wyrae arytmetycznych typu zakres+5 lub zakresn/2.
wszystkie moliwe kombinacje tych liczb. Wyjtkiem jest pomocnicza kolumna wyrazu
wolnego, umieszczana zwykle jako pierwsza, ktra zawiera same jedynki. Przykad ta-
kiego planu wygenerowanego dla k = 4 pokazano na rysunku 3.1.
Rysunek 3.1.
Plan cakowitego
eksperymentu
czynnikowego dla
czterech czynnikw,
wygenerowany
za pomoc formuy
tablicowej
Wreszcie w oparciu o wektory wlk i nlk zdefiniowano tablic plan, obejmujc wlk ko-
lumn i nlk wierszy, zawierajc niezbdne kombinacje dodatnich i ujemnych jedynek.
Tablic opisano wzorem:
plan : = 1^ZAOKR.DO.CAK((nlk1)/2^(lkwlk))
Uywanie tablic
generowanych dynamicznie
Tablice takie jak omwiony powyej zakres mog suy jako podstawa definicji innych
tablic przydatnych w obliczeniach. Jeeli w definicji tablicy zakres uyto zmiennej n, ktra
ma aktualnie warto 5, to wyraenie = a+(zakres1)*(ba)/(n1) definiuje kolumn pi-
ciu wartoci rozoonych rwnomiernie pomidzy a i b. Temu wyraeniu mona nada
now nazw, na przykad x. x pozostanie wyraeniem dynamicznym tak dugo, jak dugo
jest pamitane jako nazwa. Kada zmiana wartoci n spowoduje zmian rozmiarw i za-
wartoci x. Jeeli jednak wprowadzimy x do arkusza, wpisujc do komrki lub zakresu
komrek = x i zatwierdzajc przez Enter lub Ctrl+Shift+Enter, ta komrka czy zakres
nie bdzie reprezentowa ju caej tablicy x, a tylko to, co jest wywietlone w arkuszu,
czyli pierwsz lub kilka pierwszych komrek tablicy x. Rozmiar tego obszaru pozostaje
statyczny, czyli nie zmienia si przy zmianie n.
Kada formua tablicowa w danej chwili musi dawa w wyniku tablic o okrelonej wiel-
koci i ksztacie, zalenie od skadowych formuy i zasad wykonywania dziaa. Z for-
mu, take t, ktra reprezentuje tablic dynamiczn, nie jest jednak zwizany aden adres,
w zwizku z tym ani nazwa tablicy dynamicznej, ani nazwa formuy nie moe by argu-
mentem funkcji, ktra wymaga podania adresu, na przykad funkcji PRZESUNICIE.
Jednak przy wykonywaniu operacji sumowania lub innej podobnej operacji agregujcej
(tzn. takiej, w wyniku ktrej otrzymuje si jedn liczb) na elementach tak skonstruowa-
nej tablicy naley zachowa ostrono i zawsze weryfikowa poprawno wyniku.
Excel, niestety, tu nie zawsze dziaa poprawnie. Pomimo zatwierdzenia operacji przez
Ctrl+Shift+Enter formua
= SUMA(INDEKS(x; wyc+1))
podaje nieprawidowy wynik (uwzgldnia tylko pierwszy wyraz). Aby uzyska wynik po-
prawny, trzeba uy sztuczki. Po pierwsze, trzeba zapisa formu na przykad w postaci:
= SUMA(INDEKS(x; wyc+1)*1)
Argumentami wyrae tablicowych mog by wymiennie stae tablicowe, zakresy lub ich
nazwy, o ile tylko ich wielkoci s kompatybilne, tzn. odpowiednio dopasowane. Jeeli
wyraenia tablicowe s argumentami funkcji, to mog wystpi nastpujce typowe
sytuacje:
Gdy wywoywana jest funkcja, ktra normalnie (w zwykym wywoaniu) akceptuje
argument w postaci jednej wartoci, to z argumentem w postaci tablicy zwrci
tablic wartoci obliczonych indywidualnie dla kadego elementu argumentu.
Jest tak na przykad przy wywoaniu funkcji LN, SIN, EXP, MODU.LICZBY itp.
Gdy wywoywana jest funkcja, ktra normalnie (w zwykym wywoaniu)
akceptuje dwa niezalene argumenty, to z argumentami w postaci tablic zwrci
tablic wartoci obliczonych dla kadej pary elementw argumentw, tak jak
w przypadku operacji tablicowych z dwoma argumentami. Jest tak na przykad
przy wywoaniu funkcji LOG, POTGA, KOMBINACJE, INDEKS itp.
Gdy wywoywana jest funkcja, ktra zwraca wartoci zagregowane, taka jak
SUMA, REDNIA, ILOCZYN, SUMA.KWADRATW itp., ktra akceptuje argumenty tablicowe
w zwykych wyraeniach, to oczekujemy wyniku w postaci jednej liczby. Jeeli
argumenty s podane wprost (nie wymagaj obliczenia), wynik otrzymujemy
po zatwierdzeniu wyraenia przez Enter. Gdyby zaznaczy zakres na wynik
i zatwierdzi formu jako tablicow, we wszystkich komrkach otrzymamy ten
sam wynik. Jedynie gdy argumenty s wyraeniami tablicowymi wymagajcymi
obliczenia, naley zatwierdzi formu przez Ctrl+Shift+Enter, chocia wynik
bdzie pojedyncz wartoci. Przykadowo jeli zostaa zdefiniowana nazwa
dane w postaci staej tablicowej:
dane: = {3;5\4;6} dotyczy wersji 2007 i wczeniejszych
dane: = {3\5;4\6} dotyczy wersji 2010
to wyraenie = SUMA.KWADRATW(dane) moe by zatwierdzone przez Enter,
lecz wyraenie = SUMA.KWADRATW(dane+1) musi by zatwierdzone przez
Ctrl+Shift+Enter.
Jeeli nadaje si nazw zakresowi komrek w sposb uproszczony (przez Pole nazwy albo
przez Utwrz z zaznaczenia), ta nazwa domylnie oznacza adres absolutny. Z reguy od-
powiada to naszym intencjom, jednak mona zmieni t definicj, edytujc j w Menederze
nazw. Uycie adresw wzgldnych w definicjach nazw zakresw wymaga szczeglnej
starannoci, aby uzyska wyniki zgodne z oczekiwaniami. Interpretacja takiej nazwy
zalee bdzie od tego, ktra komrka bya aktywna w chwili definiowania nazwy, gdy
wzgldem niej bd liczone przesunicia adresw. Wyjani to na przykadzie. Zamy,
e aktywny jest Arkusz1, a w nim aktywna jest komrka C1. Posugujc si Menederem
nazw, definiujemy nazw paraxy wedug wzoru:
paraxy : = Arkusz1!A1:B1
Wielko obszaru, ktry naley zarezerwowa na wynik formuy tablicowej, wynika z wiel-
koci argumentw i rodzaju wykonywanych operacji, zgodnie z zasadami podanymi na
pocztku tego rozdziau. Jeeli obszar zarezerwowany na wynik jest zbyt may, widoczne
bd pocztkowe wiersze i pocztkowe kolumny wyniku. Pojedyncza komrka oznacza
lewy grny rg obszaru, pojedynczy wiersz oznacza grny wiersz, pojedyncza kolumna
oznacza lew kolumn itd. Jeeli obszar przeznaczony na wynik bdzie zbyt duy w nad-
miarowych komrkach pojawi si komunikat bdu #N/D!. Warto zwrci uwag, e wy-
stpuje tu pewna odmienno w stosunku do kopiowania formu. Jeli obszar przeznaczony
na wynik jest wielokrotnoci kopiowanego zakresu, zostaje on powielony.
Jeeli wynik operacji tablicowej chcemy przefiltrowa, wybierajc z niego niektre wiersze
i niektre kolumny, musimy zastosowa funkcj INDEKS(nazwa_obszaru; nr_wiersza;
nr_kolumny) z argumentami w postaci tablic. Szczegowy opis tej funkcji zamieszczono
wczeniej w tym rozdziale.
Akcj t mona jednak anulowa, jeli nie jest podana. Poza tym jeli w komrkach
kolumny s ju jakie inne dane, kopiowanie formuy nie jest ju akcj domyln (moe
nastpi na danie).
Operatory odwoania
Specyfikatory kolumn mona czy za pomoc operatorw odwoania zaprezentowa-
nych w tabeli 3.2.
Uycie rednika jako operatora skadania w odniesieniu do kolumn tabeli jest poprawne
tylko w odwoaniach kwalifikowanych. Przykadowo poprawne jest odwoanie:
=Tabela1[Kol1];Tabela1[Kol3]
natomiast odwoanie:
=Tabela1[[Kol1];[Kol3]]
byoby niepoprawne.
Odwoanie to jest poprawne, pod warunkiem e skoroszyt Zeszyt1 jest otwarty. W prze-
ciwnym razie naley poda pen ciek dostpu do pliku, jak w przypadku innych
odwoa zewntrznych.
=Tabela1[ [Kol2]:[Kol4] ]
=Tabela1[[#Nagwki]; [#Dane]; [Kol3]]
W razie potrzeby ponownej konwersji zakresu na tabel (jak to zrobi, pisaem na pocztku
tego podrozdziau) naley pamita, e adne odwoania do komrek w tym zakresie nie
s automatycznie zamieniane na rwnowane im nazwy tabel i odwoania do kolumn.
Istnieje kilka sposobw utworzenia kolumny wartoci funkcji y = f(x). Omwione zostan
kolejno.
Zaznaczamy zakres x-w i klikamy myszk pole nazwy. Wpisujemy nazw zakresu na
przykad x i zatwierdzamy klawiszem Enter. Obok pocztkowej komrki w kolumnie x-w
wprowadzamy formu f(x) odwoujc si do wartoci x przez nazw zakresu. Nastpnie
formu kopiujemy w d a do wypenienia caej tabeli. W naszym przykadzie do ko-
mrki B5 wprowadzamy formu = (1+EXP(x))/(2+x^2) i kopiujemy j w d. Metody tej
nie mona stosowa, gdy formua zawiera funkcje inynierskie wywodzce si z dodatku
Analysis Toolpak.
Zaznaczamy pierwsz komrk zakresu x-w i klikamy myszk pole nazwy. Wpisujemy
nazw komrki na przykad x.(z kropk) i zatwierdzamy klawiszem Enter. Obok poczt-
kowej komrki w kolumnie x-w wprowadzamy formu f(x.) odwoujc si do nazwy x..
Z menu wybieramy Wstaw/Nazwa/Definiuj (od wersji 2007 Meneder nazw) i edytujemy
definicj x. tak, aby zmieni odwoanie absolutne na wzgldne, ewentualnie mieszane
z oznaczeniem kolumny poprzedzonym znakiem $. Przed edycj adresu w oknie dialo-
gowym dogodnie jest nacisn klawisz F2, aby moliwe byo uywanie klawiszy ze
strzakami. Nastpnie formu kopiujemy w d a do wypenienia caej tabeli. W naszym
przykadzie do komrki B5 wprowadzamy formu = (1+EXP(x.))/(2+x.^2) i kopiujemy
j w d.
Zaznaczamy zakres x-w i klikamy myszk pole nazwy. Wpisujemy nazw zakresu, na
przykad xx, i zatwierdzamy klawiszem Enter. Zaznaczamy zakres wartoci funkcji w ko-
lumnie obok zakresu x-w. W polu formuy wprowadzamy wyraenie f(xx) odwoujce si
do wartoci x przez nazw zakresu. W naszym przykadzie jest to = (1+EXP(xx))/(2+xx^2).
Nastpnie zatwierdzamy formu tablicow klawiszami Ctrl+Shift+Enter. Metody tej
nie mona stosowa, gdy formua zawiera funkcje inynierskie wywodzce si z dodatku
Analysis Toolpak.
Dziki zastosowaniu tej metody mona obliczy kilka wartoci rnych funkcji zale-
nych od tego samego argumentu. Odpowiednie formuy umieszcza si w kolejnych ko-
lumnach. Formuy mog by zoone i odwoywa si rwnie do innych komrek z wy-
nikami oblicze porednich. Kolumna argumentu x moe by tylko jedna. Jeeli potrzeba
uy kilku argumentw, naley je umieci w tablicy i odwoywa si do nich jak do
elementw tablicy, traktujc jako x na przykad numer wiersza. W kolumnie x-w po-
winny by tylko wartoci stae. Umieszczenie tam odwoa lub wyrae moe prowadzi
do bdnych wynikw.
Analogicznie dane do oblicze mog mie ukad wierszowy i wwczas w poleceniu Tabela
(lub Tabela danych od wersji 2007) wypeniamy pole Wierszowa komrka wejciowa.
Ten sposb tablicowania jest jedynym moliwym, jeeli formuy definiujce funkcj nie
mieszcz si w jednym wierszu lub w jednej kolumnie; jest te wygodny, gdy formua
funkcji zaley od wartoci x porednio poprzez inn formu nazwan, zdefiniowan
w Menederze nazw. Odpowiedni przykad podany bdzie dalej, w rozdziale 7. Obliczanie
caek oznaczonych, i zilustrowany na rysunku 7.4.
W wersji 2007 i 2010 mona zastosowa jeszcze jedn metod tworzenia tablicy wartoci
funkcji. Jest to modyfikacja metody opisanej w punkcie a) po zadeklarowaniu tabeli
obejmujcej zakresy x-w i y-w. Naley zacz od umieszczenia nagwkw nad ko-
lumn wartoci x-w i planowan kolumn y-w, w naszym przykadzie w komrkach
A4 i B4. Mog to by dowolne teksty, na przykad x i y (bez cudzysoww). Nagwki
w rnych tabelach mog si powtarza. Nastpnie naley zadeklarowa tabel jednym
z dwu sposobw opisanych w rozdziale 3. Operacje i funkcje tablicowe albo z karty
Wstawianie wybra Tabela, a nastpnie w okienku dialogowym wskaza zakres komrek
Utworzenie tablicy funkcji jednej zmiennej stanowi pierwszy etap wykonania wykre-
su funkcji danej wzorem. Do tego zagadnienia powrcimy przy omawianiu wykresw
(w rozdziale 5.).
Przykadowo rwnanie
x*y+ln(y) = x+1
nie daje si rozwika ze wzgldu na y, lecz atwo mona z niego wyznaczy x
x = (1ln(y))/(y1)
Jeeli nie jest moliwe wyznaczenie ani y, ani x, trzeba sprawdzi inne moliwoci
uproszczenia rwnania, na przykad przez podstawienie. Czasem rwnanie da si zapisa
w postaci g(z) = 0, gdzie z jest jak prost funkcj x i y, na przykad z = x+y albo z = x/y
itp. W takim przypadku naley rozwiza rwnanie g(z) = 0 za pomoc jednej z metod
opisanych w rozdziale 12. Rozwizywanie rwna nieliniowych, a po znalezieniu tego
rozwizania zastpi rwnanie g(x, y) = 0 jego now uproszczon wersj, zgodn z doko-
nanym podstawieniem. Z tego rwnania powinno si da atwo wyznaczy x lub y, co
umoliwi tabelaryzacj funkcji.
Zatem dla kadej wartoci x istniej dwie wartoci y, ktre speniaj nasze rwnanie:
y1 = t1/x oraz y2 = t2/x.
Symbol jest umowny chodzi o dwie funkcje: jedn ze znakiem + i drug ze znakiem .
Kolumn wartoci x-w i wiersz wartoci y-w tworzymy podobnie jak w przypadku
funkcji jednej zmiennej przez rczne wypenienie zakresu dowolnymi wartociami lub
przez pautomatyczne wypenienie wartociami tworzcymi cig arytmetyczny (zaczy-
najc od dwu komrek wypenionych staymi albo kopiujc prost formu przyrostow).
Jako przykad posuy nam funkcja f(x, y) = (x+y)^2/(1+x+y), ktr stablicujemy dla
x, y [1, 2] z krokiem 0,5.
Podobnie jak w przypadku funkcji jednej zmiennej, istnieje kilka sposobw utworzenia
tablicy wartoci funkcji z = f(x, y), ktre zostan po kolei opisane.
W lewym grnym rogu tablicy wynikw (w naszym przykadzie jest to komrka B4)
wprowadzamy formu f(x, y) odwoujc si do wartoci x i y przez adresy mieszane
w przypadku zmiennej x jest to oznaczenie kolumny poprzedzone znakiem $, w przy-
padku zmiennej y jest to numer wiersza poprzedzony znakiem $. Nastpnie formu ko-
piujemy w d (za pomoc myszki) a do wypenienia caej pierwszej kolumny wynikw.
Na chwil zwalniamy przycisk myszy, po czym kopiujemy dalej ca kolumn w prawo
a do wypenienia caej tabeli. Alternatywnie mona skopiowa do schowka komrk B4,
zaznaczy cay obszar wynikw i wklei komrk.
Zaznaczamy zakres x-w i klikamy myszk pole nazwy. Wpisujemy nazw zakresu, na
przykad x, i zatwierdzamy klawiszem Enter. Podobnie zaznaczamy zakres y-w, wpisuje-
my nazw zakresu, na przykad y, i zatwierdzamy klawiszem Enter. (Nazwy w tym sa-
mym arkuszu nie mog si powtarza). W komrce w lewym grnym rogu tablicy wyni-
kw (w naszym przykadzie jest to komrka B4) wprowadzamy formu f(x, y) odwoujc
si do wartoci x i y przez zdefiniowane nazwy zakresw. Nastpnie formu kopiujemy,
jak poprzednio, w d, a potem w prawo, a do wypenienia caej tabeli. W naszym przy-
kadzie do komrki B4 wprowadzamy formu = (x+y)^2/(1+x+y) i kopiujemy j. Ten
wariant jest podobny do poprzedniego w tym sensie, e wyniki uzyskujemy zawsze na
Zaznaczamy pierwsz komrk zakresu x-w i klikamy myszk pole nazwy. Wpisujemy
nazw komrki, na przykad x.(z kropk), i zatwierdzamy klawiszem Enter. Podobnie
zaznaczamy pierwsz komrk zakresu y-w i klikamy myszk pole nazwy. Wpisujemy
nazw komrki, na przykad y., i zatwierdzamy klawiszem Enter. W komrce w lewym
grnym rogu tablicy wynikw (w naszym przykadzie jest to komrka B4) wprowadzamy
formu f(x, y) odwoujc si do nazw x. i y.. Z menu wybieramy Wstaw/Nazwa/Definiuj
(od wersji 2007 Meneder nazw) i edytujemy definicje x. i y. tak, aby zmieni odwoania
absolutne na mieszane z oznaczeniem kolumny poprzedzonym znakiem $ w przypadku x.
i z oznaczeniem wiersza poprzedzonym znakiem $ w przypadku y.. Przed edycj kadego
adresu w oknie dialogowym dogodnie jest nacisn klawisz F2, aby moliwe byo uy-
wanie klawiszy ze strzakami. Nastpnie formu kopiujemy, jak poprzednio, w d, a potem
w prawo a do wypenienia caej tabeli.
Zaznaczamy zakres x-w i klikamy myszk pole nazwy. Wpisujemy nazw zakresu, na
przykad xx, i zatwierdzamy klawiszem Enter. Podobnie zaznaczamy zakres y-w, wpi-
sujemy nazw zakresu, na przykad yy, i zatwierdzamy klawiszem Enter. (Nazwy w tym
samym arkuszu nie mog si powtarza). Zaznaczamy prostoktny zakres wartoci funkcji
(w naszym przykadzie poczwszy od komrki B4). W polu formuy wprowadzamy wy-
raenie f(x, y) odwoujce si do wartoci x i y przez nazwy zakresw. W naszym przy-
kadzie jest to formua = (xx+yy)^2/(1+xx+yy). Nastpnie zatwierdzamy formu tabli-
cow klawiszami Ctrl+Shift+Enter. Rnica pomidzy tym a wariantem b) polega m.in.
na tym, e wzgldne pooenia zakresw x-w, y-w i wynikw s dowolne istotne
jest tylko, by zakres jednej zmiennej by w kolumnie, a drugi w wierszu. Lewy grny rg
zakresu wynikw odpowiada pierwszym wartociom z obu zakresw danych. Metody tej
nie mona stosowa, gdy formua zawiera funkcje inynierskie, wywodzce si z dodatku
Analysis Toolpak.
Rysunek 4.1.
Tablica wartoci
funkcji dwu zmiennych
wygenerowana za
pomoc polecenia
Tabela danych
tabela jest ju aktywna w dowolnej komrce pierwszej kolumny y-w, na przykad w ko-
mrce B4 naley wpisa formu funkcji w jednym z trzech wariantw:
1. Formu = ($A4+B$3)^2/(1+$A4+B$3), stosujc adresy mieszane odpowiedniej
komrki z kolumny x-w i nagwka kolumny B z wartoci y; warto tekstowa
w nagwku zostanie automatycznie skonwertowana na liczb, a wynik skopiowany
do caej kolumny. Nastpnie naley zaznaczy komrki z formuami w kolumnie B
i skopiowa je w prawo do koca tabeli przy uyciu metody wypeniania. W tym
wariancie mona pomin nadawanie nazwy zakresowi x-w, albo jeeli
nazwa zostaa ju nadana uy jej w formule zamiast $A4.
2. Formu = (x+[[#Nagwki];[1]])^2/(1+x+[[#Nagwki];[-1]]), stosujc
nazw nadan kolumnie x-w oraz niekwalifikowane odwoanie strukturalne
z pierwsz wartoci y ujt w nawiasy kwadratowe, wynik zostanie skopiowany
do caej kolumny. Nastpnie naley zaznaczy komrki z formuami w kolumnie B
i skopiowa je w prawo do ssiednich kolumn a do koca tabeli, stosujc metod
wypeniania. Wane, aby uy nazwy zakresu x-w, a nie specyfikatora
kolumny [x], gdy przy takim kopiowaniu w tabeli nastpuje dostosowanie
adresw kolumn i trzeba by rcznie skorygowa adresy kolumny x-w. Gdy uyje
si nazwy zakresu x-w, odwoanie to pozostanie przy kopiowaniu niezmienione.
3. T sam formu, z tym e tylko nazw x wpisujemy rcznie, natomiast zamiast
wpisywa adresy komrki y-w, klikamy myszk odpowiedni komrk
w komrce pod wartoci y pojawi si formua z kwalifikowanym odwoaniem
do komrki y-w. Jeeli zadeklarowana tabela bya pierwsz w skoroszycie,
bdzie to:
= (x+Tabela1[[#Nagwki];[1]])^2/(1+x+Tabela1[[#Nagwki];[-1]])
Formua zostanie automatycznie skopiowana do wszystkich komrek kolumny
y = 1. Nastpnie naley zaznaczy komrki z formuami w tej kolumnie
i skopiowa je w prawo do ssiednich kolumn a do koca tabeli. Nazw zakresu
x-w naleao wpisa rcznie, gdy kliknicie komrki wprowadzioby odwoanie
strukturalne do niej, ktre przy kopiowaniu byoby modyfikowane wbrew naszej
intencji.
Oprcz powyszych mona rwnie korzysta z wielu typw mieszanych, zwanych nie-
standardowymi. Wikszo z wymienionych typw wykresw jest wykorzystywana do
prezentacji danych biznesowych i nie bdzie tu omawiana. Ich opisy mona znale w pliku
pomocy Excela [15].
Koniecznie naley odrnia wykres punktowy od wykresu liniowego. Ten ostatni cha-
rakteryzuje si tym, e punkty na osi x s zawsze rwnoodlege, tak jakby byy do nich
przypisane kolejne liczby naturalne. Jako opis osi x stosuje si tu najczciej etykiety
tekstowe. Kada seria danych na takim wykresie jest przedstawiana oddzielnie.
Przygotowanie danych
do wykresu punktowego
Do wykonania wykresu punktowego potrzebna jest lista wsprzdnych x-y punktw,
ktre chcemy na nim umieci. Wsprzdne te albo znane s bezporednio (np. jako wy-
niki pomiarw), albo musz by obliczone, w przypadku gdy zaleno jest dana w postaci
wzoru. Listy wartoci x i y mona umieci zarwno w wierszach, jak i w kolumnach.
Najwygodniej wykona wykres, gdy jest jeden zakres x, umieszczony w pierwszym wier-
szu lub w pierwszej kolumnie obszaru danych. Moe by natomiast kilka zakresw y.
Przy kilku zakresach y na wykresie bdzie kilka linii. Wane jest, aby liczba danych
w zakresach x i y bya jednakowa.
Jeeli zaleno jest dana w postaci wzoru lub rwnania, rozpocz naley od wygene-
rowania listy wartoci y i umieszczenia jej obok wartoci x. Mona to zrobi kilkoma
sposobami (opisanymi w rozdziale 4. Tablicowanie funkcji jednej i dwu zmiennych).
Zestaw danych powinien obejmowa tym wicej punktw, im bardziej zoony jest ksztat
opisywanej zalenoci. W przypadku zalenoci prostoliniowej opisanej wzorem wystar-
cz dwa punkty, w przypadku podobnej zalenoci okrelonej przez wyniki pomiarw
potrzeba 4 5 punktw. W przypadku wielomianu stopnia n opisanego wzorem potrzeba
n+1 punktw, kiedy wielomian ma opisywa wyniki pomiarw, potrzeba co najmniej n+3
punkty. Przecitnie wykres powinien opiera si na mniej wicej 10 punktach rozoo-
nych rwnomiernie wzdu linii wykresu.
W komrkach powyej lub na lewo od danych mona umieci nagwki zakresw da-
nych, ktre maj si znale w legendzie wykresu.
Tekst opisu legendy wykresu moe by zoony czcionk jednego rodzaju i jednakowej
wielkoci.
Jeeli jaki element (np. opis osi) zosta pominity przy definiowaniu wykresu, zawsze
mona pniej zaznaczy wykres i ponownie wywoa kreator albo z menu Wykres (od
wersji 2007 Narzdzia wykresw) wybra odpowiedni pozycj i uzupeni brakujcy
element. Dotyczy to rwnie nowej serii danych, ktra ma by umieszczona na tym sa-
mym wykresie. Istnieje take uproszczony sposb dodawania serii danych do istniejcego
wykresu, ale dziaa on jedynie w przypadku dodawania nowej serii wartoci funkcji (y)
opartej na tym samym zakresie x, co seria (serie) ju obecna na wykresie. Naley w tym
celu zaznaczy now seri y i skopiowa do schowka (np. przez Ctrl+C), a nastpnie
zaznaczy wykres (cay wykres, a nie tylko obszar krelenia) i wklei seri danych ze
schowka (np. przez Ctrl+V).
Rysunek 5.1.
Przykad wykresu
punktowego funkcji
jednej zmiennej,
okrelonej wzorem
Kreator wykresw potrafi dopasowa lini trendu rwnie do danych, w ktrych za-
kresie wystpuj puste komrki. Linia trendu pozostanie ciga pomimo przerwy w linii
czcej punkty wykresu. Przy dodawaniu linii trendu do serii danych mona zaznaczy
w opcjach, aby wywietla na wykresie rwnanie linii trendu i/lub kwadrat wspczyn-
nika korelacji R2 (zwany rwnie wspczynnikiem determinacji). Porwnanie warto-
ci wspczynnikw korelacji przy rnych modelach linii trendu pozwala wybra ten
najbardziej odpowiedni.
Przy wyborze modelu linii trendu naley uwzgldnia wymienione poniej przesanki:
Jeli istnieje model teoretyczny opisywanej zalenoci, to naley go uwzgldni
i stara si, by linia trendu bya z nim zgodna.
Jeli nie istnieje model teoretyczny, naley stara si opisa seri danych moliwie
najprostszym rwnaniem, zapewniajcym jednak do wysok warto
wspczynnika korelacji. Jeli mamy do wyboru dwa lub wicej modeli
wykorzystujcych t sam liczb wspczynnikw, wybieramy ten, ktry zapewnia
najwysz warto wspczynnika korelacji. Jeeli porwnywane s modele
z rn liczb wspczynnikw, naley oczekiwa, e przy wyszej liczbie
wspczynnikw modelu wspczynnik korelacji bdzie mia wiksz warto.
Przyjcie modelu z wiksz liczb wspczynnikw jest uzasadnione, jeeli daje
to znaczcy, a nie tylko symboliczny wzrost wspczynnika korelacji.
Przy wyborze postaci funkcji do opisu danych naley zwrci uwag, czy linia trendu ma
przechodzi przez jaki stay punkt (czsto jest to pocztek ukadu wsprzdnych). W takim
przypadku naley zaznaczy odpowiedni opcj, ktra powoduje, e staa (wyraz wolny)
w rwnaniu nie jest obliczana, lecz przyjmowana zgodnie z deklaracj uytkownika.
Linia trendu jest wykrelana standardowo dla wartoci x pomidzy najmniejsz a najwik-
sz wartoci argumentu. Czasami zachodzi potrzeba jej przeduenia poza zakres okrelony
przez dane. W tym przypadku w opcjach linii trendu naley zaznaczy prognoz do
przodu, czyli dla wikszych wartoci x, lub do tyu, czyli dla mniejszych wartoci x.
Prognozowany zakres podaje si zawsze jako liczb dodatni w skali wartoci x.
Jeeli wykres powstaje na podstawie wzoru, wyznaczanie linii trendu ma sens tylko wte-
dy, gdy posta wzoru odpowiada jednemu z modeli linii trendu albo gdy poszukujemy
uproszczonego modelu zbyt zoonej zalenoci. W innych przypadkach naley po pro-
stu wyznaczy odpowiednio du liczb punktw i poczy je gadk lini.
Czsto zdarza si, e przy wyznaczaniu linii trendu po zaznaczeniu opcji wywietlania
jej rwnania stwierdzamy, e wspczynniki w rwnaniu s wywietlane ze zbyt ma
dokadnoci. Naley wtedy klikn to rwnanie dwukrotnie lewym lub pojedynczo
prawym klawiszem myszy i sformatowa wspczynniki z wiksz dokadnoci lub
w formacie naukowym. Alternatywnie mona odpowiednio przeskalowa o x, mnoc
lub dzielc wartoci przez odpowiednio dobrany wspczynnik, aby unikn zbyt maych
lub zbyt duych wartoci wspczynnikw w rwnaniu linii trendu.
Wykresy radarowe
Jestemy przyzwyczajeni do posugiwania si kartezjaskim ukadem wsprzdnych,
w ktrym pooenie punktu na paszczynie okrela para liczb (x, y), interpretowanych
jako odlegoci punktu od osi ukadu, przecinajcych si pod ktem prostym w punkcie
zwanym rodkiem ukadu wsprzdnych. Alternatywnie pooenie punktu mona opisa
za pomoc tzw. wsprzdnych biegunowych. W parze liczb (r, ) reprezentujcej punkt
w tym ukadzie r oznacza odlego punktu od rodka ukadu, a jest miar kta midzy
osi odcitych a wektorem czcym rodek ukadu z opisywanym punktem. Jeeli ogra-
niczymy si do zmiennoci kta w przedziale (, ], to oba opisy s rwnowane i mo-
na atwo przeliczy wsprzdne kartezjaskie punktu na wsprzdne biegunowe i od-
wrotnie. Su do tego wzory:
Rysunek 5.2.
Przykad wykresu
zalenoci empirycznej
opisanej lini trendu
(regresji)
r = x2 + y2 x = r cos
y
= arc tg y = r sin
x
Odpowiednikiem funkcji arc tg (y/x) w Excelu jest funkcja ATAN2(x; y). Lini na pasz-
czynie mona opisa przez podanie zarwno zalenoci y = f(x), jak i zalenoci r = f().
Posta formuy jest oczywicie w kadym przypadku inna, a jej stopie zoonoci zale-
y od opisywanej linii. Nie zawsze obie formuy da si zapisa w jawnej postaci.
Jednym z typw wykresw dostpnych w arkuszu kalkulacyjnym Excel jest tzw. wykres
radarowy. Jest on odmian wykresu we wsprzdnych biegunowych. Ukad wsprzd-
nych ma posta rodziny wsprodkowych okrgw, reprezentujcych izolinie wartoci
funkcji. Argumenty zostaj przeliczone na kty, przy czym pierwszej wartoci na licie
argumentw zostaje przypisany kt 0 (kierunek pionowo do gry), a pozostae wartoci
s rozmieszczane rwnomiernie, a do wypenienia kta penego (360 lub 2 w mierze
ukowej). Jeeli na licie argumentw jest na przykad 12 wartoci, to drugiej wartoci
odpowiada kt 30, a ostatniej kt 330. Kierunek wzrostu kta zgodny z ruchem
wskazwek zegara. Wartoci argumentw s tu w istocie bez znaczenia, mog to by na-
wet etykiety tekstowe, zawsze zostan rozmieszczone rwnomiernie dookoa rodka wy-
kresu. Wartoci funkcji s odkadane wzgldem rodka wykresu tak, e domylnie od-
powiada on wartoci 0 lub najmniejszej wartoci funkcji, jeli jest ona ujemna (oczywicie
rcznie mona zmodyfikowa zakres wartoci). W przeciwiestwie do klasycznego wy-
kresu biegunowego s tu dopuszczalne ujemne wartoci funkcji.
Jeli wzi pod uwag, e w praktyce wygodniejsze jest uycie stopniowej miary k-
tw, powysze wzory w Excelu naleaoby zapisa w postaci:
r : = r_min+PIERWIASTEK(x^2+y^2) x : = (rr_min)*SIN(RADIANY(fi))
fi : = STOPNIE(PI()ATAN2(y; x)) y : = (rr_min)*COS(RADIANY(fi))
sin
W charakterze przykadu mona rozpatrzy funkcj r = . Wartoci funkcji zmieniaj
cos 2
si od do +. Aby wykona wykres, naley ograniczy zakres wartoci funkcji na
przykad do przedziau [10, 10]. Jeeli przyj, e wartoci argumentu bd si zmie-
nia z krokiem 10, to przy obliczaniu wartoci funkcji naley pomin argumenty 80,
90 i 100 oraz 260, 270 i 280. Po wykonaniu wykresu radarowego uzyskamy obraz
widoczny na rysunku 5.3 po lewej stronie. Podobny przebieg zalenoci mona przed-
stawi na tradycyjnym wykresie punktowym po zastosowaniu przeksztacenia podanego
powyej. Jako warto r_min naley przyj 10 warto graniczn odpowiadajc
rodkowi wykresu radarowego. Aby grna ga wykresu zachowaa wizualn cigo
w pobliu wartoci x = 0, naley uwzgldni dodatkowy punkt odpowiadajcy ktowi
bliskiemu 360, na przykad 359.
Rysunek 5.3. Porwnanie wykresu radarowego (z lewej) z typowym wykresem punktowym (z prawej)
Wykresy powierzchniowe
Funkcja wykonywania wykresw jest pomocnicz funkcj arkusza kalkulacyjnego Excel.
Dlatego wykres powierzchniowy stanowi tylko namiastk wykresu funkcji dwu zmien-
nych. Jest on wykonywany raczej w konwencji wykresu liniowego ni punktowego. Je-
dynie wartoci funkcji, odkadane na osi pionowej, tworz zbir cigy, natomiast o x,
zwana tu osi kategorii, jest osi rwnoodlegych etykiet, podobnie o y, zwana tu osi
gbokoci lub serii. Aby wykres by wykonany prawidowo, wartoci obu zmiennych
niezalenych musz by rwnoodlege. Linie czce punkty nie s wygadzone, jedynie
obszary o zblionych wartociach funkcji s zaznaczone tym samym kolorem. W sumie
poytek z wykresw funkcji dwu zmiennych jest niewielki mog to by tylko wykresy
pogldowe. Mona obraca wykres i oglda go pod rnymi ktami (opcja Obrt 3-W).
Ze wzgldu na perspektyw trudno odczyta z wykresu warto funkcji. Do dokadniej-
szej interpretacji zdecydowanie lepiej wykona seri wykresw funkcji jednej zmiennej,
a drug zmienn potraktowa jako parametr.
Jeeli mimo wszystko zdecydujemy si wykona taki wykres, lepiej umieci go w osob-
nym arkuszu, jest on wtedy bardziej czytelny. Po wprowadzeniu zmian w wersji Excela
2007 wykresy powierzchniowe s nieco dokadniejsze, zmieniona zostaa ich domylna
kolorystyka (to kady moe sam ustawi wedug swojego upodobania), najistotniejsze
wady i ograniczenia jednak pozostay. Niezbyt wygodny jest te sposb zaznaczania da-
nych do wykresu. Jeeli zaznaczymy cay obszar danych, obejmujcy wartoci x, y i z
(w ukadzie tablicy dwuwymiarowej), podobnie jak to si robi w przypadku wykresw
punktowych, otrzymamy wykres zafaszowany. Naley wczeniej zaznaczy tylko zakres
wartoci z, a po wykonaniu wykresu zaznaczy go i rcznie wskaza zakres etykiet na osi
kategorii (x) oraz poszczeglne wartoci na osi gbokoci (y) jako nagwki serii da-
nych. Jako serie danych traktowane s kolumny lub wiersze domylnie te, ktrych jest
mniej, ale mona to rcznie skorygowa. Po ustaleniu, na ktrej osi maj by wartoci x,
a na ktrej y, naley wskaza odpowiednie zakresy etykiet. W Excelu 2007 i 2010 wska-
zuje si je po wybraniu z menu Narzdzia wykresw/Projektowanie/Zaznacz dane, we
wczeniejszych wersjach mona to zrobi w drugim kroku uycia kreatora wykresw lub
pniej wywoujc z menu Wykres/Dane rdowe/Serie.
Rysunek 5.4. Rwnanie van der Waalsa przedstawione w postaci wykresu powierzchniowego w Excelu 2000
Rysunek 5.5.
Rwnanie van der
Waalsa przedstawione
w postaci wykresu
powierzchniowego
w Excelu 2007
Wykresy dynamiczne
Wykres funkcji dwu zmiennych mona przedstawi take w postaci animowanego wy-
kresu funkcji jednej zmiennej. Druga zmienna jest traktowana jako parametr, ktry w da-
nym momencie przyjmuje okrelon warto, i wykres przedstawia funkcj jednej zmien-
nej. Poprzez zmian wartoci parametru w czasie mona uzyska efekt animacji.
Dane do wykresu i sam wykres przygotowuje si zgodnie z podanymi wzorami jako wy-
kres punktowy XY. Gdy teraz wprowadzimy st = 1, za kadym naciniciem klawisza
F9 komrka fi bdzie zwikszana o dfi i wykres bdzie odpowiednio modyfikowany.
Podobnie przy st = 1 warto fi bdzie zmniejszana o dfi, wreszcie przy st = 0 obli-
czenia bd rozpoczynane od nowa.
W celu wywietlenia wykresu w komrce naley przygotowa dane w formie zakresu war-
toci y (w wierszu lub kolumnie) oraz ewentualnie zakresu wartoci x. Nastpnie z paska
Wstawianie naley wybra Wykresy przebiegu w czasie, wskazujc jednoczenie jeden
z dostpnych podtypw. Wywietli si okno dialogowe w nim naley poda zakres
danych y do prezentacji na wykresie i adres komrki, w ktrej ma by wykres. Jeeli
przed wyborem typu wykresu zaznaczymy zakres danych y albo komrk docelow, ich
adresy zostan automatycznie przyjte jako domylne. Wstpnie wykres jest wykonywany
w wersji z rwnomiernie rozoonymi punktami (Typ osi oglnej). Jeeli odlegoci mi-
dzy punktami danych s rne, naley dodatkowo zdefiniowa o x na wykresie. W tym
celu trzeba w trybie projektowania wykresu (zaznaczona komrka lub zakres komrek
z wykresem/wykresami) wybra opcje O, a nastpnie Typ osi daty. W oknie dialogo-
wym naley poda zakres danych osi x. Mog to by dowolne dane cakowitoliczbowe,
nie tylko daty (ewentualne czci uamkowe s pomijane). Pozostae dostpne opcje osi
pozwalaj zdecydowa, czy ma by widoczna o x wskazujca poziom odniesienia war-
toci y oraz jaki zakres wartoci y ma by uwzgldniony na wykresie, jak rwnie umo-
liwiaj odwrcenie kolejnoci danych. Naley rwnie zwrci uwag, e w przeci-
wiestwie do tradycyjnych wykresw punktowych wartoci na osi x s automatycznie
sortowane w kolejnoci rosncej lub malejcej. Dlatego gdy lista argumentw nie jest
uporzdkowana, ksztaty miniwykresu i tradycyjnego wykresu punktowego s rne.
Wykres umieszczony w komrce stanowi jej to. Pozwala to na umieszczenie w tej ko-
mrce dodatkowego opisu wykresu jako jej gwnej zawartoci.
Rysunek 5.7.
Przykad
wykorzystania
wykresw przebiegu
w czasie, dostpnych
w Excelu 2010, do
prezentacji zalenoci
gstoci pierwiastkw
w okresach tablicy
Mendelejewa
Na kolejnym rysunku (rysunek 5.8) pokazano przykad miniwykresu z osi x typu daty.
Zakres danych x celowo jest nieuporzdkowany, aby pokaza rnice w wygldzie tego
wykresu w porwnaniu z tradycyjnym wykresem punktowym.
Rysunek 5.8.
Porwnanie
miniwykresu liniowego
z osi x typu daty
z tradycyjnym wykresem
punktowym z punktami
poczonymi lini
aman
Jeeli y = f(x), to pochodna oznaczana symbolem y' = f'(x) w punkcie x = x0 jest rwna
(alternatywnym symbolem pochodnej jest stosunek dy/dx):
dy y y y0
y = = lim = lim
dx x0 x x x0 x x0
W przypadku funkcji cigych nie ma znaczenia, czy x > x0, czy odwrotnie, granica ma
tak sam warto. Gdy dysponujemy tylko wartociami funkcji w wybranych punktach,
moemy wyznaczy przyblienie pochodnej, obliczajc iloraz rnicowy, czyli stosunek
zmiany wartoci funkcji y do odpowiadajcej jej zmiany wartoci argumentu x. Im
mniejsza warto x, tym lepsze przyblienie pochodnej mona wyznaczy (przy zao-
eniu, e obliczenia odbywaj si na podstawie dokadnych wzorw, a nie obarczonych
bdami wynikw pomiarw).
Jeli funkcja jest opisana wzorem, to jej pochodn take mona opisa pewnym wzorem.
Czasem jednak wzr ten moe by bardzo zoony i niedogodny do oblicze. Wtedy wy-
godniej jest zastosowa rniczkowanie numeryczne. Drugi przypadek, kiedy stosuje si
rniczkowanie numeryczne, zachodzi wtedy, gdy funkcja dana jest jako zbir punktw,
na przykad wynikw pomiarw.
Przy rniczkowaniu numerycznym bdzie miao znaczenie, czy obliczajc warto po-
chodnej w punkcie x = x0, korzystamy z punktw o wartoci argumentu mniejszej, czy
wikszej od x0. W zwizku z tym stosuje si trzy rodzaje ilorazw rnicowych: oparte
2 y y 2 2 y1 + y 0
za pomoc rnic przednich =
x 2 ( x1 x 0 ) 2
2 y y 2 y 0 + y 1
za pomoc rnic centralnych = 1
x 2
0,25 ( x1 x 1 ) 2
Numeryczne obliczanie
pochodnej funkcji danej wzorem
W przypadku funkcji danej wzorem bezporednie zastosowanie ilorazu rnicowego jako
przyblienia pochodnej nie stanowi problemu i moe by efektywnie wykorzystane do
obliczenia pochodnych w sytuacji, gdy trudno jest znale odpowiedni formu funkcji
pochodnej. Jedynym problemem jest dobr optymalnej wartoci x. Obliczenia wykonywa-
ne s w Excelu z dokadnoci do okoo 15 cyfr znaczcych, w zwizku z tym zastoso-
wanie bardzo maej wartoci x moe prowadzi do niedokadnoci wywoanej ograniczo-
n dokadnoci stosowanej arytmetyki. Z kolei due wartoci x powoduj bd zwizany
z pominiciem w rozwiniciu funkcji w szereg Taylora wyrazw wyszych rzdw.
Numeryczne rniczkowanie
danych pomiarowych
Jeeli wartoci funkcji pochodz z pomiarw, to trzeba mie wiadomo, e bdy po-
miarw w sposb bardzo istotny wpywaj na oszacowanie pochodnej. Iloraz rnicowy
jest stosunkiem rnic wartoci funkcji i argumentu w pobliskich punktach, a wic jest to
stosunek dwu maych, w porwnaniu z wartoci funkcji, liczb. Jeeli bdy pomiarw
maj przeciwne znaki, moe nastpi kumulacja bdw i w efekcie bd oszacowania po-
chodnej bdzie bardzo duy. Dlatego bezpieczniej jest przeprowadzi najpierw aproksy-
macj badanej funkcji na przykad wielomianem i obliczy pochodn wielomianu aprok-
symacyjnego zamiast bezporedniego obliczania pochodnej z danych dowiadczalnych.
Rysunek 6.2.
Numeryczne
obliczenia pierwszej
i drugiej pochodnej
na przykadzie krzywej
miareczkowania
Przykad 6.1.
Tabelka przedstawia krzyw miareczkowania prbki 20 cm3 mieszaniny roztworw sa-
bego i mocnego kwasu 0,1-molowym roztworem NaOH. Wykonano wykres zalenoci
pH od objtoci dodanego odczynnika miareczkujcego oraz wykres ilorazu rnicowego
pH/V jako funkcji V, ktry jest przyblieniem pochodnej. Warto ilorazu rnicowe-
go przypisano do rodka przedziau V, dla ktrego zostaa obliczona. Wykonano rwnie
wykres drugiej pochodnej. Z wykresw odczytano, przy jakich wartociach V pH zmienia
si najszybciej. Na wykresie I pochodnej na osi rzdnych zastosowano skal logarytmiczn.
Na wykresach mona zauway dwa punkty krytyczne, pierwszy skok pH wystpuje przy
V = 24,4 cm3 i jest prawie niewidoczny przy zastosowaniu skali liniowej na wykresie po-
chodnej. Dopiero uycie skali logarytmicznej ujawnia ten punkt krytyczny. Drugi skok pH
jest bardzo wyrany i wystpuje przy V = 55,0 cm3. Na wykresie II pochodnej skal na osi
rzdnych celowo ograniczono do 1, aby mona byo zauway pierwszy may skok pH.
Obliczenie pochodnej
za porednictwem funkcji aproksymujcej
Gdy zachodzi potrzeba wyznaczenia pochodnej zalenoci okrelonej przez wyniki do-
wiadcze, rozwizaniem lepszym od bezporedniego rniczkowania jest aproksymacja
badanej zalenoci odpowiednio dobran funkcj, na przykad wielomianem, a nastpnie
n
f ( x) = 2a 2 + 2 3a3 x + 3 4a 4 x 2 + K + (n 1)na n x n 2 = (k 1)ka x
k =2
k
k 2
dV
V2 = V x1
dx1
Wiksz dokadno mona osign, jeeli zamiast objtoci molowej V jako zmienn ro-
bocz wemie si zmian objtoci mieszaniny na skutek zmieszania, czyli wielko
Vmix = Vx1V1x2V2. Uwzgldniajc, e x1+x2 = 1, atwo wykaza, e
d (Vmix ) dV
= V 1 +V 2
dx1 dx1
i dalej
d (Vmix )
V1 = V 1 + Vmix + (1 x1 )
dx1
d (Vmix )
V2 = V 2 + Vmix x1
dx1
Vmix = x1 x2y(x1)
a wic
dy
V1 = V 1 + x1 x 2 y + x 22 y x1 x 2 y + x1 x 22
dx1
dy
V1 = V 1 + x 22 y + x1
dx1
Podobnie
dy
V2 = V 2 + x1 x 2 y x1 x 2 y x1 y + x1 x 2
dx1
dy
V2 = V 2 + x12 y x 2
dx1
zostay wyznaczone. Zatem poza skrajnymi dwoma pierwszymi i dwoma ostatnimi punkta-
mi, dla ktrych jest dostpny tylko jeden zestaw wspczynnikw, dla pozostaych punktw
dostpne s po dwa zestawy wspczynnikw, ktre uredniono. Wyniki oblicze pokazano
na rysunku 6.3. Do obliczenia pochodnych zastosowano wzory podobne do proponowa-
nych powyej. Przykadowo (zapis dotyczy wersji 2007 i wczeniejszych, w wersji 2010 ;
w staej tablicowej naley zamieni na \):
= SUMA(REGLINP($D$7:$D$10; $A$7:$A$10^{1;2;3})*A8^{2;1;0;0}*{3;2;1;0})
f ( x)dx = lim
n A = lim f ( x)h
i =1
i
n
i =1
i i
a
f i ( x) = f ( xi 1 + 0,5hi ) = f (0,5( xi 1 + xi ))
f i ( x) = 0,5( f ( xi 1 ) + f ( xi 1 + hi )) = 0,5( f ( xi 1 ) + f ( xi ))
Ta ostatnia metoda jest mao popularna, gdy jest bardziej zoona rachunkowo od meto-
dy parabol, cho wcale nie jest od niej dokadniejsza. Jej zastosowanie ma sens jedynie
w przypadku, gdy liczba punktw pomiarowych narzuca nam liczb podprzedziaw nie-
parzyst i podzieln przez 3.
A = h f ( x
i =1
i
i =1
i 1 + 0,5h) metoda prostoktw
n n 1
A
i =1
i = h(0,5 f ( x 0 ) + f ( x ) + 0,5 f ( x ))
i =1
i n metoda trapezw
n
n 1 n 1
A = 16 h f ( x ) + 4 f ( x
i =1
i 0
i=0
i + 0,5h) + 2 f ( x ) + f ( x )
i =1
i n metoda parabol
n
n 1 n 1 n 1
A
i =1
i = 1 h f ( x 0 ) + 3
8
i =0
f ( xi + 13 h) + 3
i =0
f ( xi + 23 h) + 2
i =1
f ( xi ) + f ( x n )
Jak atwo zauway, kad metod otrzymano inny wynik. Na tym etapie oblicze trudno
oceni, jak dokadne s te wyniki. Bez oszacowania dokadnoci s one praktycznie bez-
wartociowe. Istniej wzory pozwalajce na ocen dokadnoci otrzymanych przyblie,
odmienne dla kadej metody, ale sdz, e wygodniej jest po prostu powtrzy oblicze-
nia przy wikszej liczbie podprzedziaw i porwna uzyskane wyniki. Dogodnie jest
zwikszy dwukrotnie liczb podprzedziaw, czyli w naszym przykadzie nowa warto
n wyniesie 8, a h = 0,5. Procedura obliczeniowa jest taka sama, wic wystarczy kilka
operacji kopiowania i modyfikacja zakresw sumowania, aby uzyska nowy, dokadniej-
szy wariant oblicze. Poprzednie obliczenia trzeba jednak zachowa do porwnania.
Wielko tej sumarycznej poprawki jest zarazem oszacowaniem od gry bdu obliczonej
ostatecznie wartoci caki.
W ten sposb obliczy mona cak oznaczon kadej funkcji danej wzorem. Aby uzy-
ska wystarczajco dokadny wynik, trzeba jednak wykona sporo oblicze, wprawdzie
prostych, ale ich przygotowanie zajmuje duo czasu i miejsca w arkuszu. Wyniki pored-
nie wartoci funkcji i pola podobszarw s potrzebne tylko przejciowo i nie musz
by wywietlane w arkuszu. W praktyce, gdy takich oblicze musimy przeprowadza
wicej, praca z tak du liczb wynikw porednich staje si niewygodna i wymaga
usprawnienia. Wyjcia s dwa: albo napisa procedur w Visual Basicu (powrcimy do
tego w rozdziale 22. Elementy jzyka VBA (Visual Basic for Applications)), albo wy-
korzysta dostpne w Excelu operacje tablicowe takie rozwizanie pojawi si w na-
stpnym podrozdziale.
Za zadanie postawimy sobie konstrukcj jednej formuy tablicowej, ktra bdzie dawa
od razu podany wynik, pobierajc z komrek arkusza parametry cakowania, tzn.
granice cakowania a i b oraz liczb podprzedziaw n. Posta funkcji podcakowej
bdzie zawarta w formule.
To wyraenie naley zapamita pod nazw zakres, wybierajc z menu polecenie Wstaw/
Nazwa/Definiuj (od wersji 2007 Formuy/Definiuj nazw), i w polu Nazwy w skoroszycie:
wpisa wybran nazw, a w polu Odwouje si do: wpisa podane powyej odwoanie,
po czym zatwierdzi to przyciskiem OK. Nadawanie nazw formuom omwiono dokad-
niej w rozdziale 2. Podstawowe operacje w arkuszu.
Teraz, uywajc nazwy zakres, mona odwoywa si do cigu kolejnych liczb natural-
nych od 1 do n, tak jakby byy zapisane w kolumnie arkusza. Nastpnym krokiem bdzie
obliczenie pl podobszarw odpowiadajcych podprzedziaom z zakresu. W ramach tego
kroku wyrni mona nastpujce etapy:
a) okrelenie wartoci x, jako funkcji numeru podprzedziau i, w ktrych naley
obliczy warto funkcji podcakowej f(x);
b) wstawienie x do formuy funkcji;
c) okrelenie wag liczbowych, z jakimi maj by wzite wartoci funkcji, i zapisanie
ich w formie staej tablicowej;
d) obliczenie sumy iloczynw wartoci funkcji i wag, pomnoonej przez dugo
podprzedziau.
Tablica ma wymiary 44. Poniewa definicja tablicy musi by pena, w miejsce brakuj-
cych danych wpisano zera (s one tu zaznaczone pogrubion kursyw jest to zabieg
troch sztuczny, ale umoliwia uzyskanie wynikw w sposb najbardziej efektywny). Ta-
blic mona zdefiniowa przez Wstaw/Nazwa/Definiuj (od wersji 2007 Formuy/Definiuj
nazw), wpisujc nazw punkty w polu Nazwy w skoroszycie:, a definicj w polu Odwouje
si do:. Odwoanie do wierszy tej tablicy wymaga uycia funkcji:
= INDEKS(punkty; metoda; 0)
Zamiast definiowa sta tablicow punkty, mona potrzebne wartoci wyliczy z od-
powiedniego wzoru. Odpowiednikiem wyraenia INDEKS(punkty; metoda; 0) moe
by formua:
= JEELI(metoda=1;0,5;(TRANSPONUJ(WIERSZ(ADR.POR("1:"&metoda)))-1)/
(metoda-1))
W drugim wariancie oblicze tablicy argumentw moemy nada nazw xp, definiujc
j jako:
= a+(zakrespodzia)*h
W drugim wariancie oblicze moemy wykorzysta funkcj WYBIERZ. Jej skadni opisano
dokadnie w rozdziale 12. Rozwizywanie rwna nieliniowych. W tym przypadku mo-
na zapisa formu:
= WYBIERZ(metoda; 1; {1;1}/2; {1;4;1}/6; {1;3;3;1}/8)
i nada jej nazw wagi. Formua ta zastpi wywoanie funkcji INDEKS(wsp; metoda; 0).
Ostatnim krokiem oblicze jest przeprowadzenie sumowania. Dziki wpisaniu zer w miej-
scu brakujcych wspczynnikw niewykorzystywane w danej metodzie kolumny s wy-
penione zerami i nie przeszkadzaj w sumowaniu. W metodzie prostoktw wartociami
Uzyskany wynik ma bardzo zwiz posta, mona teraz elastycznie modyfikowa me-
tod i parametry cakowania, przeprowadza ekstrapolacj lub poprawia wynik przez
zwikszanie liczby podprzedziaw cakowania. W ostatecznej wersji arkusza porednie
wyniki oblicze s niepotrzebne, jednak na etapie opracowania formu niezbdne jest wy-
wietlanie wynikw porednich w celu sprawdzenia poprawnoci wszystkich krokw
obliczeniowych. Dlatego te w arkuszu prezentowanym na rysunku 7.3 zachowano
porednie etapy oblicze.
Rysunek 7.4.
Przykad obliczenia
caki z wykorzystaniem
innego wariantu
formu tablicowych
Litera f symbolizuje funkcj podcakow, w naszym przykadzie zamiast f(x) naley wpi-
sa EXP(x)/x. Formuy zawierajce sumy musz by wprowadzane jako formuy tablicowe.
Kade z powyszych wyrae bazuje na definicji tablicy zakres, ktra obejmuje konkretn
liczb elementw, okrelon jako n. Zmieniajc n, otrzymamy inne przyblienia caki.
Aby sporzdzi zestawienie wynikw oblicze dla rnych wartoci n, najwygodniej po-
suy si sposobem opisanym w rozdziale 4. Tablicowanie funkcji jednej i dwu zmien-
nych, w podrozdziale Funkcje jednej zmiennej, w punkcie e). Naley tylko pamita,
by komrka zadeklarowana jako Kolumnowa komrka wejciowa bya t komrk,
do ktrej odwouje si definicja tablicy zakres.
Rysunek 7.5.
Zestawienie
tabelaryczne wynikw
oblicze caki metod
trapezw przy rnej
liczbie podprzedziaw
n, na ktre podzielono
przedzia cakowania
dwie metody
oblicze
Wynik cakowania mona umieci w komrce arkusza, wprowadzajc formu jako ta-
blicow lub definiujc j jako formu nazwan w Menederze nazw. W tym drugim przy-
padku w komrce arkusza wpisuje si tylko odwoanie = wynik. Jeeli teraz w kolumnie
pod komrk nw umiecimy list liczb podprzedziaw, to do komrek ssiednich moe-
my skopiowa odwoanie: = wynik, ktre jest w tym przypadku odwoaniem wzgldnym.
Warto zwrci uwag, e wprowadzajc formu tablicow do Menedera nazw, zatwier-
dzamy j tylko klawiszem Enter. Rwnie odwoanie: = wynik, ktre wpisujemy do arku-
sza, jest zwykym odwoaniem.
Wykorzystanie iteracji
i odwoa cyklicznych
do obliczania caek
Zamiast zapisu tablicowego do uproszczenia obliczenia caki mona wykorzysta ide
iteracji polegajc na sumowaniu czstkowych wynikw oblicze w tej samej komrce.
Z punktu widzenia arkusza kalkulacyjnego w obliczeniach wykorzystuje si zamierzone
odwoania cykliczne, czyli wielokrotn modyfikacj zawartoci tej samej komrki. Obli-
czenia takie naley zainicjowa przez rczne ustawienie wartoci zmiennej sterujcej.
Przebieg oblicze oparty jest na podobnej idei, jak stosowano dotychczas. Wyjanimy
to na przykadzie metody trapezw. Potrzebnych bdzie kilka komrek roboczych:
komrka sterujca start, ktrej bdziemy nadawa warto 1 lub 0 (albo PRAWDA
lub FASZ) warto 1 inicjuje obliczenia, ustawiajc wartoci pocztkowe
w innych komrkach roboczych, warto 0 uruchamia proces iteracyjny;
zakoczenie oblicze jest automatyczne, po spenieniu okrelonego warunku;
komrka i, przechowujca numer podprzedziau;
komrka x, przechowujca warto zmiennej niezalenej, odpowiadajc
kocowi kadego podprzedziau;
komrka wynik, w ktrej obliczana jest warto caki.
Aby przeoy powyszy opis na jzyk formu Excela, naley zapisa w poszczegl-
nych komrkach wyraenia warunkowe:
i : = JEELI(start; 0; JEELI(i < n; i+1; n))
x : = a+i*h
wynik := JEELI(start; (f(a)+f(b))/2*h; JEELI(i < n; wynik+f(x)*h; wynik))
W tym wzorze f(a), f(b) i f(x) oznaczaj adresy komrek, w ktrych znajduj si obliczone
wartoci funkcji.
( x) = e t t x dt
0
( x) = e t t x dt + e t t x dt
0
t1
0 1 / t1
dz
t1
e t t x dt =
1 / t1
e 1 / z z x
z2
= e 1 / z ( 1z ) x + 2 dz
0
Rysunek 8.1. Przykad obliczenia caki niewaciwej metod Simpsona z ekstrapolacj. Dwa warianty
oblicze, w tym jeden z zamian zmiennej
Jako ciekawostk mona doda, e funkcja (x) moe by obliczona w Excelu bezpo-
rednio, gdy istnieje prosty zwizek pomidzy t funkcj a zaimplementowan w arkuszu
funkcj ROZKAD.LIN.GAMMA, mianowicie:
(x) = EXP(ROZKAD.LIN.GAMMA(x+1))
f (t )dt = I
a
Posta funkcji f(t), dolna granica cakowania a oraz warto caki I s dane. Naturalnym
rozwizaniem tego problemu jest przyjcie pewnej pocztkowej wartoci x0, obliczenie
wartoci caki I0, ktra odpowiada przyjtemu x0, a nastpnie iteracyjna korekta x a do
uzyskania poprawnej wartoci I. Ten ostatni etap (dopasowanie wartoci x) mona po-
wierzy narzdziom takim jak Szukaj wyniku lub Solver. Istotne jednak jest takie zorga-
nizowanie oblicze, aby wszystkie parametry cakowania byy wyliczane, tak by po korekcie
grnej granicy cakowania nastpio automatyczne dopasowanie dugoci podprzedzia-
w cakowania i przeliczenie wartoci funkcji podcakowej w nowych punktach.
Opisane powyej operacje s moliwe, jeeli funkcja podcakowa jest opisana wzorem
i moe by obliczona dla dowolnej wartoci argumentu. Moe rwnie wystpi sytuacja,
e funkcja f(t) znana jest tylko jako zbir punktw (np. pomiarowych), wtedy nasze za-
danie mona rozwiza tylko metod interpolacji. Rozwizanie tego zagadnienia najlepiej
przeledzi na przykadach.
e
t 2
dt = 0,7
0
Rysunek 9.1.
Znajdowanie grnej
granicy cakowania
z wykorzystaniem
Solvera i metod
Newtona
Analogiczne obliczenia mona wykona za pomoc narzdzia Szukaj wyniku (od wer-
sji 2007 Dane/Narzdzia danych/Analiza symulacji (wersja 2007) lub Analiza warun-
kowa (wersja 2010)/Szukaj wyniku). Po ustawieniu parametru Maksymalna zmiana
w Opcjach/Przeliczanie (w wersji 2007 Przycisk pakietu Office/Opcje programu Excel/
Formuy/Opcje obliczania, w wersji 2010 Plik/Opcje/Formuy/Opcje obliczania) na
1E8 otrzymamy wynik 0,8861429 odpowiadajcy dokadnie zaoonej wartoci ca-
ki I = 0,7.
Funkcja podcakowa
w postaci zbioru punktw pomiarowych
W charakterze kolejnego przykadu rozwaymy funkcj I = f(E) okrelon jako zbir
punktw wyznaczonych dowiadczalnie. Funkcja jest dana jako lista par wsprzdnych
(E, I). S to wyniki pewnego eksperymentu elektrochemicznego. Pierwsza wsprzdna,
E, oznacza zmierzon warto potencjau w woltach, ktra wzrasta liniowo z upywem
czasu z zaprogramowan szybkoci r = 0,010 V/s.
E = E0+r*t
Druga wsprzdna, I, oznacza natenie prdu w amperach. Naszym zadaniem jest okre-
lenie, przy jakich wartociach potencjau Ex przepuszczony adunek elektryczny, Qx, osiga
zadane wartoci. adunek elektryczny jest rwny cace z natenia prdu wzgldem czasu.
x
I (t )dt = Q
0
x
I ( E )dE = r * Q
E0
x
Temu wyraeniu naley nada nazw w tym celu trzeba wybra z menu Wstaw pole-
cenie Nazwa/Definiuj (od wersji 2007 Formuy/Definiuj nazw) i w polu Nazwy w skoro-
szycie: wpisa rob, a w polu Odwouje si do: wpisa podane powyej odwoanie, po
czym zatwierdzi to przyciskiem OK.
Wartoci funkcji i argumentw pobiera bdziemy z tablic TABE i TABI. Wartoci z tablic
odczytuje si za pomoc funkcji INDEKS, podajc nazw tablicy i numer elementu. W miej-
scu numeru elementu w odwoaniach tablicowych mog wystpi rwnie zakresy ko-
mrek zawierajcych numery. Nastpnym krokiem bdzie obliczenie pl podobszarw
odpowiadajcych podprzedziaom z zakresu rob. Pole pierwszego trapezu obliczylibymy
z wyraenia:
= (INDEKS(TABI;1)+INDEKS(TABI;2))/2*(INDEKS(TABE;2)INDEKS(TABE;1))
Aby obliczy cak w caym zakresie, naley dokona sumowania pl trapezw w za-
kresie indeksw okrelonych przez tablic rob. Dokadniej: kady trapez wymaga
uwzgldnienia dwch punktw pierwszy o indeksie z zakresu od 1 do Koniec, dru-
gi o indeksie o 1 wikszym, czyli z zakresu od 2 do Koniec+1. Po zastosowaniu notacji
tablicowej odpowiednie wyraenie bdzie miao form:
= SUMA((INDEKS(TABI;rob)+INDEKS(TABI;rob+1))/2*(INDEKS(TABE; rob+1)
-INDEKS(TABE;rob)))
Zamiast funkcji INDEKS mona wykorzysta funkcj PRZESUNICIE. W tym przypadku nie
potrzeba definiowa formuy rob. Rwnowan formu tablicow mona zapisa w formie:
= SUMA((PRZESUNICIE(TABI;0;0;Koniec)+PRZESUNICIE(TABI;1;0;Koniec))
/2* (PRZESUNICIE(TABE;1;0;Koniec)PRZESUNICIE(TABE;0;0;Koniec)))
Po zmianie wartoci zmiennej Koniec otrzymujemy odpowiadajce jej wartoci caki. Na-
ley dobra warto zmiennej Koniec tak, aby warto caki odpowiadaa zadanej wartoci
adunku Qx pomnoonej przez szybko skanowania r (w arkuszu oznaczanej ra). Do-
kadniej warto ta (Qx*r) powinna zawiera si pomidzy cakami odpowiadajcymi
liczbie podprzedziaw rwnej Koniec, a Koniec+1.
Rnica midzy tymi cakami odpowiada polu trapezu o numerze Koniec+1. Pole to obli-
czymy ze wzoru:
= (INDEKS(TABI;Koniec+1)+INDEKS(TABI;Koniec+2))/2*(INDEKS(TABE;Koniec+2)
INDEKS(TABE;Koniec+1))
lub
= (PRZESUNICIE(TABI;Koniec;0;1)+PRZESUNICIE(TABI;Koniec+1;0;1))
/2* (PRZESUNICIE(TABE;Koniec+1;0;1)PRZESUNICIE(TABE;Koniec;0;1))
Jeeli zmienna Koniec ma odpowiednio dobran warto, to powyszy warunek jest spe-
niony i mona przeprowadzi interpolacj liniow w celu wyznaczenia dokadnej wartoci
argumentu Ex. Odpowiednie wzory podano w rozdziale 14. Wyszukiwanie danych w ta-
blicach i interpolacja. W tym przypadku interpolacj przeprowadzamy wedug wzoru:
= E(Koniec)+(E(Koniec+1)E(Koniec))*(Qx*rCaka(Koniec))/Trapez(Koniec+1)
Warto zmiennej Koniec mona dobra metod prb i bdw, zwaszcza e warunek
ujemnej wartoci iloczynu rnic jest speniony tylko jeden raz (przy zaoeniu, e caka
zmienia si monotonicznie). Bardziej elegancko byoby wykorzysta do tego Solvera, ale
ten, niestety, nie radzi sobie z tym zadaniem (sygnalizuje jaki niesprecyzowany bd).
Mona napisa w Visual Basicu prost makroinstrukcj, ktra przeskanuje cay zakres
moliwych wartoci zmiennej Koniec a do spenienia warunku kocowego. Do tej sprawy
powrcimy przy omawianiu elementw programowania w VBA (rozdzia 22. Elementy
jzyka VBA (Visual Basic for Applications)).
Rysunek 9.2. Ekran z obliczeniem grnej granicy cakowania metod interpolacji w przypadku danych
eksperymentalnych
a
n =1
n . Przykadowo szereg geometryczny zapiszemy w postaci aq
n =1
n 1
. Praktyczne
znaczenie maj szeregi zbiene, tzn. takie, dla ktrych istnieje skoczona granica sum
czciowych przy n . Szereg geometryczny jest zbieny, gdy warto bez-
wzgldna jego ilorazu jest mniejsza od 1 (|q| < 1). Suma n skadnikw szeregu geo-
metrycznego jest rwna
1 qn a
sn = a , a jej granica s = lim s n = .
1 q n 1 q
Oglnie warunkiem koniecznym zbienoci szeregu jest to, aby jego skadniki dyy do
zera. Ale nie jest to warunek wystarczajcy; przykadowo szereg harmoniczny jest roz-
bieny, chocia jego skadniki d do zera. Jeeli jednak szereg jest naprzemienny, tzn.
jego kolejne skadniki s na przemian dodatnie i ujemne, a ich warto bezwzgldna dy
do zera, to taki szereg zawsze jest zbieny.
Jeeli kadej liczbie naturalnej n przyporzdkowana zostanie pewna funkcja fn(x), otrzy-
mamy cig funkcyjny {fn(x)}. Sum funkcji tworzcych cig funkcyjny
f1(x)+f2(x)+f3(x)+ = f
n =1
n ( x)
x a ( x a) 2 ( x a) n
exp( x) = exp(a )1 + + +K+ + K
1! 2! n!
exp( x) x x2 xn
x
dx = ln | x | + +
1 1! 2 2!
+K+
n n!
+K+ C
exp( x) xk
x
dx = ln | x | +
k =1
k k!
+C
Wiersz 8. pozostawiamy wolny, aby komrki zawierajce argumenty (w wierszu 7.) byy
odseparowane od skadnikw szeregu.
Rysunek 10.1.
Przykad obliczenia
caki z wykorzystaniem
szeregu potgowego
W tym celu naley otworzy okno dialogowe Wstaw/Nazwa/Definiuj (od wersji 2007
Formuy/Definiuj nazw) i w polu Nazwy w skoroszycie: wpisa nazw indeksy, a w polu
Odwouje si do: odwoanie = WIERSZ(ADR.POR("1:22")), po czym zatwierdzi to
przyciskiem OK. Teraz mona ju uy nazwy w formule:
= LN(MODU.LICZBY(B$7))+SUMA(B$7^indeksy/(indeksy*SILNIA(indeksy)))
Wygld okna definicji nazwy indeksy pokazano na rysunku 10.2. Teraz kada zmiana
zawartoci komrki C31 bdzie powodowa zmian zakresu indeksw.
Dobr indeksu kocowego rwnie mona zautomatyzowa. W tym celu naley zdefi-
niowa i nazwa formu analogiczn do definicji indeksw, lecz z wartoci kocow
ustalon na stae na dostatecznie wysokim poziomie, na przykad 50. Formule nadamy
nazw m.
m : = WIERSZ(ADR.POR("1:50"))
Rysunek 10.2.
Wygld okna
dialogowego, w ktrym
definiuje si nazw
indeksy
Wynik zwrcony przez funkcje PODAJ.POZYCJ lub WYSZUKAJ naley zwikszy o 1, po-
niewa ostatni skadnik wzity do oblicze powinien by mniejszy od 1E-7. Jeeli wyko-
rzystamy to wyraenie w komrce C31, obliczenia bd wykonane automatycznie.
Jeli w Excelu mamy zainstalowany dodatek Analysis Toolpak (od wersji 2007 doda-
tek ten jest zintegrowany z arkuszem), do dyspozycji dostajemy specjaln funkcj
uatwiajc obliczenia z uyciem szeregw potgowych. Jest to funkcja SERIESSUM(x;
n; m; wspczynniki), ktrej naley przekaza nastpujce dane: x argument
funkcji, n pocztkowy wykadnik potgowy przy x, m krok, o jaki naley zwik-
sza n w kolejnych wyrazach, wspczynniki zbir wspczynnikw, przez ktre
mnoy si kad kolejn potg x. Liczba wartoci we wspczynnikach wyznacza
liczb skadnikw w szeregu potgowym. Jeli na przykad s to trzy wartoci, w sze-
regu potgowym bd trzy skadniki. W Excelu 2010 nazwa tej funkcji zostaa prze-
tumaczona na SUMA.SZER.POT.
Starajc si o zwizo zapisu, mona zastosowa jeszcze inne podejcie do tych oblicze.
Mona mianowicie wykorzysta zamierzone odwoania cykliczne i obliczenia przeprowa-
dzi w sposb pautomatyczny w jednej komrce. Takie obliczenia musz by jednak
zainicjowane rcznie. Utworzymy tabelk, ktrej lewa kolumna bdzie zawiera opisy da-
nych, a w dwu nastpnych obliczymy sumy szeregw dla grnej i dolnej granicy cako-
wania. Wreszcie obliczymy rnic obu sum, ktra bdzie poszukiwan wartoci caki.
W momencie rozpoczynania oblicze, gdy zmienna start ma warto 1 lub PRAWDA, nr_it
jest zerowany; w przeciwnym razie (start = 0 lub FASZ) sprawdzany jest warunek za-
koczenia oblicze: jeeli dopiero rozpoczlimy obliczenia (nr_it = 0) lub biecy wyraz
jest wikszy ni zaoona dokadno, nr_it jest zwikszany o 1, w przeciwnym razie
pozostaje niezmieniony (jest to warunek zakoczenia oblicze).
Kolejna komrka poniej zawiera sta dokadno okrelajc prg, poniej ktrego
wyrazy nie bd ju zliczane. Ta warto nie moe by zbyt dua, aby unikn przedwcze-
snego przerwania oblicze w niektrych szeregach pierwsze wyrazy s stosunkowo
mae, potem rosn i dopiero po osigniciu jakiego maksimum zaczynaj male.
Ostatni komrk w tej grupie jest suma, gdzie zliczane s poszczeglne wyrazy szeregu.
Zawiera ona formu:
= JEELI(start; wyraz; JEELI(wyraz > dokadno; suma+wyraz; suma))
Na pocztku, gdy start ma warto 1 lub PRAWDA, sumie nadaje si warto pocztkowego
wyrazu szeregu, potem jeli wyraz jest wikszy od dokadnoci, zostaje on dodany do sumy,
wreszcie gdy wyraz stanie si mniejszy od dokadnoci, suma pozostaje bez zmiany.
Przy obliczaniu nr_it i sumy wystpuj odwoania cykliczne. Dlatego aby obliczenia si
powiody, w opcjach arkusza trzeba zaznaczy pole iteracji (w wersji 2007 Przycisk pakietu
Office/Opcje programu Excel/Formuy/Opcje obliczania, a w wersji 2010 Plik/Opcje/
Formuy/Opcje obliczania zaznaczy pole Wcz obliczenia iteracyjne). Aby przeledzi,
jak przebiegaj obliczenia krok po kroku, naley wpisa Maksymaln liczb iteracji rw-
n 1. Rozpoczynamy obliczenia od wpisania do komrki start wartoci 1. Poniewa s
dwie komrki start, kada w swojej kolumnie, tylko do jednej z nich wpisujemy warto-
ci, a druga musi zawiera odwoanie do tej pierwszej. Po naciniciu Enter obliczenia
zostan zainicjowane. Teraz naley wpisa do komrki start warto 0 i ponownie naci-
sn Enter. Wykonana zostanie druga iteracja. Kolejne wyrazy obliczymy i zsumujemy,
naciskajc klawisz funkcyjny F9 (przeliczanie arkusza). Gdy warto wyrazu spadnie po-
niej zaoonej dokadnoci, obliczenia zostan zakoczone i kolejne nacinicia klawi-
sza F9 nie zmieni ju wyniku. Oczywicie gdy obliczamy rwnoczenie warto caki
dla grnej i dolnej granicy cakowania, zakoczenie kadego z oblicze moe nastpi
po rnej liczbie wyrazw. Kocowa warto caki jest rnic sum obliczonych dla obu
kocw przedziau cakowania.
Rysunek 10.3.
Zastosowanie
zamierzonych
odwoa
cyklicznych
do iteracyjnego
obliczenia sumy
szeregu
Przy obliczaniu sum szeregw moemy napotka zagadnienie sformuowane w ten spo-
sb, e kolejny skadnik szeregu jest okrelony nie tylko jako funkcja numeru skadnika,
ale rwnie poprzedniego skadnika (czasem kilku poprzednich).
ak = f ( ak 1 , g ( k ))
2 1 3 1 4 1 n 1
= ln x + x(1 + x (1 + x 2 (1 + x 2 ( ... + x 2 )...)
22 3 4 n
Jak poprzednio musimy przeznaczy jedn komrk na zmienn inicjujc start, drug na
nr_it, trzeci na wynik. Zmiennej start nadajemy pocztkowo warto 1, a po zainicjo-
waniu zmiennych zmieniamy j na 0. Do komrek nr_it i wynik wpisujemy formuy:
nr_it : = JEELI(start; n; JEELI(nr_it > 0; nr_it1; 0))
wynik : = JEELI(start; 1; JEELI(nr_it > 1; wynik*x*(nr_it 1)/nr_it^2+1;
JEELI(nr_it = 1; wynik*x+LN(MODU.LICZBY(x)); wynik)))
Poniewa w myl definicji macierzy odwrotnej iloczyn macierzy odwrotnej i danej jest
rwny macierzy jednostkowej, a iloczyn macierzy jednostkowej i macierzy X jest rwny
macierzy X, otrzymujemy rozwizanie ukadu rwna w postaci macierzowej:
X = A1B
Ostatnim etapem jest obliczenie iloczynu A1B. Zaznaczamy obszar na wynik (o rozmia-
rach wektora B) i wywoujemy funkcj = MACIERZ.ILOCZYN(odwr_macierz_A; macierz_B).
Naley pamita o zachowaniu waciwej kolejnoci czynnikw i zatwierdzeniu operacji
przez Ctrl+Shift+Enter.
Obliczenia mona uproci: nie wywietla w arkuszu macierzy odwrotnej A1, lecz po-
czy obie operacje tablicowe w jedn:
= MACIERZ.ILOCZYN(MACIERZ.ODW(macierz_A); macierz_B)
Rysunek 11.1.
Rozwizanie ukadu
czterech rwna
liniowych metod
macierzow
Wykorzystanie Solvera
do rozwizywania
ukadu rwna liniowych
Zamiast obliczania macierzy odwrotnej do macierzy wspczynnikw mona wykorzy-
sta moliwo minimalizacji odpowiednio skonstruowanej funkcji celu, co umoliwia
Solver. Dokadniejsze informacje o uruchamianiu i uywaniu tej nakadki podano w roz-
dziale 12. Rozwizywanie rwna nieliniowych.
Formu naley wprowadzi jako tablicow. Komrk z t sum deklarujemy jako komrk
celu Solvera, komrkami zmienianymi bd komrki macierzy_X. Szukamy minimum.
Jeeli Solver znajdzie rozwizanie i okae si ono rwne zeru (praktycznie: bliskie zeru),
bdzie to poszukiwane rozwizanie ukadu rwna (jeeli ukad jest oznaczony, bdzie to
jedyne rozwizanie, a jeli nieoznaczony jedno z nieskoczenie wielu rozwiza).
Rysunek 11.2. Rozwizanie ukadu czterech rwna liniowych za pomoc Solvera wygld arkusza
z zapisem oblicze
Rysunek 11.3.
Okno dialogowe
Solvera z zapisem
zadania minimalizacji
funkcji celu, ktra
prowadzi do
rozwizania ukadu
czterech rwna
liniowych
Liczba i charakter pierwiastkw rwnania zale od znaku wyrnika: jeeli > 0, rw-
nanie ma dwa pierwiastki rzeczywiste, jeeli = 0, rwnanie ma jeden pierwiastek tzw.
podwjny, wreszcie jeeli < 0, rwnanie nie ma pierwiastkw rzeczywistych, ale ma
dwa pierwiastki bdce liczbami zespolonymi.
b
x1, 2 =
2a
Jeden pierwiastek otrzymujemy, biorc znak +, a drugi znak . Gdy = 0, oba pier-
wiastki zlewaj si w jeden, gdy maj t sam warto. Gdy < 0, symbol naley
rozumie jako | |i , gdzie i oznacza jednostk urojon.
Chcc zapisa to rozwizanie w Excelu, tak aby byo uniwersalne, tzn. dawao poprawne
wyniki niezalenie od wartoci wyrnika , musimy rozwiza kilka problemw. Pierw-
szym jest kwestia wyboru wariantu rozwizania w zalenoci od wartoci wyrnika. Mamy
tu do dyspozycji dwie funkcje realizujce wybr funkcj JEELI i funkcj WYBIERZ.
Pierwsza pozwala na wybr jednej z dwch moliwoci, w zalenoci od wartoci logicz-
nej jej pierwszego argumentu. Jeeli mamy wicej opcji do wyboru, funkcja JEELI mu-
si by uyta kilkakrotnie. Funkcja WYBIERZ oblicza warto wyraenia wskanikowego,
a nastpnie dokonuje wyboru wartoci z listy maksimum 29 moliwoci (od wersji 2007
254 moliwoci) ten wariant jest wic wygodniejszy przy wikszej liczbie moli-
woci, problemem jest tylko takie skonstruowanie wyraenia wskanikowego, aby przyj-
mowao ono odpowiednie wartoci cakowite od 1 wzwy.
Test_logiczny jest dowoln wartoci lub wyraeniem logicznym sprawdzanym, czy jest
to PRAWDA, czy FASZ. Na przykad A2 = 10 jest wyraeniem logicznym; jeli warto w ko-
mrce A2 jest rwna 10, wyraenie ma warto PRAWDA. W innym przypadku wyraenie
przyjmuje warto FASZ. Alternatywnie mona w tym miejscu poda wyraenie aryt-
metyczne jeli ma warto 0, jest to rwnoznaczne z wartoci logiczn FASZ, jeli
ma warto niezerow, jest to rwnoznaczne z wartoci logiczn PRAWDA.
Mona zagniedzi do siedmiu (od wersji 2007 do 64) funkcji JEELI, stosujc je jako
argumenty warto_jeeli_prawda i warto_jeeli_fasz w celu sprawdzenia bardziej
zoonych warunkw.
Drugi pierwiastek rwnania x2 naley opisa analogicznym wzorem, dodajc tylko w od-
powiednim miejscu znak (warto zwrci uwag na konieczno uycia dodatkowych
nawiasw):
= JEELI(delta>=0; (bdelta^0,5)/(2*a); COMPLEX(b/(2*a);
(delta^0,5)/(2*a))
Zamiast funkcji JEELI moemy uy funkcji WYBIERZ. W zasadzie jest ona przeznaczona
do sytuacji, gdy liczba wariantw wyboru jest wiksza, ale do ilustracji jej uycia mona
wykorzysta rwnie rozwizanie rwnania kwadratowego. Skadnia tej funkcji jest taka:
WYBIERZ(nr_arg; warto1; warto2; ...)
Nr_arg podaje, ktr z wartoci argumentw wybrano. Nr_arg musi by liczb pomidzy
1 a 29 (254 od wersji 2007) lub formu albo adresem komrki zawierajcej liczby z poda-
nego przedziau. Jeli nr_arg jest rwny 1, funkcja WYBIERZ poda w wyniku warto1,
jeli 2, to funkcja WYBIERZ poda w wyniku warto2 itd.
Jeli nr_arg jest mniejszy od 1 lub wikszy ni numer ostatniej wartoci w spisie argu-
mentw, to funkcja WYBIERZ da w wyniku warto bdu #ARG!.
Jeli nr_arg ma posta tablicy, to dla kadej pozycji w tej tablicy jest wyznaczana war-
to z listy wyboru funkcji WYBIERZ; wynik jest tablic o rozmiarach takich jak nr_arg.
Na przykad:
WYBIERZ({3;1}; "pierwszy"; "drugi"; "trzeci") daje w wyniku tablic
{"trzeci";"pierwszy"}
Rysunek 12.1.
Obraz ekranu
z przykadowymi
rozwizaniami
rwna
kwadratowych
naley sporzdzi tabelk wartoci funkcji oraz wykona odpowiedni wykres. W opcjach
wykresu naley wybra poczenie punktw lini wygadzon. Dobr liczby punktw do
wykonania wykresu zaley od charakteru funkcji bardziej szczegowo pisz o tym
w rozdziale 5. Graficzna prezentacja danych.
Po wykonaniu wykresu obejmujcego cay przedzia okrelonoci funkcji lub t jego cz,
w ktrej mog wystpi pierwiastki, mamy ju pogld na liczb i przyblione wartoci
pierwiastkw. Mona w tym momencie zrobi dodatkowe wykresy i na kadym z nich
ograniczy skal na osi do najbliszego otoczenia pierwiastka. Z tych wykresw mona
dokadniej odczyta wartoci liczbowe pierwiastkw. Naley jednak pamita, e s to
tylko wartoci przyblione. Excel nie prezentuje bowiem dokadnie badanej funkcji, tylko
jak jej aproksymacj zgodn z badan funkcj w punktach wzowych. Dlatego jeli
wartoci funkcji, ktre suyy do sporzdzenia wykresu, le blisko pierwiastka, jego
oszacowanie bdzie do dokadne, jeeli le dalej bd moe by znaczcy.
Kade rwnanie mona przeksztaci do tej postaci wieloma sposobami. Ale nie kady
sposb jest w tym przypadku dobry. Warunkiem, aby cig przyblie by zbieny do gra-
nicy, ktr stanowi pierwiastek, jest to, aby w otoczeniu pierwiastka by speniony waru-
nek |f'(x)| < 1, czyli pochodna funkcji po prawej stronie rwnania musi by co do wartoci
bezwzgldnej mniejsza od 1. Na og atwiej jest obliczy kilka przyblie i porwnujc
je, sprawdzi, czy cig przyblie jest zbieny (rnice midzy kolejnymi wartociami
s coraz mniejsze), ni oblicza warto pochodnej. Jeeli cig przyblie okae si roz-
bieny, a uda si obliczy x z prawej strony rwnania, czyli wyznaczy funkcj odwrotn
do f(x), to tak przeksztacone rwnanie na pewno da zbieny cig przyblie (bo pochodna
funkcji odwrotnej jest odwrotnoci pochodnej). Jeeli nie da si obliczy funkcji odwrot-
nej, trzeba prbowa innych moliwych przeksztace.
Cig przyblie czsto jest powoli zbieny, tym szybciej, im mniejsza co do moduu jest
warto pochodnej f'(x). W praktyce metod iteracji prostej stosuje si najczciej w sy-
tuacji, gdy rwnanie do rozwizania mona rozdzieli na skadniki znacznie rnice
si wartoci, na przykad rwnanie wyjciowe ma posta
x = g(x)+h(x)
przy czym |h(x)| << |g(x)|. Ponadto funkcja g(x) musi si da atwo odwrci. Prze-
ksztacamy rwnanie do postaci
x = g1(xh(x))
Funkcj h(x) traktujemy jako poprawk, o ktr naley skorygowa warto pier-
wiastka x.
Poszukujemy pierwiastka x 1. Zatem g(x) 1, a h(x) 0,3; a wic jest speniony wa-
runek |h(x)| << |g(x)|. Ponadto funkcja g(x) daje si atwo odwrci: g1(x) = x1/3. Prze-
ksztacamy wic wyjciowe rwnanie do postaci:
x = (x+0,1*(x2+2))1/3
przyjmujemy przyblienie startowe x0 = 1, podstawiamy t warto do prawej strony
przeksztaconego rwnania i obliczamy nowe przyblienie x1 = 1,091393. Kontynuujc
obliczenia w ten sposb, dochodzimy do przyblie x12 i x13, ktrych wartoci 1,135639
s identyczne z dokadnoci do szeciu miejsc po przecinku. Jeeli taka dokadno jest
wystarczajca, moemy uzna ten wynik za ostateczny.
Trzeci pierwiastek rwnania ma warto blisk zeru, ale aby go obliczy, trzeba inaczej
przeksztaci wyjciowe rwnanie. Mona uy formuy:
x = 0,2/(1x2+0,1*x)
W tym przypadku x2+0,1*x << 1 i to wyraenie spenia funkcj poprawki. Jeli iteracje
rozpoczn si od x0 = 0, ju przy smym przyblieniu wynik stabilizuje si przy wartoci
0,214464.
Rysunek 12.3.
Ilustracja metody
iteracji prostej
w odniesieniu
do rwnania
wielomianowego 3.
stopnia
Kiedy zapisuje si ten wzr w Excelu, trzeba pamita o koniecznoci ujcia w nawias
zarwno licznika, jak i mianownika. Zgodno znakw wartoci funkcji mona oczywi-
cie sprawdzi za pomoc funkcji ZNAK.LICZBY, ale najprociej zrobi to, obliczajc ilo-
czyn wartoci jeli jest dodatni, znaki s zgodne, jeli ujemny przeciwne. Oblicze-
nia najlepiej zorganizowa w kolumnach.
Zalet metody siecznych jest to, e zawsze prowadzi do pierwiastka, nie wymaga prze-
ksztacania rwnania wyjciowego ani adnych innych modyfikacji. Wad jest koniecz-
no znalezienia dwch punktw startowych, niezbyt odlegych od siebie, speniajcych
warunek f(a)*f(b) < 0, i na og do powolna zbieno metody.
Rysunek 12.4.
Ilustracja metody siecznych
w odniesieniu do jednego
z pierwiastkw rwnania
wielomianowego 3. stopnia
Przyspieszenie zbienoci
metody siecznych
Najistotniejsz wad metody siecznych jest jej powolna zbieno, spowodowana tym,
e na og przedzia, w ktrym poszukujemy pierwiastka, jest zawany tylko z jednej
strony. Mona to zmieni przez stosunkowo prost modyfikacj wzorw, ale wymagajc
kontroli ze strony prowadzcego obliczenia. Standardowo po obliczeniu przyblienia x
przedzia zawa si do [a, x] lub [x, b]. Po modyfikacji zawony przedzia ma granice
[(a+x)/2, x] lub [x, (b+x)/2], czyli za kadym razem modyfikuje si obie granice przedziau.
Rysunek 12.5.
Obliczenie pierwiastkw
rwnania wielomianowego 5.
stopnia jako ilustracja
zmodyfikowanej metody
siecznych
Wzr jest prosty, metoda na og bardzo szybko zbiena, jedynym mankamentem jest
potrzeba znajomoci pochodnej funkcji wystpujcej w rwnaniu. Wzr na pochodn
trzeba wyznaczy poza arkuszem. Dane do oblicze przygotowuje si w kolumnach
kolejno x, f(x) i f'(x). W pierwszym wierszu wpisuje si warto startow x jako sta,
W przypadku gdy rwnanie ma kilka pierwiastkw, istotne jest, aby przyblienie startowe
byo dostatecznie blisko poszukiwanego pierwiastka. W obliczeniach przykadowych po-
kazanych na rysunku 12.6 wystarcza pi przyblie, aby osign 6-cyfrow dokadno
wyniku.
Rysunek 12.6.
Obliczenie pierwiastkw
rwnania wielomianowego
metod stycznych
Rysunek 12.7.
Obliczenie pierwiastka
rwnania wielomianowego
zmodyfikowan metod
stycznych
Rysunek 12.8.
Inny wariant metody
siecznych uyty do
rozwizania rwnania
wielomianowego 3.
stopnia
Rysunek 12.9.
Zamierzone odwoania
cykliczne zastosowane
do rozwizania
rwnania nieliniowego
Wykorzystanie narzdzi
Szukaj wyniku i Solver
W Excelu stworzono specjalne narzdzia, ktre mona wykorzysta m.in. do rozwi-
zywania rwna. Szukaj wyniku jest prostszym narzdziem umoliwiajcym rozwizywa-
nie rwna z jedn niewiadom. Narzdzie to jest zintegrowane z arkuszem (nie wymaga
instalacji). Parametry jego pracy ustala si w menu Narzdzia/Opcje/Przeliczanie (w wersji
2007 Przycisk pakietu Office/Opcje programu Excel/Formuy/Opcje obliczania, a w wersji
2010 Plik/Opcje/Formuy/Opcje obliczania). S to dwa wspomniane ju wczeniej para-
metry: Maksymalna liczba iteracji i Maksymalna zmiana. Pierwszy parametr z reguy
przyjmuje warto 100, drugi parametr okrela, przy jakiej wartoci funkcji celu obliczenia
zostan zakoczone. Formalnie Maksymalna zmiana powinna mie warto oczekiwanej
dokadnoci wyniku pomnoonej przez warto pochodnej funkcji celu w okolicy pier-
wiastka. W praktyce wpisujemy tam na przykad 1E8.
Rysunek 12.10.
Rozwizanie rwnania
nieliniowego
z wykorzystaniem
narzdzia Szukaj
wyniku
Zasada uycia Solvera jest podobna jak w przypadku narzdzia Szukaj wyniku: naley
przygotowa dwie komrki pierwsza powinna zawiera przyblienie startowe jako
sta, druga formu lewej strony rwnania. Komrka z formu powinna by wybra-
na jako aktywna w momencie wywoania Solvera po raz pierwszy. Wtedy adres ten
zostanie automatycznie wpisany do pola Komrka celu. (Przy ponownym wywoaniu
Solver pamita poprzednie ustawienia). Jeli nie nastpi to automatycznie, naley wpi-
sa tam adres komrki z formu lewej strony rwnania. W nastpnym wierszu naley
wybra pole Warto i wpisa warto 0 (lub warto a, gdy rwnanie ma posta f(x)
= a) jako docelow. Wreszcie w polu Komrki zmieniane naley poda adres komrki
z przyblieniem startowym. Alternatywnie mona nacisn przycisk Odgadnij (niedo-
stpny w wersji 2010), wtedy adres komrki zmienianej zostanie wpisany automatycz-
nie. Jeeli jednak w formule funkcji wystpuj jeszcze adresy lub nazwy innych ko-
mrek, to wszystkie zostan wpisane i niezbdna bdzie rczna selekcja. Obliczenia
rozpoczynamy, naciskajc przycisk Rozwi. Za chwil pojawia si okienko informu-
jce o tym, czy Solver znalaz rozwizanie istnieje moliwo akceptacji rozwiza-
nia lub powrotu do stanu wyjciowego. Akceptacja rozwizania oznacza, e przyblie-
nie startowe zostanie nadpisane rozwizaniem znalezionym przez Solvera. Dokadno
rozwizania oferowanego przez Solvera zaley od parametru Zbieno (dostpnego
w Opcjach Solvera), ktry jest odpowiednikiem Maksymalnej zmiany w przypadku
narzdzia Szukaj wyniku, z tym e w przypadku Solvera jest to parametr wzgldny.
Parametr ten ma domylnie warto 1E4, to z reguy wystarcza, ale czasem warto po-
prawi zbieno o 1 2 rzdy do 1E5 lub 1E6.
Rysunek 12.11.
Okno narzdzia Solver
z parametrami
ustawionymi na
rozwizanie rwnania
nieliniowego
Narzdzia Szukaj wyniku i Solver s wygodne w uyciu, ale naley pamita, e wykonane
przez nie obliczenia maj charakter jednorazowy, a wyniki zapisane s w formie staych.
W razie zmiany danych uytych do oblicze konieczne jest ich ponowne wykonanie.
Na tym etapie naley przeksztaci rwnania tak, aby dao si wykona wykresy obu
rwna albo jednego rwnania otrzymanego przez eliminacj jednej z niewiadomych. Do
wykonania wykresu jest potrzebna tabela odpowiadajcych sobie wartoci zmiennych.
Procedur przeksztacania rwna do postaci umoliwiajcej tabelaryzacj opisano w roz-
dziale 4. Tablicowanie funkcji jednej i dwu zmiennych.
Najpierw trzeba sprbowa rozwika rwnania ze wzgldu na y lub x, czyli uzyska po-
sta y = f(x) lub x = f(y). Jeeli nie jest to moliwe, trzeba sprbowa uproci rwnanie
przez podstawienie. Czasem rwnanie da si zapisa w postaci f(z) = 0, gdzie z jest jak
prost funkcj x i y, na przykad z = x+y albo z = x/y itp. W takim przypadku naley roz-
wiza rwnanie f(z) = 0 jedn z metod numerycznych opisanych w poprzednim rozdziale,
Dalsze postpowanie zaley od formy przeksztaconych rwna. Jeeli oba rwnania day
si rozwika ze wzgldu na t sam zmienn, na przykad y, to mamy dwa rwnania
o postaci y = f1(x) i y = f2(x). Z tych dwu rwna eliminujemy y, by otrzyma rwnanie
z jedn niewiadom x, f1(x) = f2(x), ktre mona rozwiza numerycznie. Analogiczna
sytuacja wystpi, jeeli oba rwnania da si rozwika ze wzgldu na x. Jeeli jedno
z rwna mona rozwika ze wzgldu na x, a drugie ze wzgldu na y, naley zastoso-
wa podstawienie i uzyska jedno rwnanie z niewiadom x lub y. Na przykad jeeli
pierwsze rwnanie przeksztacimy do postaci x = f1(y), a drugie do postaci y = f2(x), to
poprzez podstawienie drugiego do pierwszego wyeliminujemy y: x = f1(f2(x)). Znowu
mamy jedno rwnanie ze wzgldu na x.
Wystarczy, e jedno z rwna da si rozwika, aby mona byo przez podstawienie wy-
eliminowa jedn z niewiadomych. Zamy, e pierwsze rwnanie nie daje si rozwi-
ka i pozostaje w formie f1(x, y) = 0. Jeeli z drugiego rwnania potrafimy wyznaczy
na przykad x = f2(y), to przez podstawienie otrzymamy rwnanie z jedn niewiadom
y: f1(f2(y), y) = 0.
Jedynie gdy adne z rwna nie daje si rozwika, trzeba zastosowa inn metod
rozwizania. Mona do tego uy Solvera i wykorzysta opcj poszukiwania minimum
funkcji. Opis instalacji i sposb uycia tego dodatku podano w rozdziale 12. Rozwi-
zywanie rwna nieliniowych.
Utworzymy now funkcj pomocnicz w postaci sumy kwadratw lewych stron rwna:
g(x, y) = [f1(x, y)]2+[f2(x, y)]2
Funkcja g(x, y) przyjmuje wartoci nieujemne, a jest rwna 0 tylko w punktach, ktre
rwnoczenie zeruj oba rwnania f1 i f2. Zatem w punktach, ktre s rozwizaniami
ukadu rwna, i tylko w tych punktach funkcja g(x, y) ma minimum rwne zeru.
Minimum to mona odnale przy uyciu Solvera. Poniewa rozwizania ukadu rwna
byy ju wczeniej oszacowane graficznie, moliwe jest podanie do dokadnych przy-
blie startowych. Ponadto naley zapewni, aby skadowe funkcji g(x, y) pochodzce od
obu rwna miay zblione wartoci, przynajmniej co do rzdu. Mona to osign po-
przez wprowadzenie staego mnonika przed mniejszym z czonw funkcji g(x, y).
Podam teraz kilka przykadw ukadw rwna wraz z zalecan procedur ich rozwizania.
Przykad 13.1.
Ukad rwna
x*yexp(x)+5 = 0
x+y23 = 0
Przykad 13.2.
Ukad rwna
x2*y+2*ln(x)+ln(y) = 4
x/yln(y)+x3 = 5
Ani pierwszego, ani drugiego rwnania nie da si rozwika ani ze wzgldu na x, ani na y.
Ale mona zauway, e pierwsze rwnanie da si zapisa w postaci:
x2*y+ln(x2*y) = 4
Po uporzdkowaniu:
1,341732*x3+2*ln(x) = 6,073729
Przykad 13.3.
Ukad rwna
x/y+ln(x*y) = 3
x*ln(y)y*ln(x) = 1
Rysunek 13.2. Przykad rozwizania ukadu rwna nieliniowych z wykorzystaniem zmiennej pomocniczej
Symbol jest umowny chodzi o dwie funkcje: jedn ze znakiem + i drug ze zna-
kiem .
Przykad 13.4.
Ukad rwna
x2*ln(x*y)+1/(x+y) = 2
x2+exp(x) = y+ln(y)
Jest to ukad, w ktrym adne z rwna nie daje si rozwika i trzeba zastosowa podej-
cie najbardziej oglne. Po pierwsze, naley zauway, e ze wzgldu na funkcj loga-
rytmiczn zarwno x, jak i y mog przyjmowa tylko wartoci dodatnie. W celu zbadania,
czy istnieje rozwizanie, i oszacowania go naley wykona wykresy obu rwna i umie-
ci je we wsplnym ukadzie wsprzdnych.
wartoci lewej strony pierwszego rwnania f1(x, y1) oraz analogiczne kolumny y2
i f2(x, y2), odnoszce si do drugiego rwnania. Rwnania musz by zapisane tak, aby
wszystkie wyrazy znalazy si po lewej stronie, a prawa strona bya rwna zeru. Za
pomoc narzdzia Szukaj wyniku albo Solvera tworzymy listy wartoci y odpowiada-
jcych wybranym wartociom x i powodujcych zerowanie si poszczeglnych rw-
na. Alternatywnie mona wykorzysta metod iteracji prostej lub metod Newtona
z odwoaniem cyklicznym do wyznaczenia pierwszej wartoci y dla wybranego x. Po-
zostae wartoci y mona obliczy kopiujc wiersz, w ktrym wyznaczono pierwsz
warto lub wykorzystujc procedur Tabela danych. W miar przebiegu oblicze
mona modyfikowa list wartoci x, zachowujc jej monotoniczno, tak aby udao
si odtworzy dostatecznie dokadnie przebieg zmiennoci kadej z funkcji. Po zgro-
madzeniu wszystkich wartoci x i y tworzymy wykres, na ktrym przedstawiamy prze-
bieg obu zalenoci y od x. W razie koniecznoci moemy utworzy odrbne listy
wartoci x dla kadego rwnania, ale wtedy trzeba zachowa ostrono przy tworze-
niu wykresu i upewni si, e jest on prawidowy. Punkty przecicia linii na wykresie
wskazuj rozwizania ukadu rwna. Odczytujemy z wykresu przyblione wartoci
x i y w punkcie (punktach) przecicia, gdy posu one jako wartoci startowe do ob-
licze. W tym przykadzie s to wartoci x 1,2; y 3,5.
Rysunek 13.3. Obraz ekranu z rozwizaniem ukadu rwna nieliniowych za pomoc Solvera,
z wykorzystaniem minimum sumy kwadratw lewych stron rwna
Ukad ten mona rozwizywa za pomoc Solvera, minimalizujc sum kwadratw lewych
stron rwna. Procedura ta zostaa opisana w poprzednim podrozdziale w odniesieniu do
ukadu dwch rwna. Przy trzech rwnaniach trzeba doda dodatkowy skadnik sumy
kwadratw i wykaza si intuicj w wyszukiwaniu punktw startowych.
Na rysunku 13.4 pokazano wyniki takich oblicze. W przypadku podanego ukadu rw-
na znaleziono trzy rozwizania.
Rysunek 13.4.
Rozwizanie ukadu
trzech rwna z trzema
niewiadomymi za
pomoc Solvera
gdzie xk = xkxk0.
jemy poprawki xk, ktre naley doda do przyblie startowych, aby otrzyma zestaw
nowych przyblie niewiadomych. Te nowe przyblienia posu jako zestaw startowy
do nastpnego etapu iteracji. Naley wykona kilka takich iteracji i obserwowa za ka-
dym razem, jak zmieniaj si wartoci funkcji (lewych stron rwna) i ich suma kwadra-
tw. Cig przyblie nie zawsze jest zbieny. Zaley to od doboru przyblie startowych.
Ale dziki temu, e po kadej zmianie zawartoci komrki Excel przelicza cay arkusz,
mona szybko przetestowa duy zestaw przyblie startowych i sprawdzi, czy otrzy-
muje si zbiene cigi przyblie.
Ilustracj sposobu uycia metody Newtona-Raphsona niech bdzie ten sam ukad trzech
rwna nieliniowych. Ze wzgldu na to, e rwnania atwo daj si zrniczkowa ana-
litycznie, wybraem ten wariant obliczania pochodnych. Wyniki oblicze pokazano na
rysunku 13.5.
Rysunek 13.5.
Widok ekranu
z iteracyjnym
rozwizaniem
ukadu trzech
rwna
nieliniowych
metod
Newtona-Raphsona
Jeeli uywane byy tylko adresy wzgldne, mona skopiowa wszystkie obliczenia do
komrek poniej, by uzyska kolejne przyblienia. Obserwujc, czy suma kwadratw
wartoci funkcji zmniejsza si, mona oceni, czy cig przyblie jest zbieny. W naszym
przykadzie obliczono siedem przyblie; wyniki kocowe przywoano u gry arkusza
w komrkach W2:Y2 nad przyblieniami startowymi.
Tablica funkcji jednej zmiennej moe by zorientowana poziomo (wierszowo) lub pio-
nowo (kolumnowo). Tu skupimy si gwnie na tablicach pionowych. Tablice poziome
tworzy si analogicznie. Tablica skada si z dwch lub wicej kolumn, z ktrych pierw-
sza zawiera najczciej list wartoci argumentw (umownie x-w), a druga i ewentualnie
nastpne list powizanych wartoci funkcji (umownie y-w). Zakadamy, e wartoci
argumentw s uporzdkowane rosnco (jeli nie naley je tak uporzdkowa, warto-
ci funkcji mog si zmienia dowolnie). Jako przykad rozpatrzymy zaleno gstoci
roztworw kwasu siarkowego od stenia procentowego w staej temperaturze 20C.
Funkcja przeszukuje skrajn lew kolumn tablicy, by znale warto argumentu, i po-
daje odpowiadajc mu warto z tego samego wiersza i kolumny o podanym numerze.
Argument jest wartoci, ktr naley znale w pierwszej kolumnie tablicy; moe by
sta liczbow, tekstow lub logiczn, adresem lub wyraeniem. Jeli warto argumentu
jest mniejsza ni najmniejsza warto w pierwszej kolumnie tablicy, wynikiem funkcji
bdzie warto bdu #N/D!.
Tablica jest zakresem komrek, ktry naley przeszuka, obejmujcym kolumn argu-
mentw i kolumny wartoci funkcji; mona uy adresu lub nazwy zakresu.
Nr_kolumny jest to numer kolumny w tablicy, z ktrej naley odczyta warto odpo-
wiadajc argumentowi. Kolumny numerowane s od 1 od lewej strony tablicy.
Alternatyw moe by uycie funkcji WYSZUKAJ. Dziaa ona troch inaczej ni poprzednie
dwie funkcje i umoliwia poszukiwanie argumentu nie tylko w pierwszym wierszu lub
kolumnie. Funkcja WYSZUKAJ ma dwie skadnie: wektorow i tablicow, ale przydatna jest
gwnie w wersji wektorowej. Wektor jest tablic zawierajc tylko jeden wiersz albo
tylko jedn kolumn. Forma wektorowa WYSZUKAJ poszukuje wartoci argumentu we wska-
zanym wektorze, przenosi si do odpowiadajcej tej wartoci pozycji w drugim wek-
torze i daje w wyniku jej warto.
Przeszukiwany_wektor jest zakresem zawierajcym tylko jeden wiersz lub jedn kolumn.
Wartoci znajdujce si w przeszukiwanym_wektorze mog by tekstami, liczbami lub
wartociami logicznymi. Wartoci w przeszukiwanym_wektorze musz by uporzdko-
wane rosnco: , 2, 1, 0, 1, 2, , A Z, FASZ, PRAWDA; w przeciwnym razie wynik
dziaania funkcji moe nie by poprawny. W tekcie wielkie i mae litery s rwnowane.
Wektor_wynikowy jest zakresem zawierajcym tylko jeden wiersz lub jedn kolumn. Ar-
gument ten powinien mie tak sam wielko co argument przeszukiwany_wektor.
Jeli funkcja WYSZUKAJ nie moe znale wartoci okrelonej przez argument szukana_
warto, to wybiera warto najwiksz w przeszukiwanym_wektorze, mniejsz od
szukanej_wartoci.
Zadanie odczytania wartoci z tablicy dla zadanego argumentu mona rozwiza jeszcze
inaczej wykorzystujc funkcje PODAJ.POZYCJ i INDEKS. Funkcja PODAJ.POZYCJ odszu-
kuje argument w tablicy, w kolumnie lub wierszu o podanym adresie i zwraca w wyniku
jego wzgldne pooenie w swojej kolumnie lub wierszu (numer pozycji, liczony od 1).
Typ_porwnania jest liczb 1, 0 lub 1. Typ_porwnania podaje, w jaki sposb funkcja do-
pasowuje szukan_warto do wartoci w przeszukiwana_tab.
Jeli typ_porwnania jest rwny 0, funkcja PODAJ.POZYCJ znajdzie pierwsz warto do-
kadnie rwn wartoci szukana_warto. W tym przypadku w przeszukiwana_tab porz-
dek moe by dowolny.
Uycie tych funkcji pokazano na rysunku 14.1, ktry przedstawia dwukolumnow tablic
reprezentujc zaleno gstoci roztworu od stenia kwasu siarkowego oraz przykady
wartoci odczytanych z tablicy przy uyciu opisanych wyej funkcji. Jeeli dokadna war-
to argumentu nie zostaa w tablicy odnaleziona, odczytany wynik odnosi si do najbliszej
wartoci argumentu, nie wikszej jednak od niego.
Rysunek 14.1.
Ilustracja metod
odczytu danych
z tabeli i interpolacji
liniowej
Interpolacja liniowa
Wynik odczytany bezporednio z tabeli ma jeszcze niewielk warto praktyczn, gdy
odlegoci midzy punktami s czsto do due, a my chcemy zna warto funkcji
(w tym przypadku gstoci) dla dowolnego x, a nie tylko dla wartoci umieszczonych
w tabeli. Wartoci funkcji dla brakujcych wartoci argumentu trzeba obliczy, wykorzy-
stujc wartoci znalezione w tabeli i zakadajc, e przebieg funkcji midzy danymi punk-
tami jest regularny.
Jeeli zaoymy, e przebieg funkcji midzy ssiednimi punktami w tabeli jest liniowy,
a wartoci dane s dokadne, obliczenia bd nosi nazw interpolacji liniowej. Jest to
najprostszy moliwy przypadek, gdy do obliczenia wartoci funkcji w danym punkcie
wykorzystujemy wsprzdne tylko dwch punktw ssiednich. Taka sytuacja wystpuje,
gdy punkty w tabeli rdowej s rozmieszczone stosunkowo gsto i wartoci funkcji znane
s z du dokadnoci (zostay wyliczone lub zmierzone bardzo dokadnie i zweryfiko-
wane na przykad pochodz z opublikowanego zbioru danych fizykochemicznych).
Komrce z wynikiem mona nada na przykad nazw wiersz. Wartoci z tablicy mona
teraz pobra za pomoc funkcji INDEKS i nada wynikom odpowiednie nazwy, na przy-
kad x_1, x_2, y_1, y_2. (Znaki podkrelenia lub kropki s potrzebne, aby nazwy byy
prawidowe i nie kolidoway z adresami komrek).
x_1 : = INDEKS(zakres_x; wiersz)
x_2 : = INDEKS(zakres_x; wiersz+1)
y_1 : = INDEKS(zakres_y; wiersz)
y_2 : = INDEKS(zakres_y; wiersz+1)
Znane_y oznacza zakres komrek obejmujcy y1 i y2, a znane_x to zakres komrek obej-
mujcy x1 i x2.
Zakresy znane_y i znane_x mona wpisa bezporednio albo wyliczy je, wykorzystujc
funkcj PRZESUNICIE. Funkcja ta zwraca adres komrki lub zakresu komrek, okrelony
w stosunku do adresu odniesienia. Przykadowo zmodyfikowane wywoanie funkcji
REGLINX moe mie posta:
= REGLINX(x; PRZESUNICIE(y_tabl;0;0;2;1); PRZESUNICIE(x_tabl;0;0;2;1))
Y_tabl jest adresem komrki zawierajcej tablicow warto y, x_tabl to adres tablico-
wej wartoci x, najbardziej zblionej, ale nie wikszej od argumentu x.
Procedura opisana wyej daje dobre wyniki, jeeli dane tablicowe s wystarczajco do-
kadne, a zaleno jest zbliona do liniowej. Jeeli ktry z tych warunkw nie jest spe-
niony, naley wybra inne rozwizanie. Przykad zastosowania tej procedury oblicze-
niowej pokazano na rysunkach 14.1 i 14.2.
Trend liniowy
Jeeli o stablicowanych danych wiemy, e powinny reprezentowa zaleno liniow,
lecz s obarczone bdami pomiarowymi takie dane nie powinny podlega inter-
polacji. Zamiast tego powinno si wykorzysta tzw. trend liniowy, czyli lini prost
poprowadzon nie dokadnie przez punkty pomiarowe, lecz wyznaczon metod re-
gresji. Do poprowadzenia takiej linii potrzeba co najmniej trzech punktw, a linia jest
dopasowana zgodnie z zasad najmniejszej sumy kwadratw odchyle. W Excelu do
obliczenia wartoci funkcji wedug trendu liniowego specjalnie opracowano funkcj
REGLINX. Jej skadnia jest opisana w rozdziale 15. Regresja liniowa, na stronie 188.
T funkcj mona wykorzysta rwnie do interpolacji liniowej, wszystko zaley od
tego, ile punktw obejmuj zakresy znane_y i znane_x. Jeeli s uwzgldnione tylko
dwa punkty mamy interpolacj liniow, jeeli trzy lub wicej punktw oblicze-
nia bd wykonane wedug zasady trendu liniowego.
Znane_y oznacza zakres komrek obejmujcy co najmniej trzy wartoci yi, a znane_x to
zakres komrek obejmujcy co najmniej trzy wartoci xi. Oczywicie oba zakresy musz
mie takie same rozmiary.
Na rysunku 14.2 pokazano rwnie przykad zastosowania trendu liniowego do danych do-
tyczcych gstoci kwasu siarkowego. Naley to potraktowa tylko jako ilustracj metody,
gdy dane te s dokadne, natomiast zaleno nie jest idealnie liniowa, a zatem zastoso-
wanie w tym przypadku trendu liniowego nie jest uzasadnione.
Podobn do REGLINX funkcj jest REGLINW, ktrej skadni opisano rwnie w rozdziale 15.
Regresja liniowa, na stronie 188.
= REGLINW(znane_y; znane_x; nowe_x; czy_staa)
Interpolacja kubiczna
(wielomianem 3. stopnia)
W przypadku gdy dysponujemy dokadnymi danymi w tablicy, ale punkty pomiarowe s
rozmieszczone na tyle rzadko, e interpolacja liniowa nie jest wystarczajca, naley uy
do interpolacji wielomianu wyszego stopnia. Ze wzgldu na symetri punktw czsto
wykorzystuje si interpolacj wielomianem trzeciego stopnia, czyli tzw. interpolacj ku-
biczn. Do tej procedury wykorzystuje si cztery kolejne punkty tablicowe rozmieszczone
symetrycznie wok poszukiwanej wartoci, dwa punkty przed i dwa punkty za argu-
mentem funkcji. Oczywicie w przypadku bardzo maych lub bardzo duych wartoci x
(blisko pocztku lub blisko koca tablicy) trzeba zrezygnowa z warunku symetrii.
Zapis tej formuy w arkuszu jest do mudny. Mona jednak alternatywnie wykorzy-
sta do oblicze znane ju nam funkcje REGLINP i REGLINW. Umoliwiaj one (w prze-
ciwiestwie do funkcji REGLINX) przeprowadzenie regresji wielomianem, przy wykorzy-
staniu zapisu tablicowego. Jeeli do oblicze wspczynnikw wielomianu 3. stopnia
wemiemy cztery punkty, otrzymamy wielomian interpolacyjny. W rozdziale 15. Re-
gresja liniowa, na stronach 181 i 188 wyjaniono, jak uywa tych funkcji. W tym
przypadku mona uy REGLINP w wyraeniu:
= SUMA(REGLINP(znane_y; znane_x^{1;2;3})*x^{3;2;1;0})
Znane_y i znane_x oznaczaj zakresy danych tablicowych obejmujce cztery punkty ota-
czajce z obu stron now warto x.
Ten i poniszy zapis dotyczy wersji 2007 i wczeniejszych, w wersji 2010 w staych ta-
blicowych ; naley zamieni na \.
Interpolacja liniowa
w przypadku funkcji dwu zmiennych
Wiele zalenoci fizykochemicznych jest przedstawianych w postaci tablic funkcji dwu
zmiennych, na przykad gsto roztworw kwasu siarkowego zaley od stenia roz-
tworu i temperatury. Dane takie s prezentowane w postaci tablic dwuwymiarowych,
w ktrej wartoci jednego argumentu umieszczono w grnym wierszu, a wartoci dru-
giego argumentu w pierwszej kolumnie. Wartoci funkcji wypeniaj prostoktny obszar
wyznaczony przez moliwe kombinacje obu argumentw. Aby obliczy warto funkcji
dla dowolnych wartoci argumentw, naley przeprowadzi interpolacj lub skorzysta
z linii trendu. Interpolacj liniow trzeba przeprowadzi trzykrotnie. Kolejno oblicze
jest taka, jak pokazano poniej.
Mamy obliczy warto funkcji z = f(x, y). Znajdujemy w tablicy par ssiednich war-
toci x1 i x2, takich e x [x1, x2] oraz par ssiednich wartoci y1 i y2, takich e y
[y1, y2]. Fragment tablicy z danymi wyglda tak:
Wartoci, ktre mona odczyta w tablicy, to z11, z12, z21 i z22. Na pierwszym i drugim
etapie przeprowadzamy interpolacj wzgldem zmiennej x przy staych wartociach
y1 i y2. Obliczamy wartoci porednie zx1 i zx2. Na trzecim etapie interpolujemy wzgl-
dem y przy staym x i obliczamy wynik zxy.
Kolejno wyboru zmiennych do interpolacji moe by inna, ale zawsze bd trzy etapy
oblicze, ktre oczywicie mona poczy w jeden, odpowiednio przeksztacajc wzory.
z 21 z11
z x1 = z11 + ( x x1 )
x2 x1
z 22 z12
z x 2 = z12 + ( x x1 )
x2 x1
z x 2 z x1
z xy = z x1 + ( y y1 )
y 2 y1
x2 x x x1
Jak nietrudno zauway, wspczynniki i dopeniaj si do 1. Podob-
x2 x1 x2 x1
nie jest z drug par wspczynnikw z y. A zatem obliczenia bd do proste, jeli je
tylko odpowiednio zorganizowa.
Przykad 14.1.
Obliczymy metod interpolacji liniowej gsto roztworu kwasu siarkowego o steniu 28%
w temperaturze 36C. Dane rdowe do oblicze i same obliczenia pokazano na rysunku
14.4. W II wariancie oblicze zestawiono dane i wspczynniki pomocnicze w trzech ko-
lumnach i wykorzystano funkcj SUMA.ILOCZYNW do obliczenia wyniku.
Rysunek 14.4.
Interpolacja liniowa
w przypadku funkcji
dwu zmiennych
Do interpolacji liniowej funkcji dwu zmiennych mona rwnie wykorzysta znan ju nam
funkcj REGLINW. Dane dla tej funkcji musz by jednak zorganizowane tak, aby wartoci
funkcji znalazy si w jednej kolumnie. Ukad danych powinien by taki jak poniej:
Znane_z reprezentuje zakres (kolumn) czterech wartoci funkcji, znane_xy zakres ar-
gumentw x i y obejmujcy dwie kolumny po cztery wartoci, nowe_xy dwie wartoci
x i y w wierszu, dla ktrych szukamy nowej wartoci funkcji. Uycie takiej formy funkcji
interpolacyjnej jest uproszczeniem, bo jest rwnowane aproksymacji zalenoci z = f(x, y)
rwnaniem liniowym bez efektu wspdziaania, tzn. rwnaniem typu z = a0+a1x+a2y,
podczas gdy pene rwnanie liniowe powinno jeszcze zawiera czon a3xy.
Posta wywoania funkcji formalnie nie ulegnie zmianie, lecz zmieni si przywoane za-
kresy danych. Mona unikn dodawania kolumny xy, jednak kosztem komplikacji wy-
woania funkcji REGLINW. Za pomoc zapisu operacji tablicowych mona dodatkow bra-
kujc kolumn wygenerowa wirtualnie, posugujc si wywoaniem:
= REGLINW(znane_z; znane_x^{1;0;1}*znane_y^{0;1;1}; nowe_x^{1;0;1}
*nowe_y^{0;1;1})
Powyszy zapis dotyczy wersji 2007 i wczeniejszych, w wersji 2010 w staych tablico-
wych ; naley zamieni na \.
Interpolacja kubiczna
w przypadku funkcji dwu zmiennych
Jeeli metoda interpolacji liniowej nie daje wynikw dostatecznie dokadnych, moe-
my, rwnie w przypadku funkcji dwu zmiennych, skorzysta z interpolacji kubicz-
nej. Do tej procedury dla kadej zmiennej potrzebne s po cztery kolejne punkty ta-
blicowe rozmieszczone symetrycznie wok poszukiwanej wartoci, co daje w sumie
16 punktw. Oczywicie w przypadku bardzo maych lub bardzo duych wartoci ar-
gumentw (blisko pocztku lub blisko koca tablicy) trzeba zrezygnowa z warunku
symetrii.
Rysunek 14.6. Przykad zastosowania interpolacji kubicznej w odniesieniu do funkcji dwu zmiennych
znane_zi i znane_x oznaczaj zakresy danych tablicowych z dla czterech wartoci yi oraz
czterech punktw otaczajcych z obu stron now warto x.
Ten i ponisze zapisy dotycz wersji 2007 i wczeniejszych, w wersji 2010 w staych ta-
blicowych \ naley zamieni na ; i odwrotnie.
Obliczenia naley wykona oddzielnie dla kadej z czterech wartoci yi, by otrzyma
cztery wartoci porednie zx1 do zx4. Wreszcie naley uy funkcji REGLINP lub REGLINW
jeszcze raz do obliczonych wczeniej wartoci porednich. Skadnia formu jest taka jak
poniej:
= SUMA(REGLINP(znane_zxi; znane_y^{1\2\3})*y^{3;2;1;0})
lub
= REGLINW(znane_zxi; znane_y^{1\2\3}; y^{1\2\3})
Podany zapis zakada, e zakresy znane_zxi i znane_y s poziome. Gdyby byy pionowe,
separatory w staych tablicowych naleaoby zamieni na redniki (do wersji 2007; w wersji
2010 na ukoniki \).
Istnieje te kategoria rwna, ktre wprawdzie nie s liniowe, ale daj si przeksztaci
do postaci liniowej przez odpowiedni zamian zmiennych. Do tej grupy zaliczamy na
przykad rwnanie wykadnicze:
y = aebx
Pierwszy reprezentuje liniow form zalenoci x/y = f(x), drugi y = f(y/x), a trzeci
xy = f(x, y) bez wyrazu wolnego.
ax n
y = axbecx lub y =
x+b
pod warunkiem e n jest znan sta, a nie wspczynnikiem do wyznaczenia.
Istnieje jednak wiele zalenoci wanych z punktu widzenia obrbki danych dowiadczal-
nych, ktre nie daj si linearyzowa i wymagaj nieco innego podejcia, zwanego regresj
nieliniow. Przykady takich zalenoci to:
y = a(1ebx)
ax1 / 2
y= + cx
1 + bx1/ 2
Pierwiastek z wariancji pomiaru zwany jest te rednim bdem wartoci y sy. To kolej-
na charakterystyka statystyczna rwnania regresji. Warto t umieszcza si czasem
na wykresach w postaci supkw bdu wartoci y. Jest ona obliczana ze wzoru:
SS resz
sy =
N l
gdzie
N
1
y=
N y
i =1
i
Pierwszy wariant wzoru stosuje si, gdy staa w rwnaniu regresji jest obliczana, a drugi
gdy staa jest rwna zeru. Warto F powinna by moliwie jak najwiksza, a w ka-
dym razie wiksza od wartoci granicznej, okrelonej w zalenoci od liczby stopni swo-
body licznika i mianownika oraz przyjtego poziomu istotnoci.
Najprostszy przypadek dotyczy dopasowania funkcji liniowej jednej zmiennej. Jeli po-
szukiwana zaleno da si opisa rwnaniem
y = ax+b
Tablica znane_x moe zawiera jeden lub wicej zbiorw zmiennych. Jeeli uywana jest
tylko jedna zmienna, znane_y i znane_x mog by zakresami o dowolnym ksztacie, ale
o jednakowych wymiarach.
Jeeli stosuje si wicej ni jedn zmienn, znane_y musi by wektorem (tzn. zakresem
o wysokoci jednego wiersza lub o szerokoci jednej kolumny). Tablice znane_y i znane_x
musz by w caoci wypenione danymi liczbowymi (nie mog zawiera pustych kom-
rek ani danych nieliczbowych inaczej ni w przypadku funkcji NACHYLENIE, ODCITA
i R.KWADRAT), ponadto znane_x musi stanowi zakres spjny, czyli musi by zawarte w jed-
nym obszarze.
Jeeli pominie si znane_x, argument ten jest przyjmowany jako tablica {1;2;3;...} lub
{1\2\3\...}, ktra ma tak sam wielko jak znane_y.
Czy_staa jest to warto logiczna okrelajca, czy staa b ma by rwna 0, czy obliczana
normalnie. Jeeli czy_staa ma warto PRAWDA lub jest pominita, b jest obliczane nor-
malnie. Jeeli czy_staa ma warto FASZ, b jest rwne 0, a wartoci a s dopasowywane
do rwnania y = ax lub y = aixi.
Przy dodawaniu linii trendu do wykresu punktowego mona zadeklarowa dowoln war-
to staej b w rwnaniu regresji. W przypadku funkcji REGLINP mona jedynie zadekla-
rowa warto 0. Jeeli znana warto staej b jest rna od zera, naley od zmierzonych
wartoci y odj b i w charakterze zmiennej znane_y uy tej rnicy, nadajc rwno-
czenie argumentowi czy_staa warto FASZ.
Funkcja REGLINP jest funkcj tablicow, wic wymaga wczeniejszego zaznaczenia miej-
sca na wynik i zatwierdzenia klawiszami Ctrl+Shift+Enter. Chocia funkcja w swojej
penej wersji moe wywietla wyniki w piciu wierszach, nie jest konieczne wywietla-
nie ich wszystkich. Mona na przykad zaznaczy miejsce na wywietlenie tylko trzech
pierwszych wierszy, a zrezygnowa z dwu ostatnich.
W przypadku gdy staa w rwnaniu regresji nie jest obliczana (jest rwna 0), funkcja
REGLINP podaje bdne wartoci statystyk. Suma regresyjna obliczana jest z bdnego
wzoru:
N
SS regr = y
i =1
i
2
SS resz
Na rysunku 15.1 pokazano, na czym polega problem z funkcj REGLINP. Obliczenia przy
uyciu tej funkcji wykonano trzykrotnie raz jako znane_x uyto jednej kolumny danych,
z argumentem czy_staa o wartoci FASZ uzyskano wyniki bdne, natomiast na wy-
kresie wspczynnik determinacji obliczony jest poprawnie. W drugim przypadku dodano
drug kolumn x zoon z samych jedynek i obliczono dwa wspczynniki nadal z argu-
mentem czy_staa o wartoci FASZ rwnie uzyskano wyniki bdne. W trzecim przy-
padku uyto jednej kolumny danych jako znane_x, z argumentem czy_staa o wartoci
PRAWDA uzyskano wyniki poprawne. Obliczone wspczynniki w drugim i trzecim przy-
padku s liczbowo rwne, gdy dotycz faktycznie tych samych danych, rnica polega
tylko na innym sposobie obliczania wskanikw statystycznych.
Przykad 15.1.
Dana jest zaleno cinienia osmotycznego roztworu cukru od jego stenia procento-
wego. Wykonamy wykres tej zalenoci i dopasujemy lini trendu na wykresie wy-
wietlimy jej rwnanie oraz kwadrat wspczynnika korelacji. Wykres powinien prze-
chodzi przez pocztek ukadu wsprzdnych.
Rysunek 15.2.
Zaleno cinienia
osmotycznego
roztworu cukru
od jego stenia
procentowego jako
przykad regresji
liniowej
Przy prowadzeniu oblicze dotyczcych regresji w Excelu 2007 lub 2010 mona dodat-
kowo wykorzysta tabele wraz z odwoaniami strukturalnymi. Nie uzyskamy przez to ja-
kich szczeglnych uatwie, lecz unikniemy kopiowania w kolumnach, ktre bdzie si
odbywa automatycznie, i nieco szybciej wprowadzimy nagwki kolumn ni nazwy od-
powiednich zakresw. Ponadto jeli w jednym arkuszu chcemy umieci kilka podobnych
oblicze, atwiej zachowa podobne schematy oznacze ze wzgldu na to, e nagwki
kolumn w rnych tabelach mog si powtarza, a nazwy zakresw musz by unikatowe
w arkuszu.
Przykad 15.2.
Dana jest zaleno przewodnictwa molowego rozcieczonych roztworw chlorku wap-
nia od stenia molowego w temperaturze 25oC. (Dane pochodz z ksiki [7]). Zgodnie
z teori rozcieczonych roztworw elektrolitw przewodnictwo molowe powinno by
liniow funkcj pierwiastka ze stenia:
= 0 k C
Dane oraz wyniki pokazano na rysunku 15.3. Zaleno liniowa jest dobrze speniana przez
cztery pierwsze punkty, dlatego tylko te punkty wykorzystano do oblicze.
Rysunek 15.3.
Zaleno
przewodnictwa
molowego
rozcieczonych
roztworw chlorku
wapnia od stenia
molowego
w temperaturze 25C
jako przykad regresji
liniowej ze zmian
zmiennej niezalenej
Przykad 15.3.
Adsorpcj par na staych adsorbentach opisuje si czsto rwnaniem izotermy Langmuira:
abp
x=
1 + bp
gdzie:
x uamek wagowy okrelajcy ilo substancji zaadsorbowanej na jednostk
masy sorbentu,
p czstkowa prno pary substancji adsorbowanej w rwnowadze z adsorbentem.
Rwnanie izotermy Langmuira jest nieliniowe i przed jego opracowaniem metod regre-
sji liniowej trzeba je przeksztaci do postaci liniowej wzgldem nowych zmiennych.
Rysunek 15.4.
Stopie adsorpcji par
czterochlorku wgla
na wglu aktywnym
jako przykad regresji
wedug rwnania
linearyzowanego
do oryginalnych zmiennych. Aby mona byo atwo modyfikowa zakresy punktw bra-
nych pod uwag w obliczeniach zdefiniowano komrk przechowujc numer wiersza
z pocztkowymi danymi. Komrce tej nadano nazw PZ (komrka F27). Wszystkie adresy
potrzebne do zdefiniowania zakresw roboczych s konstruowane z uyciem funkcji
ADR.POR, ktrej argumentem jest adres w postaci tekstowej. Tekst ten moe by zoony
z elementw oznaczajcych kolumn i wiersz. Alternatywnie mona uy funkcji ADRES,
ktra rwnie pozwala na konstrukcj adresu w formie tekstowej z numerw wiersza i ko-
lumny. Jeeli na przykad chcemy odwoa si do komrki z kolumny B (jest to druga ko-
lumna) i z wiersza o numerze pobranym z komrki PZ, to moemy uy jednego z wyrae:
= ADR.POR("B"&PZ) lub = ADR.POR(ADRES(PZ;2))
Funkcja WIERSZ() bez argumentw zwraca numer wiersza z miejsca wywoania. Wyrae-
nie oblicza wartoci 1/p, w tym przypadku 1/A6, jeeli wywoanie jest w wierszu o nu-
merze PZ lub wikszym, w przeciwnym razie zwraca kod #N/D!.
Ten i poniszy zapis dotyczy wersji 2007 i wczeniejszych, w wersji 2010 w staych ta-
blicowych ; naley zamieni na \.
Gorzej, jeli zakres znane_x tworz niezalene zmienne wwczas trzeba rcznie
przygotowa zakres wspczynnikw w odwrconej kolejnoci i tego zakresu uywa
w wyraeniach. Ale na szczcie jest lepsze wyjcie specjalna funkcja REGLINW, ktra
zostaa udostpniona wanie do obliczania prognozowanych wartoci funkcji w regresji
liniowej.
Znaczenie argumentw znane_y, znane_x i czy_staa jest takie jak w przypadku funkcji
REGLINP.
Nowe_x s to wartoci x, dla ktrych chcemy obliczy za pomoc funkcji REGLINW odpo-
wiednie wartoci y. Nowe_x musi zawiera jedn warto, kolumn (lub wiersz) dla kadej
zmiennej niezalenej, tak jak w przypadku znane_x. Jeeli pominie si nowe_x, argument
ten jest przyjmowany domylnie jako taki sam jak znane_x. Jeeli pominie si zarwno
znane_x, jak i nowe_x, s one przyjmowane jako tablica {1;2;3;...} lub {1\2\3\...}, ktra
ma taki sam rozmiar jak znane_y.
Wynikiem dziaania funkcji jest tablica o wymiarach tablicy nowe_x (lub znane_x, jeli
nowe_x pominito, lub znane_y, jeli pominito zarwno nowe_x, jak i znane_x), zawiera-
jca prognoz wartoci y wedug trendu liniowego.
Jeeli nowe_x reprezentuje pojedynczy punkt, to funkcja REGLINW jest zwyk funkcj,
w przeciwnym razie jest funkcj tablicow.
Uproszczony wariant funkcji REGLINW stanowi funkcja REGLINX. Uwzgldnia tylko regre-
sj prost, z jedn zmienn x, i oblicza wynik prognozowane y w zasadzie dla jednej
wartoci x. Mona jednak za x podstawi zakres wartoci i uy tej funkcji jako funkcji
tablicowej.
x jest to punkt danych, dla ktrego chcemy prognozowa warto y; znane_y jest to tablica
lub zakres danych zalenych; znane_x jest to tablica lub zakres danych niezalenych.
Regresja liniowa
w przypadku funkcji dwu zmiennych
Stosunkowo czsto chcemy opisa rwnaniem zaleno pewnej wielkoci od dwu zmien-
nych niezalenych, na przykad zaleno gstoci roztworu od temperatury i stenia.
Jeeli zaleno daaby si opisa prostym rwnaniem liniowym:
y = a0+a1x1+a2x2
problem mona by rozwiza w sposb do prosty za pomoc funkcji REGLINP i REGLINW.
Jedyny kopot to sposb zapisu danych. Zaleno od dwch zmiennych przedstawiana
jest zazwyczaj w postaci tablicy dwuwymiarowej, jak w poniszym przykadzie.
Wartoci jednej zmiennej (x1) umieszcza si w pierwszej kolumnie tablicy, a wartoci dru-
giej zmiennej (x2) w pierwszym wierszu. Wartoci funkcji znajdujemy w komrce na
przeciciu wiersza odpowiadajcego danej wartoci x1 i kolumny odpowiadajcej danej
wartoci x2.
Aby uy funkcji REGLINP lub REGLINW, dane musz mie ukad wierszowy lub kolumnowy.
Tablic dwuwymiarow trzeba przeksztaci w jednowymiarow, a cilej w trzy tablice
jednowymiarowe, po jednej dla kadej zmiennej niezalenej i wartoci funkcji.
Jeeli wybierzemy ukad kolumnowy, ktry jest bardziej czytelny, w pierwszej kolumnie
naley skopiowa oryginaln kolumn x1 n razy, czyli tyle razy, ile wartoci przyjmuje
zmienna x2. W drugiej kolumnie powtarzamy pierwsz warto x2 m razy, czyli tyle razy,
ile wartoci przyjmuje zmienna x1. Nastpnie powtarzamy drug warto x2 i kolejne a
do wyczerpania ich listy. W rezultacie w kadej kolumnie znajdzie si m*n wartoci, gdzie
m i n oznaczaj liczebnoci zbiorw wartoci x1 i x2. Kolumn wartoci funkcji tworzymy,
kopiujc oryginalne wartoci funkcji z tablicy dwuwymiarowej kolumnami jedn po dru-
giej. Operacj mona wykona rcznie lub napisa odpowiedni makroinstrukcj w Visual
Basicu.
Powyszy zapis dotyczy wersji 2007 i wczeniejszych, w wersji 2010 w staych tablico-
wych ; naley zamieni na \.
Wygodnie byoby zapisa tablice A i B za pomoc wyrae, ktre pozwol utworzy te ta-
blice automatycznie rwnie w przypadku wielomianw innych stopni. Oznaczymy stop-
nie wielomianw wzgldem x1 i x2 odpowiednio przez st.1 i st.2. Liczba wspczynnikw,
Maksymalna liczba kolumn w obszarze znane_x wynosi 16, mona wic zaplanowa mak-
symalnie wielomiany 3. stopnia wzgldem obu zmiennych albo 2. i maksymalnie 4. stop-
nia, albo 1. i maksymalnie 7. stopnia. Podane ograniczenie maksymalnej liczby kolumn x
obowizuje do wersji 2007, w wersji 2010 kolumn moe by wicej nawet 64 (wie-
lomiany 7. stopnia wzgldem obu zmiennych).
Jeeli wartoci funkcji obliczone z rwnania regresji chcemy umieci w tablicy dwu-
wymiarowej w ukadzie takim jak oryginalne dane, naley do pierwszej komrki obszaru
wyniku wprowadzi wyraenie (tablicowe):
= SUMA(wsp*dane_x1^(st.1A)*dane_x2^(st.2B))
Jeeli potrzebne s tylko wartoci funkcji, a nie wspczynniki w rwnaniu, mona posu-
y si funkcj REGLINW. W tablicy dwuwymiarowej jej wywoanie moe mie posta:
= REGLINW(znane_y; znane_x1^A*znane_x2^B; dane_x1^A*dane_x2^B; FASZ)
W tym wyraeniu znane_y, znane_x1 oraz znane_x2 odnosz si do zakresw danych za-
pisanych w kolumnach, natomiast dane_x1 i dane_x2 oznaczaj komrki odpowiednio
z pierwszej kolumny i pierwszego wiersza tablicy dwuwymiarowej, najlepiej odwoywa
si do nich, stosujc adresy mieszane i wypeniajc nastpnie cay obszar tablicy przez
kopiowanie.
Rysunek 15.5. Zaleno gstoci roztworw wglanu sodu w funkcji stenia i temperatury
jako przykad regresji wielomianem dwu zmiennych dane rdowe i wyniki regresji
Rysunek 15.6. Zaleno gstoci roztworw wglanu sodu w funkcji stenia i temperatury jako przykad
regresji wielomianem dwu zmiennych dane w ukadzie kolumnowym i wspczynniki regresji
(fragment arkusza)
ax1 / 2 x1 / 2
y= + cx , po przeksztaceniu y = ax'+cx, gdzie x =
1 + bx1 / 2 1 + bx1 / 2
b jest tu wspczynnikiem nieliniowym, po przyjciu wartoci startowej tego wsp-
czynnika obliczamy a i c metod regresji liniowej.
y = aebx+c, po przeksztaceniu y = ax'+c, gdzie x' = ebx
Krzywa Gaussa:
2 2
A = Amax e [( x m ) / s ] , czyli A = Amaxx', gdzie x = e [( x m ) / s ]
m i s s tu wspczynnikami nieliniowymi, po przyjciu wartoci startowych tych
wspczynnikw obliczamy Amax metod regresji liniowej.
Amax x m A
ln = , czyli y' = ax+b, gdzie y = ln max , a = 1/s, a b = m/s
A s A
i = ( P 1 ) ii s y
gdzie (P-1)ii jest i-tym elementem diagonalnym macierzy odwrotnej do macierzy P, ktrej
elementy opisuje wzr:
N
Fn Fn
Pij = a
n =1 i
a j
SS resz
sy =
N l
takiego jak w regresji liniowej.
Pozostae parametry statystyczne, takie jak suma resztkowa, wariancja resztkowa, suma
regresyjna, wspczynnik determinacji, s obliczane tak samo jak w przypadku regresji
liniowej.
Przykad 16.1.
Dana jest zaleno redniego wspczynnika aktywnoci w roztworach kwasu azotowe-
go od stenia C. Dane dotycz temperatury 25C. Zaleno t mona opisa wzorem:
aC 0,5
ln = + dC
1 + bC 0,5
a, b i d s wspczynnikami do wyznaczenia, przy czym wspczynnik b jest nieliniowy.
Rysunek 16.1.
Dobr wspczynnikw
regresji quasi-liniowej
z wykorzystaniem
Solvera rwnanie
przeksztacone
Ten sam przykad mona rwnie rozwiza z zastosowaniem metody regresji nielinio-
wej. W tym przypadku wartoci wszystkich trzech wspczynnikw bd dobierane za
pomoc Solvera. Wartoci startowe naley oszacowa na podstawie oblicze wykona-
nych poprzednio. Kryterium dopasowania mona teraz sformuowa jako sum kwadra-
tw rnic zmierzonych i obliczonych wartoci zmiennej zalenej (w Excelu suy do tego
funkcja o nazwie SUMA.XMY.2) w naszym przykadzie zmienn zalen moe by sam
wspczynnik aktywnoci lub jego logarytm wybr naley do przeprowadzajcego
obliczenia. Jeli zna si metodyk pomiaru, powinno si wybra tak wielko, dla ktrej
bdy pomiaru we wszystkich punktach maj moliwie zblione wartoci.
Rysunek 16.3. Dobr wspczynnikw metod regresji nieliniowej z wykorzystaniem Solvera rwnanie
oryginalne, wspczynnik aktywnoci jako zmienna zalena
Rozpatrzymy jeszcze jeden przykad regresji nieliniowej. Dane liczbowe do tego przyka-
du zaczerpnito z ksiki [7], strona 102.
Przykad 16.2.
Kwas azotowy w metanolu zachowuje si jak saby elektrolit. Graniczna przewodno mo-
lowa kwasu azotowego w metanolu w temperaturze 25C wynosi 0 = 203,9 1cm2mol1.
Zmierzone wartoci przewodnoci molowej roztworu w funkcji stenia c wynosz:
Z kolei stopie dysocjacji jest rwny stosunkowi przewodnoci molowej przy danym
steniu do przewodnoci granicznej 0. Zatem
= 0
Poniewa przewodno graniczna jest znana, mona przeliczy wartoci na stopie dy-
socjacji . Otrzymujemy nastpujce wartoci:
K c + K c2 + 4cK c
=
2c
Wystpuje tu jeden wspczynnik Kc, ale zaleno jest nieliniowa i najwygodniej bdzie
przeprowadzi dopasowanie z wykorzystaniem Solvera.
Zadanie mona rwnie rozwiza bez znajomoci 0. Warto tego parametru rwnie
mona wyznaczy. Podstaw oblicze bdzie rwnanie:
K c + K c2 + 4cK c
= 0 = 0
2c
Jako funkcj celu przyjmiemy teraz sum kwadratw odchyle dla . Wartociami star-
towymi bd jak poprzednio Kc 5104 oraz 0 200 1 cm2mol1. Warto 0 musi
by wiksza od wszystkich zmierzonych wartoci .
Rysunek 16.4.
Ekran z wynikami
oblicze parametrw
metod regresji nieliniowej
za pomoc Solvera.
U gry: obliczenie
staej dysocjacji, u dou
rwnoczesne obliczenie
staej dysocjacji
i przewodnoci granicznej
Wsprzdn xi0 rzutu punktu pomiarowego na lini trendu wyznaczamy oddzielnie dla
kadego punktu, rozwizujc rwnanie nieliniowe z jedn niewiadom:
(xixi0)+f' (xi0)(yif(xi0)) = 0 (*)
~ s2 1 1
d i2 = ( xi xi0 ) 2 +
s4 (k i
0 2
)
( xi xi0 ) 2 = 1 + (sk i
( xi xi0 ) 2
)
0 2
Korelacja liniowa
W najprostszym przypadku funkcji liniowej o postaci y = ax+b mamy k0 = a i rwnanie (*)
daje si efektywnie rozwiza
xi + as 2 ( yi b)
xi0 =
1 + a2s2
atwo sprawdzi, e przy s 0 mamy xi0 = xi, czyli zwyk regresj, a przy s
otrzymujemy xi0 = (yib)/a, czyli yi0 = yi, co oznacza regresj wzgldem zmiennej x.
~2 s2
d i =
1 + ( sa)
2
(ax + b y ) i i
2
x ( x )
2
p=n 2
i i
q = s (n x y x y ) = n x Y x Y
i i i i i i i i
r = s n y ( y ) = n Y ( Y )
2 2 2 2 2
i i i i
n oznacza liczb punktw pomiarowych. Rozwizanie tego rwnania ma posta:
rp
sa = 1 + 2 gdzie =
2q
Wybr znaku nie jest dowolny. Tylko jedna warto zapewnia minimum funkcji celu
mona sprawdzi, e naley wzi znak zgodny ze znakiem q (p i r s zawsze dodatnie).
1 s 1
sa = + sgn(a y ) 1 + 2 gdzie =
2 a x sa y
Na rysunku 16.5 pokazano przykad danych, dla ktrych wyznaczono metod najmniej-
szej sumy kwadratw trzy proste najlepszego dopasowania jedn klasyczn metod
regresji przy zaoeniu, e dane x s dokadne, a dane y obarczone bdami pomiaru, drug
metod regresji odwrotnej (wartoci y s dokadne, a x obarczone bdami) i trzeci metod
korelacji ze wspczynnikiem skali s = 0,2 (zarwno dane x, jak i y s obarczone bdami,
przy czym bdy x w skali bezwzgldnej s przecitnie 5 razy mniejsze od bdw y).
Rysunek 16.5. Porwnanie linii trendu (prostych) dopasowanych metod regresji i metod korelacji
Zadaniem Solvera bdzie minimalizacja tej sumy przez dopasowanie wartoci wsp-
czynnikw a i b oraz wszystkich wartoci pi0. Jako warunki ograniczajce trzeba poda
rwnania (*).
Rysunek 16.7.
Okno dialogowe Solvera,
w ktrym okrelono
parametry oblicze
wspczynnikw
w rwnaniu izotermy
Langmuira
dy
y = = f ( x, y )
dx
Rozwizywanie zagadnienia
pocztkowego metod Eulera
Najprostsza numeryczna metoda rozwizania zagadnienia pocztkowego rwnania r-
niczkowego w postaci podanej powyej nosi nazw metody Eulera. W metodzie tej
aproksymujemy pochodn ilorazem rnicowym, wykorzystujc rnice przednie:
y y1 y 0 dy
= = f ( x0 , y 0 )
x x1 x 0 dx
Std: y1 y 0 + f ( x 0 , y 0 ) * ( x1 x 0 )
sob dwie substancje A i B, dajc w wyniku jeden produkt C w reakcji odwracalnej (tzn.
produkt C wytworzony w reakcji moe rozpada si czciowo z powrotem na A i B
reakcja przebiega wedug schematu A+B C), stenie reagenta A (substratu) mona
opisa rwnaniem:
dC A
= k1 * C A * C B k 1 * C C
dt
Aby zaprojektowa rozwizanie, musimy jeszcze ustali krok czasowy t, o ktry bdzie
wzrasta czas t w kadym kroku cakowania, oraz maksymalny czas obserwacji lub liczb
krokw czasowych. Rozwizanie zapiszemy w tabeli w ukadzie kolumnowym. W pierw-
szej kolumnie umiecimy zmienn pomocnicz numer kroku czasowego i, liczony od
0 do, powiedzmy, n = 1000, czyli czas liczony w jednostkach t. Liczba krokw musi
by odpowiednio dua, jeeli chcemy uzyska dobr dokadno, ale jeeli wystarczy nam
wynik szacunkowy z kilkuprocentowym bdem, to mona zmniejszy n dziesiciokrotnie.
Jeeli zaplanowalimy, e maksymalny czas obserwacji wyniesie tk = 1000 s, wyniknie
z tego dugo kroku czasowego t = tk/n. W kolumnach od drugiej do czwartej bd
wyliczane stenia reagentw CA(t), CB(t) oraz CC(t). Wreszcie w pitej kolumnie umie-
cimy wartoci prawej strony rwnania kinetycznego, czyli funkcji f, oznaczanej dalej
symbolem FC.
W pierwszym wierszu tabeli umiecimy kolejno wartoci: 0, CA0, CB0, CC0 oraz
FC (t = 0) = k1 * C A0 * C B 0 k 1 * CC 0 , a w kolejnych wierszach: numer kroku, wyliczone
stenia reagentw i warto funkcji FC przy biecych steniach reagentw.
CCi = CCi-1+FCi-1*t
FCi = k1 * C Ai * C Bi k 1 * C Ci
gdzie CAi = CA(t = i*t) i analogicznie w przypadku ste CBi i CCi oraz funkcji FC.
Warto zwrci uwag, e we wzorach dotyczcych substratw jest znak , a we wzo-
rach dotyczcych produktw znak +. Naley uywa adresw wzgldnych komrek
ze steniami i funkcj FC oraz adresw absolutnych lub nazw komrek ze staymi szyb-
koci reakcji k1 i k1 oraz t. Formuy te wprowadzone do drugiego wiersza tabelki mog
by nastpnie skopiowane w d, a do i = n.
Mona rwnie nada nazwy zakresom obejmujcym numer kroku I (od zera) oraz st-
enie reagenta A CA. W komrkach zakresu CA umieszczamy wpisy:
w pierwszym wierszu: = CA0
w nastpnych wierszach: = INDEKS(CA;I) INDEKS(FC;I)*DT
Jeszcze inny wariant tego zapisu moe polega na wykorzystaniu sumowania skadnikw
przy obliczaniu CA.
i
CAi = CA0 FC
i =1
i-1* t
Kolejnym krokiem jest definicja funkcji kinetycznej FC, ktrej tym razem nadamy
nazw FCw.
FCw : = K.1*CAw*CBwK_1*CCw
Mona postpi dwojako albo zdefiniowa FCw jako formu nazwan, wtedy umiesz-
czamy definicj w Menederze nazw, a w komrce arkusza wpisujemy odwoanie = FCw;
albo umieci powysz definicj w komrce arkusza, a w Menederze nazw zdefiniowa
nazw FCw jako adres mieszany odpowiedniej komrki, ze znakiem $ przed liter kolumny.
Nastpnie musimy wprowadzi wzr okrelajcy stenie substratu A w kolejnym kroku
oblicze. Formua definiujca CAnw ma posta: = CAwFCw*DT i naley j wprowadzi do
komrki arkusza.
lub mieszane ze znakiem $ przed liter kolumny. W komrce wpisujemy odwoanie = CAnw.
W kolejnych kolumnach naley wpisa formuy okrelajce stenia pozostaych re-
agentw CB i CC:
= CAw+CB0CA0
= CC0+CA0CAw
Stosujc metod Eulera w prostej wersji, musimy zazwyczaj tworzy bardzo du tablic
danych. Tak tablic niewygodnie si analizuje, rwnie do wykonania wykresu te
wszystkie dane nie s potrzebne. Dlatego warto kolumny z obliczeniami ukry, a do anali-
zy pozostawi sobie jedynie na przykad co 20. wiersz tablicy. Tworzymy w tym celu
w arkuszu now tablic z picioma kolumnami i dodajemy kolumn czasu, ktra bdzie
potrzebna do zrobienia wykresu. W pierwszej kolumnie wpisujemy numer kroku ik,
w drugiej czas t, w kolejnych stenia reagentw CA, CB i CC. W kolumnie ik umieszczamy
liczby 0, 20, 40, 60 itd., i ewentualnie nadajemy tej kolumnie nazw ik. W nastpnej ko-
lumnie (czas t) wpisujemy = ik*DT, dalej w kolumnach ste wpisujemy odpowiednio
= INDEKS(CA;ik+1), = INDEKS(CB;ik+1), = INDEKS(CC;ik+1). Indeks ik musi by zwik-
szany o 1, bo numeracja krokw zaczyna si od 0, a zakresy ste s numerowane od 1.
Wszystkie kolumny kopiujemy w d do wypenienia tablicy. Dane z nowej odchudzo-
nej tablicy moemy wykorzysta na przykad do sporzdzenia wykresu. Na rysunku 17.1
pokazano wyniki oblicze wykonanych t metod i wykres rozwizania.
Analogicznie mona postpi, posugujc si tabel w wersji 2007 lub 2010. Trzeba zde-
finiowa drug tabel z nagwkami podobnymi jak podane wyej. Odwoania do danych
oryginalnej tabeli (przy zaoeniu, e nosi ona numer 1) bd miay posta:
= INDEKS(Tabela1[CA];[ik]+1)
i podobnie w przypadku kolumn [CB] i [CC].
FCi = k1 * C Ai
* C Bi k 1 * CCi
Realizacja tej modyfikacji w Excelu wymaga dodania czterech kolumn lub czterech for-
mu nazwanych. Poniewa w nazwie nie mona uy gwiazdki, zastpimy j znakiem
podkrelenia. Zarezerwujemy zatem cztery kolumny i nadamy im nazwy: CA_, CB_, CC_ i FC_.
Alternatyw jest zdefiniowanie formu o podanych nazwach. Liczb krokw cakowania
mona zmniejszy piciokrotnie.
Tabelk wypenimy tym razem tak, jak opisano dalej. Pierwszy wiersz zawiera kolejno
w kolumnie I: 0, w kolumnie CA : = CA0, dalej odpowiednio: = CB0, = CC0, = K.1*CA*
CBK_1*CC. W dodatkowych kolumnach:
CA_ : = CAFC*DT
CB_ : = CA_+CB0CA0
CC_ : = CC0+CA0CA_
FC_ : = K.1*CA_*CB_K_1*CC_
Mona te dooy dodatkow kolumn CAn (lub formu nazwan) do obliczania nowej
wartoci CA tej, ktra powinna si znale w nastpnym wierszu. Wtedy obliczenia
bd si odbywa wedug wzorw:
CAn : = CA0,5*(FC+FC_)*DT
CA : = INDEKS(CAn;I) jako zwyka formua lub = CAn wprowadzone jako formua tabli-
cowa, poczwszy od wiersza o numerze 1.
Rysunek 17.2.
Przykad rozwizania
rwnania kinetycznego
zmodyfikowan
metod Eulera
W Excelu wersji 2007 i 2010 mona rwnie wykorzysta funkcjonalno tabeli. Przy-
gotowujemy zakres komrek o odpowiednich rozmiarach i nadajemy kolumnom nazwy,
na przykad: i, CA, CB, CC, f(Ci), CA_, CB_, CC_, f(Ci_), CAn. Nazwy staych s takie jak
poprzednio. Mona wyczy filtr, bo nie bdzie potrzebny. W kolumnie [i] w pierwszym
wierszu wpisujemy 0 i wypeniamy j kolejnymi liczbami cakowitymi (przez wypenienie
staymi albo formu przyrostow w obu przypadkach trzeba to zrobi rcznie). W ko-
lumnie [CA] w pierwszym wierszu wpisujemy = CA0. W kolumnach [CB] i [CC] wpisujemy
odpowiednio formuy = [CA]+CB0CA0 i = CC0+CA0[CA]. W kolumnie [f(Ci)] wpisu-
jemy = K.1*[CA]*[CB]K_1*[CC]; w kolumnie [CA_]: = [CA][f(Ci)]*DT. W kolumnach
[CB_] i [CC_] wpisujemy odpowiednio formuy = [CA_]+CB0CA0 i = CC0+CA0[CA_]. W ko-
lumnie [f(Ci_)] wpisujemy = K.1*[CA_]*[CB_]K_1*[CC_]. W ostatniej kolumnie [CAn]
wyliczamy stenie do nastpnego kroku oblicze: = [CA]0,5*([f(Ci)]+[f(Ci_)])*DT.
Osiem ostatnich kolumn zostanie wypenionych automatycznie dziki funkcjonalnoci
tabeli. Pozostaje kolumna [CA], ktr poczwszy od drugiego wiersza, wypeniamy for-
mu = INDEKS([CAn]; [i]), ktr trzeba rcznie skopiowa w d, do koca tabeli. Jeeli
zaleaoby nam na automatycznym wypenieniu kolumny [CA], mona by posuy si
formu warunkow = JEELI([i]=0; CA0; INDEKS([CAn]; [i])) wprowadzon ju
w pierwszym wierszu.
W wariancie z uyciem tabeli unikamy nazywania formu i uatwiamy sobie prac dziki
automatycznemu kopiowaniu wikszoci kolumn, ale wszystkie formuy musz by jaw-
nie zapisane w arkuszu. Pniej kolumny z wynikami porednimi mona ukry. Nato-
miast dziki formuom nazwanym cz oblicze odbywa si w tle i nie zajmuje miej-
sca w arkuszu. Nie mona zatem jednoznacznie stwierdzi, ktry wariant jest lepszy
wszystko zaley od preferencji uytkownika.
Std: y1 y 1 + f ( x 0 , y 0 ) * ( x1 x 1 )
Wszystko wydaje si pikne, tylko skd wzi warto y1? To warto hipotetyczna, bo
jest w istocie poza zakresem cakowania, ale okazuje si niezbdna, aby obliczenia mona
byo przeprowadzi. Od tej wartoci zale wyniki dalszych oblicze, a wic powinna by
znana do dokadnie. Trzeba j wic jako oszacowa. Okazuje si, e jest na to sposb.
Jeli zaoymy wstpnie jak warto y1 i bdziemy kontynuowa obliczenia, w kolej-
nych krokach okae si, e w miar wzrostu indeksu i narastaj oscylacje wartoci yi.
Poniewa rozwizanie, ktrego oczekujemy, jest zwykle funkcj gadk, naley tak do-
bra warto y1, aby sprowadzi oscylacje do minimum. Mona to zrobi rcznie, po-
przez obserwacj wynikw na wykresie, albo obliczajc rnice wartoci funkcji FC mi-
dzy ostatnimi punktami i sprawdzajc, czy zmieniaj si monotonicznie.
Tak jak poprzednio, zakresom obejmujcym numer kroku, stenia reagentw i funkcj
kinetyczn nadajemy nazwy I, CA, CB, CC i FC. W pierwszym wierszu w kolumnie I wpi-
sujemy 1, dalej w kolumnie CA prognoz wartoci CA, wiksz od CA0; pozostae pola
w tym wierszu mog pozosta puste lub mona tam wpisa wzory standardowe, jak w wier-
szach poniej. W drugim wierszu pod I wpisujemy 0, w kolumnach ste odpowiednio
= CA0, = CB0, = CC0, w kolumnie FC : = K.1*CA*CBK_1*CC.
Wzory te kopiujemy w d do zapenienia tabeli. Liczba krokw cakowania jest taka jak
przy pierwszej modyfikacji metody Eulera. Nastpnie wykonujemy wykres ostatnich
10 punktw funkcji CA lub FC. Zauwaymy zapewne oscylacje wartoci tych funkcji.
Rysunek 17.3.
Metoda Eulera
z rnicami centralnymi
zastosowana
do rozwizania
przykadowego
rwnania kinetycznego
Metoda Rungego-Kutty
Radykaln popraw dokadnoci rozwizania rwna rniczkowych uzyskuje si za cen
zwikszenia do czterech liczby krokw porednich w kadym kroku cakowania. Jest to
najbardziej znana z metod Rungego-Kutty. Obliczenia, jak w metodzie Eulera, maj cha-
rakter iteracyjny. W kadym kroku porednim oblicza si oszacowanie przyrostu zmien-
nej y, ktre uwzgldnia si w kolejnym kroku porednim. W kocu przyrost zmiennej y
oblicza si jako redni waon przyrostw obliczonych w krokach porednich.
Po wprowadzeniu definicji kadej zmiennej czy staej naley klikn przycisk Dodaj,
a dopiero na kocu OK.
Rysunek 17.4.
Wyniki uzyskane
metod Rungego-Kutty
przy rozwizaniu
przykadowego
rwnania kinetycznego
Rysunek 17.5.
Porwnanie
dokadnoci
rozwiza rwnania
rniczkowego
rnymi metodami
Jako konkretny przykad posuy rwnanie dyfuzji sferycznej z reakcj chemiczn, ktrej
kinetyk opisuje rwnanie nieliniowe. Tego typu rwnania spotyka si przy opisie nie-
ktrych ukadw katalizy enzymatycznej. Rwnanie do rozwizania wraz z warunkami
brzegowymi zapisane w postaci bezwymiarowej przedstawia si tak:
1 d 2 dc c dc
r = , (0) = 0, c(1) = 1
r 2 dr dr 1 + Kc dr
Przykad zosta zaczerpnity z ksiki [6]. Rozwaymy dwa sposoby rozwizania tego
zagadnienia brzegowego.
Metoda strzaw
Pierwszy sposb jest podobny do omawianych wczeniej metod iteracyjnych rozwizania
zagadnienia pocztkowego. Rwnanie rniczkowe drugiego rzdu przeksztacamy w ukad
rwna sprzonych rzdu pierwszego, traktujc pierwsz pochodn funkcji niewiado-
mej jako now niewiadom. Z dwu warunkw jeden traktujemy jako pocztkowy, a drugi
warunek pocztkowy (dla tej samej wartoci zmiennej niezalenej) odgadujemy. Roz-
wizujemy teraz ukad rwna pierwszego rzdu jedn z metod omwionych dotychczas.
Po uzyskaniu rozwizania sprawdzamy, czy jest speniony warunek brzegowy. Jeeli nie,
korygujemy odgadnity warunek pocztkowy i powtarzamy obliczenia a do uzyskania
zgodnoci. Procedur dopasowania warunku brzegowego mona przeprowadzi za po-
moc Solvera lub narzdzia Szukaj wyniku. Ta metoda rozwizania jest nazywana me-
tod strzaw.
Trzeba teraz rozwiza ten ukad rwna sprzonych, posugujc si jedn z metod opi-
sanych poprzednio. Schemat obliczeniowy dla metody Eulera bdzie taki jak poniej:
ci ri2
ri 2+1 pi +1 = ri 2 pi + r , p0 = 0
1 + Kci
ci +1 = ci + pi r , c(1) = 1
ri 2 ci
pi +1 = p +
2 i
r , p0 = 0
ri +1 1 + Kci
ri 2 0,5ci 0,5ci+1
pi +1 = p +
2 i
r + r
ri +1 1 + Kci 1 + Kci+1
ci +1 = ci + 0,5( pi + pi+1 )r
W pierwszym wierszu tabeli pod i lub r wpisujemy 0, pod p wpisujemy 0 (jeden z danych
warunkw), pod c. wpisujemy odgadnit warto c0 = 0,5. Poczwszy od drugiego wiersza
tabeli, zaznaczamy zakres i (= i) lub r (= i*DR) obejmujcy n wierszy i zatwierdzamy
formu przez Ctrl+Shift+Enter. Podobnie w kolumnach p i c. zaznaczamy zakresy po n
wierszy i wprowadzamy formuy = INDEKS(pn;i) i = INDEKS(cn;i) jako formuy zwyke
lub odpowiednio = pn i = cn jako formuy tablicowe.
c jednego z narzdzi: Szukaj wyniku lub Solvera. W pierwszym przypadku trzeba zmieni
w Narzdziach/Opcje/Przeliczanie (w wersji 2007 Przycisk pakietu Office/Opcje programu
Excel/Formuy/Opcje obliczania, a w wersji 2010 Plik/Opcje/Formuy/Opcje obliczania)/
Maksymalna zmiana domyln warto 0,001 na mniejsz, na przykad 1E8.
Wyniki oblicze pokazano na rysunku 17.6. W tabeli wynikw zamieszczono co 10. punkt
obliczeniowy. Warto drugiego warunku brzegowego dopasowano za pomoc narz-
dzia Szukaj wyniku.
Rysunek 17.6.
Przykad
rozwizania
zagadnienia
brzegowego
metod strzaw
pi 2 = f ( xi + 12 x, yi + 12 pi1 , zi + 12 qi1 ) * x
qi 2 = g ( xi + 12 x, yi + 12 pi1 , zi + 12 qi1 ) * x
pi 3 = f ( xi + 12 x, yi + 12 pi 2 , z i + 12 qi 2 ) * x
qi 3 = g ( xi + 12 x, yi + 12 pi 2 , z i + 12 qi 2 ) * x
pi 4 = f ( xi + x, yi + pi 3 , zi + qi 3 ) * x
qi 4 = g ( xi + x, yi + pi 3 , zi + qi 3 ) * x
d 2 y 2 y y 2 y0 + y1 y 2 y0 + y1
2 = 1 = 1
dx 2
x 0,25 ( x1 x1 ) 2
x 2
Na rysunku 17.7 pokazano wyniki oblicze wykonanych t technik oraz wykres stenia.
Rysunek 17.7.
Rozwizanie
zagadnienia
brzegowego metod
rnic skoczonych
Rwnania typu parabolicznego opisuj przewodzenie ciepa lub dyfuzj masy w warun-
kach niestacjonarnych w ukadach jednowymiarowych, na przykad rwnanie
T 2T
=a 2
t x
Rwnania eliptyczne
Rwnanie eliptyczne opisuje pole skalarne na przykad potencjau elektrycznego czy tem-
peratury w obszarze dwuwymiarowym. Warunki brzegowe musz by okrelone na gra-
nicy caego zamknitego konturu ograniczajcego obszar rozwizania. Warunki brzegowe
mog okrela warto funkcji niewiadomej (warunki Dirichleta) lub warto jej po-
chodnej na granicy obszaru (warunki Neumanna), ewentualnie ich kombinacj liniow.
Przykadowo gdy rozpatrywany jest rozkad potencjau w reaktorze elektrochemicznym
(elektrolizerze lub ogniwie), na granicy obszaru musi by okrelony potencja albo gsto
prdu proporcjonalna do pochodnej potencjau (zerowa gsto prdu na nieprzewodz-
cych ciankach reaktora, potencja lub gsto prdu na elektrodach). Jeeli zagadnienie
wykazuje symetri osiow, wystarczy je rozwizywa tylko dla czci obszaru o sy-
metrii mona traktowa jak ciank nieprzewodzc.
2 ( x h, y ) 2( x, y ) + ( x + h, y )
x 2 h2
2 2
Std rwnanie + = 0 zastpimy rwnaniem rnicowym:
x 2 y 2
( x, y) 12 w( x h, y) + 12 w( x + h, y) + 12 (1 w)( x, y k ) + 12 (1 w)( x, y + k ) ,
k2
gdzie w = . Gdy h = k, wszystkie wspczynniki s rwne 1/4. Warto poten-
h +k 2 2
Rysunek 18.1.
Schemat elektrolizera,
w ktrym wyznaczono
rozkad potencjau
Po zapisaniu rwna dla wszystkich punktw wzowych, ktre nie le ani na brzegu
obszaru, ani na elektrodach, ani na osi symetrii (tych punktw jest 39), otrzymujemy ukad
39 rwna liniowych, ktry mona rozwiza dowoln dogodn metod. Przy niezbyt
gstej siatce, a zarazem niewielkiej liczbie rwna mona stosowa metod macierzow.
Na rysunku 18.2 przedstawiono macierz wspczynnikw, kolumn staych oraz wyniki
oblicze metod macierzow. Sposb wykonania oblicze opisano w rozdziale 11. Ukady
rwna liniowych. Numeracja punktw jak na rysunku 18.3. Niezerowe wartoci w ma-
cierzy wspczynnikw i w wektorze staych zostay oznaczone kolorem jasnoszarym.
Excel wymaga, aby wszystkie wartoci zerowe byy wpisane do macierzy, w przeciw-
nym razie sygnalizuje bd #ARG!.
Przy duej liczbie rwna mona stosowa metod iteracyjn obliczenia rozpoczyna si
od dowolnych wartoci startowych (np. zer) i przelicza si potencjay w kolejnych punk-
tach wielokrotnie a do osignicia stabilnych wynikw. W Excelu mona wykorzysta
odwoania cykliczne. Zbieno iteracji mona przyspieszy dziki zastosowaniu tzw. me-
tody nadrelaksacji polegajcej na wprowadzeniu do wzorw parametru nadrelaksacji
, ktry musi si mieci w przedziale [1, 2). Wzory po modyfikacji przyjmuj posta:
a ( x, y) 12 w( x h, y) + 12 w( x + h, y) + 12 (1 w)( x, y k ) + 12 (1 w)( x, y + k )
( x, y ) = (1 ) s ( x, y ) + a ( x, y )
a(x, y) jest obliczane jak poprzednio (x, y). s(x, y) jest wartoci potencjau w tym
punkcie obliczon dotychczas. Jeeli = 1, otrzymujemy wyniki takie jak we wzorach bez
nadrelaksacji, jeeli > 1, wartoci potencjaw zmieniaj si szybciej w kolejnych przebie-
gach procedury iteracyjnej. Konkretne wartoci parametru dobiera si eksperymentalnie.
Rysunek 18.3.
Potencjay w punktach
wzowych siatki
obliczone metod
iteracyjn
z nadrelaksacj
Zbyt dua warto powoduje oscylacje wartoci potencjau. Oglnie im wicej punktw
w siatce, tym warto powinna by wiksza, ale nie moe doj do 2, gdy wtedy proces
obliczeniowy traci zbieno. Na rysunku 18.3 przedstawiono wyniki oblicze wykona-
nych powysz metod przy uyciu siatki o kroku 1 cm (jak poprzednio). Przyjto pa-
rametr nadrelaksacji = 1,5. Wyniki stabilne z dokadnoci do piciu miejsc po prze-
cinku uzyskuje si po mniej wicej 100 iteracjach.
Aby poprawi dokadno aproksymacji, naley zmniejszy krok siatki, najlepiej dwu-
krotnie. Porwnanie wynikw uzyskanych na siatkach o rnej gstoci pozwala jeszcze
dodatkowo poprawi dokadno metod ekstrapolacji, podobnie jak w przypadku ca-
kowania numerycznego.
Majc do dyspozycji dwa wyniki oblicze: 1(x, y) na siatce wyjciowej i 2(x, y) na siatce
dwukrotnie zagszczonej (w obu kierunkach), uzyskany wynik oszacowa mona ze wzoru:
(x, y) = 22(x, y)1(x, y)
Przeprowadzono takie obliczenia przy kroku 0,5 i 0,25 cm. Wyniki zajmuj do duo
miejsca w arkuszu i z tego powodu nie nadaj si do reprodukcji w tekcie. Na rysunku
18.4 przedstawiono ekstrapolacj wynikw oblicze do kroku zerowego w trzech wy-
branych punktach. Wida, e ekstrapolacja wielomianem drugiego stopnia jest wystar-
czajco dokadna.
Rysunek 18.4.
Ekstrapolacja
rozwizania rwnania
Laplacea do kroku
zerowego
Rysunek 18.5.
Potencjay w punktach
wzowych siatki
obliczone metod
iteracyjn
z nadrelaksacj
po ekstrapolacji
do kroku zerowego
( ( x, y ) + 12 w ( x h, y ) + 12 w ( x + h, y ) + 12 (1 w) ( x, y k ) + 12 (1 w) ( x, y + k )) 2 *10000
Rysunek 18.6.
Rozwizanie rwnania
Laplacea na siatce
podstawowej uzyskane
za pomoc Solvera
Rysunek 18.7.
Siatka pomocnicza do
rozwizania rwnania
Laplacea za pomoc
Solvera; w punktach
wzowych kwadraty
odchyle potencjaw
od rednich z punktw
ssiednich
Rwnania paraboliczne
Typowe rwnania typu parabolicznego opisuj procesy transportu masy lub ciepa. Jako
przykad rozpatrzmy nastpujcy problem. Wilgotna paska pyta ceramiczna o gruboci
2L = 4,0 cm jest poddawana suszeniu z obu stron. Pocztkowo wilgo jest rozoona
rwnomiernie z gstoci a = 0,50 g/cm3. Transport wody wewntrz pyty odbywa si na
drodze dyfuzji; wspczynnik dyfuzji wynosi D = 0,25 cm2/h. Suszenie odbywa si z rw-
nomiern szybkoci 0,1 g/(hcm2) z kadej strony pyty, a zawarto wilgoci na po-
wierzchni pyty wyniesie 0,22 g/cm3. Naley okreli czas trwania procesu suszenia, ilo
odparowanej wody oraz rozkad zawartoci wilgoci wewntrz pyty pod koniec procesu
suszenia. (Przykad pochodzi z ksiki [1]).
c( , ) 1 2
c0
=1+ +
12 2 2
(1) n
( n ) 2
( )
exp (n ) 2 cos(n )
n =1
x Dt 2 LF
gdzie: = , = 2, =
L L Dc0
c( , ,0) 1 2
= 1+
c0 12 2 2
nastpne iteracje. Kocow warto czasu ustaliem metod prb i bdw i otrzymaem
wynik tk = 5541,7 s. Odpowiada to odparowaniu tkF = 5541,7/36000,1 = 0,154 g/cm2
z kadej strony pyty, czyli 0,308 g/cm2 cznie.
Rysunek 18.8. Rozkad stenia bezwymiarowego wody w pycie poddawanej suszeniu. Rozwizanie
analityczne w postaci szeregu
c ( x, t + k ) c ( x , t ) c( x h, t ) 2c( x, t ) + c( x + h, t )
=D
k h2
Krok czasowy oznaczono liter k, a krok wzdu osi x liter h. Pochodn czasow
aproksymowano ilorazem rnicowym w przd, a pochodn wzgldem x ilorazem
centralnym. Po przeksztaceniu otrzymujemy wzr, z ktrego mona wyznaczy stenie
w nastpnej chwili na podstawie wartoci aktualnych.
Dk
c( x, t + k ) = c( x, t ) + a[c( x h, t ) 2c( x, t ) + c( x + h, t )], gdzie a=
h2
Staa a jest nazywana liczb dyfuzji. Schemat jest stabilny numerycznie, gdy a mieci si
w przedziale (0; 0,5).
c( x, t + k ) = c( x, t ) + 12 a[c( x h, t ) 2c( x, t ) + c( x + h, t )
Dk
+ c( x h, t + k ) 2c( x, t + k ) + c( x + h, t + k )], gdzie a=
h2
Ten schemat jest bezwarunkowo stabilny numerycznie. Istniej rwnie inne schematy
stabilne numerycznie, ale te wymienione stosuje si najczciej.
c ( L h, t ) c ( L + h, t ) F 2 h
= + przy x = L
c0 c0 Dc0
Fh 0,1[g/(h cm 2 )] 0,2[cm]
Wprowadzimy oznaczenie f = = = 0,16
Dc0 0,25[cm 2 /h] 0,5[g/cm 3 ]
przy przyjtym kroku dugoci h = 0,2 cm.
c( L, t + k ) = 2a c( L h, t ) + (1 2a)c( L, t ) 2afc 0
Kocow warto czasu ustalono metod interpolacji liniowej, otrzymano wynik tk = 5563,6 s.
Odpowiada to odparowaniu tkF = 5563,6/36000,1 = 0,1545 g/cm2 z kadej strony pyty,
czyli 0,309 g/cm2 cznie.
Dla kadego kroku czasowego otrzymuje si ukad L/h+1 rwna liniowych, z ktrych
mona wyznaczy wartoci ste C(t+k) (w chwili t+k) na podstawie ste C(t)
(w chwili t) i warunku brzegowego. Ukad ten mona rozwiza metod macierzow, ktra
jest w tym przypadku bardzo dogodna, gdy te same macierze wspczynnikw pozwalaj
na obliczenia w kolejnych krokach czasowych. Macierz wspczynnikw A jest macierz
trjdiagonaln o postaci:
1 + a
a 1 0 L 0 0 0
1+ a
1 2 1 L 0 0 0
a
1+ a
0 1 2 L 0 0 0
a
A= M M M L M M M
1+ a
0 0 0 L 2 1 0
a
0 1+ a
0 0 L 1 2 1
a
1+ a
0 0 0 L 0 1
a
Z kolei wyrazy wolne w tym ukadzie rwna s kombinacjami liniowymi wartoci ste
w chwili t ze wspczynnikami okrelonymi przez macierz B:
1 a
a 1 0 L 0 0 0 0
1 a
1 2 1 L 0 0 0 0
a
0 1 a
1 2 L 0 0 0 0
a
B= M M M L M M M M
1 a
0 0 0 L 2 1 0 0
a
0 1 a
0 0 L 1 2 1 0
a
1 a
0 0 0 L 0 1 2f
a
Macierz B jest podobna do macierzy A, ale zawiera dodatkow kolumn, ktra skada
si z samych zer, z wyjtkiem ostatniego wiersza, w ktrym wystpuje warto 2f wy-
nikajca z warunku brzegowego.
Aby obliczy kolumn wyrazw wolnych, naley pomnoy (macierzowo) tablic B przez
kolumn wartoci ste w chwili t. Kolumn t oznaczyem jako CT(t) (indeks T oznacza
transpozycj oryginalnie stenia byy zapisane w wierszu). Do tej kolumny na ostat-
nim miejscu dodano 1, ktre bdzie mnoone przez 2f i pozwoli uwzgldni warunek
brzegowy.
Obliczenia przeprowadzono przy kroku dugoci h = 0,2 cm i kroku czasu k = 300 s. Ko-
cow warto czasu suszenia ustalono metod interpolacji liniowej i otrzymano wynik
tk = 5614,0 s. Odpowiada to odparowaniu tkF = 5614,0/36000,1 = 0,156 g/cm2 z kadej
strony pyty, czyli 0,312 g/cm2 cznie.
Rysunek 18.10. Tablice wspczynnikw TA i TB, umoliwiajce rozwizanie rwnania typu parabolicznego
za pomoc numerycznego schematu niejawnego Cranka-Nicolsona
Rysunek 18.11. Rozkad ste stanowicy rozwizanie rwnania typu parabolicznego za pomoc
numerycznego schematu niejawnego Cranka-Nicolsona
Excel, poprzez zestaw 12 funkcji wchodzcych w skad dodatku Analysis Toolpak, umo-
liwia obustronn konwersj liczb cakowitych pomidzy trzema wymienionymi syste-
mami niedziesitnymi oraz systemem dziesitnym. Dodatek ten mia pocztkowo tylko
wersj anglojzyczn, do wersji 2003 musia by instalowany przez uytkownika, od wersji
2007 jest zintegrowany z arkuszem, a w wersji 2010 przeprowadzono jego lokalizacj,
tumaczc nazwy funkcji na jzyk polski. W wersji angielskiej nazwy wszystkich tych
funkcji s skonstruowane analogicznie skadaj si z dwu trzyliterowych czonw:
BIN, OCT, HEX oraz DEC, poczonych cyfr 2 (angielska maniera zastpowania przyimkw
cyframi o podobnie brzmicych nazwach to two). Mamy wic na przykad funkcj
OCT2DEC, ktra zamienia liczb semkow na dziesitn, i DEC2BIN, ktra dokonuje za-
miany liczby dziesitnej na binarn. W wersji spolszczonej (Excel 2010) nazwy s trzy-
czonowe, z czonami rozdzielonymi kropkami, skrajne czony to odpowiednio DWJK, SM,
SZESN i DZIES, czon rodkowy to NA. Bd wic funkcje SM.NA.DZIES, DZIES.NA.DWJK
i inne o analogicznych nazwach. W polskiej wersji Excela 2010 nie mona ju wprowadza
nazw angielskich, ale pliki arkusza utworzone we wczeniejszych wersjach po wczytaniu
przez wersj 2010 s automatycznie konwertowane. Natomiast pliki zapisane w wersji 2010
daj si odczyta we wczeniejszych wersjach (pod warunkiem wyboru waciwego for-
matu zapisywanego pliku), ale nie s konwertowane do wersji angielskiej. Wskutek tego
w kadej komrce poddawanej edycji trzeba rcznie zmieni polskie nazwy funkcji na
angielskie.
Nazwy jednostek s tekstami zapisanymi dokadnie w takiej postaci jak w tablicy. W tym
przypadku mae i due litery s rozrniane. Przeliczanie jednostek ma sens tylko w ob-
rbie jednej grupy.
Tabela 19.1. Wykaz jednostek podlegajcych konwersji za pomoc funkcji CONVERT (KONWERTUJ)
Masa Czas
Nazwa jednostki Skrt Nazwa jednostki Skrt
gram "g" rok "yr"
funt masy (handlowy) "lbm" dzie "day"
uncja masy (handlowa) "ozm" godzina "hr"
dalton, j.m.a. "u" minuta "mn"
*)
slug "sg" sekunda "sec"
Odlego Sia
Nazwa jednostki Skrt Nazwa jednostki Skrt
metr "m" niuton "N"
cal "in" dyna "dyn" lub "dy"
stopa "ft" funt siy "lbf"
jard "yd" Cinienie
angstrem "ang" Nazwa jednostki Skrt
1
cycero, pica ( /72) "Pica" paskal "Pa" lub "p"
mila ldowa "mi" atmosfera "atm" lub "at"
mila morska "Nmi" mm supa rtci "mmHg"
Energia Pojemno
Nazwa jednostki Skrt Nazwa jednostki Skrt
dul "J" yeczka "tsp"
erg "e" yka stoowa "tbs"
elektronowolt "eV" lub "ev" litr "l" lub "lt"
watogodzina "Wh" lub "wh" uncja objtoci "oz"
koniogodzina "HPh" lub "hh" kubek "cup"
kaloria (midzynarodowa) "cal" pinta (pkwarta) amerykaska "us_pt" lub "pt"
kaloria termodynamiczna "c" pinta (pkwarta) brytyjska "uk_pt"
stopofunt "flb" kwarta "qt"
brytyjska jednostka ciepa "BTU" lub "btu" galon "gal"
Temperatura Moc
Nazwa jednostki Skrt Nazwa jednostki Skrt
stopie Celsjusza "C" lub "cel" wat "W" lub "w"
stopie Fahrenheita "F" lub "fah" angielski ko parowy "HP" lub "h"
stopie Kelvina "K" lub "kel"
Pole magnetyczne
Nazwa jednostki Skrt
tesla "T"
gaus "ga"
*)
Mao znana w Polsce jednostka masy, definiowana jako 1 lbf*s2/ft 14,594 kg
Jeli jednostka nie istnieje, nie czy si ze skrtem przedrostka jednostki miary, albo je-
li jednostki znajduj si w rnych grupach, funkcja CONVERT (KONWERTUJ) podaje warto
bdu #N/D!.
W krajach anglosaskich czsto stosuje si jednostk cinienia o nazwie psi. Nie ma jej na
licie jednostek funkcji CONVERT. Odpowiada ona funtowi siy na cal kwadratowy. Chcemy
przeliczy 50 psi na atmosfery. Naley przeliczy funty siy na niutony, cale na metry,
a nastpnie podnie je do kwadratu. Wynik otrzymamy w paskalach. W kocu paskale
przeliczamy na atmosfery.
= CONVERT(50;"lbf";"N")/CONVERT(1;"in";"m")^2 daje wynik 344738.
= CONVERT(344738;"Pa";"atm") daje wynik 3,402.
Do wersji Excela 2007 funkcje z grupy tzw. funkcji inynierskich, ktra obejmuje wszyst-
kie funkcje operujce na argumentach zespolonych, miay nazwy angielskojzyczne.
W Excelu 2010 przetumaczono nazwy tych funkcji na jzyki narodowe i w zwizku
z tym w polskiej wersji Excela naley si posugiwa polskimi nazwami. Pliki arkusza
utworzone we wczeniejszych wersjach Excela po wczytaniu przez wersj 2010 s auto-
matycznie konwertowane. Natomiast pliki zapisane w wersji 2010 daj si odczyta we
wczeniejszych wersjach (pod warunkiem wyboru waciwego formatu zapisywanego
pliku), ale nie s konwertowane do wersji angielskiej. Wskutek tego w kadej komrce
poddawanej edycji trzeba rcznie zmieni polskie nazwy funkcji na angielskie.
Liczb zespolon moemy wic utworzy z pary liczb rzeczywistych. W Excelu do utwo-
rzenia liczby zespolonej wykorzystuje si funkcj:
COMPLEX(cz_rzeczywista; cz_urojona; jednostka_urojona)
Jeli liczba zespolona z = a+bi, to liczb zespolon z* = abi rnic si tylko znakiem
czci urojonej nazywamy liczb sprzon do liczby z. Liczby sprzone maj t wa-
sno, e ich iloczyn jest liczb rzeczywist. Istotnie zz* = (a+bi)(abi) = a2b2i2 = a2+b2.
Ponadto jeli liczba zespolona z jest pierwiastkiem wielomianu o wspczynnikach rze-
czywistych, to liczba do niej sprzona te jest pierwiastkiem tego wielomianu.
Interpretacja geometryczna
liczby zespolonej
i jej posta trygonometryczna
Liczb zespolon z mona zinterpretowa geometrycznie jako punkt w ukadzie wsp-
rzdnych, w ktrym cz rzeczywist liczby z odoono na osi x, a cz urojon na osi y.
Alternatywnie liczba zespolona moe by przedstawiona jako wektor czcy rodek
ukadu wsprzdnych z punktem o wsprzdnych (a, b). Pooenie punktu na paszczy-
nie moemy okreli, podajc wsprzdne kartezjaskie (a, b) lub wsprzdne biegunowe
(r, ), ktre oznaczaj odpowiednio odlego od pocztku ukadu wsprzdnych oraz kt
pomidzy osi x (rzeczywist) a wektorem czcym rodek ukadu wsprzdnych z tym
punktem. Dlatego te liczba zespolona moe by okrelona wsprzdnymi biegunowymi.
Wsprzdne te s powizane zalenociami:
r = a 2 + b2 a = r cos
b
= arc tg b = r sin
a
Majc dany modu i argument liczby zespolonej, mona z niej utworzy klasyczn
(algebraiczn) posta za pomoc funkcji:
COMPLEX(modu*SIN(argument); modu*COS(argument); jednostka_urojona)
Liczby zespolone sprzone maj taki sam modu, a ich argumenty gwne rni si zna-
kiem. W interpretacji geometrycznej punkty lub wektory reprezentujce liczby sprzone
s pooone symetrycznie wzgldem osi odcitych (osi rzeczywistej).
Dziaania arytmetyczne
na liczbach zespolonych
Dziaania arytmetyczne na liczbach zespolonych wykonuje si tak jak na dwumianach
typu a+bx, pamitajc o tym, e i2 = 1. Przykadowo:
z1+z2 = (a1+b1i)+(a2+b2i) = (a1+a2)+(b1+b2) i
z1 a +bi (a + b i )(a 2 b2 i ) a1 a 2 + b1b2 a 2 b1 a1b2
= 1 1 = 1 1 = + i
z 2 a 2 + b2 i (a 2 + b2 i )(a 2 b2 i ) a 22 + b22 a 22 + b22
Potgowanie i pierwiastkowanie
Podobnie jak mnoenie i dzielenie, operacje potgowania i pierwiastkowania najwy-
godniej wykonywa na liczbach zespolonych w postaci wykadniczej:
zn = (rei)n = rnein = rn(cos n+isin n)
W polskiej wersji Excela 2010 funkcja ta nosi nazw POTGA.LICZBY.ZESP. Podnosi ona
liczb_zespolon do potgi liczba, ktra moe by dowoln liczb rzeczywist (wymier-
n), take uamkow. Jednak w wyniku otrzymuje si zawsze tylko jedn warto, odpo-
wiadajc k = 0.
Funkcje elementarne
z argumentem zespolonym
Dziedzin funkcji elementarnych, takich jak funkcja wykadnicza, logarytmiczna,
funkcje trygonometryczne i im pokrewne, mona rozszerzy na liczby zespolone.
Powyszy wzr okrela jednoznacznie warto funkcji wykadniczej dla argumentu zespo-
lonego. W arkuszu obliczenia te wykonuje funkcja IMEXP(liczba_zespolona) w wersji
2010 wystpujca pod nazw: EXP.LICZBY.ZESP. Cz urojona wykadnika jest traktowana
jak kt wyraony w mierze ukowej (w radianach), ktry staje si argumentem funkcji
trygonometrycznych. Mamy zatem |ez| = ea i = b.
W zakresie liczb zespolonych mona logarytmowa dowolne liczby rzeczywiste lub ze-
spolone z wyjtkiem zera, w tym liczby rzeczywiste ujemne. Na przykad warto gwna
ln(1) = i. Oprcz logarytmu naturalnego w Excelu dostpne s funkcje obliczajce loga-
rytmy przy podstawie 2 i 10. S to odpowiednio funkcje: IMLOG2(liczba_zespolona)
i IMLOG10(liczba_zespolona). W wersji 2010 nadano im nazwy: LOG2.LICZBY.ZESP
i LOG10.LICZBY.ZESP.
Mona sobie z tym problemem poradzi moe w niezbyt elegancki, ale skuteczny sposb:
generujc dwie wersje wyniku jedna, dokadna, bdzie suy do dalszych oblicze,
druga po zaokrgleniu bdzie suy tylko do prezentacji (wywietlania, wydruku). Funkcja
suca do zaokrglenia wyniku moe mie posta:
Komrki z dokadnymi wynikami oblicze naley ukry. Mona to zrobi albo ukrywajc
ca kolumn zawierajc te wyniki (menu Format/Kolumna/Ukryj, a od wersji 2007
Narzdzia gwne/Komrki/Format/Widoczno/Ukryj i odkryj/Ukryj kolumny), albo
formatujc te komrki z wykorzystaniem formatu ukrywajcego zawarto. W tym celu
naley zaznaczy komrki, ktrych zawartoci nie chcemy wywietla w arkuszu, otwo-
rzy menu Format/Komrki/Liczby (od wersji 2007 Narzdzia gwne/Komrki/Format/
Formatuj komrki), z listy Kategorii wybra Niestandardowe i w okienku Typ wpro-
wadzi ;;; (trzy redniki). Takie oznaczenie formatu komrki powoduje ukrycie jej za-
wartoci. Po naciniciu OK zawarto zaznaczonych komrek bdzie widoczna tylko
w polu edycji (na pasku formuy).
Opisany sposb zastosowano przy obliczaniu pierwiastkw szstego stopnia z liczby 23i.
Wygld arkusza pokazano na rysunkach 20.1 i 20.2. Dokadne wyniki oblicze znajduj
si w kolumnie C, ale s wywietlane w kolumnie B po zaokrgleniu.
Rysunek 20.1.
Obliczenia pierwiastkw
szstego stopnia z liczby
zespolonej. Wyniki
s wywietlane
po zaokrgleniu.
Wygld ekranu
z Excela w wersji 2000
Rysunek 20.2.
Obliczenia pierwiastkw
szstego stopnia
z liczby zespolonej
wykonane w Excelu
w wersji 2010. Wyniki
s wywietlane po
zaokrgleniu
I(t) = I0sin(t+)
gdzie I oznacza natenie prdu, t czas, I0 amplitud, czyli warto maksymaln na-
tenia prdu, tzw. czsto koow, powizan z czstotliwoci prdu, faz
pocztkow, ktra determinuje chwilow warto prdu na pocztku pomiaru, gdy t = 0.
Napicie U(t) bdzie opisane podobnym wzorem, z tym e faza pocztkowa moe mie
inn warto, prd i napicie mog si rni w fazie. Obliczenia dotyczce obwodw
elektrycznych wymagaj sumowania, mnoenia, rniczkowania i cakowania funkcji
opisujcych przebiegi elektryczne. Wikszo z tych operacji atwiej wykona na funkcjach
wykadniczych ni na trygonometrycznych. Korzystajc z piknego wzoru Eulera i z faktu,
e rwno liczb zespolonych wymaga, aby czci rzeczywiste i zespolone byy rwne nie-
zalenie, mona przyrwna interesujcy nas przebieg elektryczny do czci rzeczywistej
albo czci urojonej liczby zespolonej (t drug cz trzeba stosownie uzupeni, ale uzy-
skane tam wyniki mog by dla nas bez znaczenia). Utworzon liczb zespolon mona za-
pisa w notacji wykadniczej i uzyska zespolon reprezentacj przebiegu elektrycznego.
Wzr Eulera (zapisany z liter j jako symbolem jednostki urojonej taki zapis dominuje
w elektrotechnice)
ej = cos +jsin
mnoymy obustronnie przez I0 i za podstawiamy t+. Otrzymujemy:
I = I0ej(t+) = I0cos(t+)+j I0sin(t+)
Rysunek 20.3.
Schemat obwodu
elektrycznego,
dla ktrego naley
wyznaczy obwd
zastpczy
Naley znale moliwie prosty obwd zastpczy dla powyszego obwodu. Parame-
try elementw obwodu s takie jak poniej:
R1 = 10 , R2 = 5 , C1 = 100 F, C2 = 50 F, L1 = 20 mH, L2 = 70 mH,
= 100 s1.
|XC1| = 1/(C1) = 1001 |XC2| = 1/(C2) = 2001
|XL1| = L1 = 2 |XL2| = L2 = 7 .
Rysunek 20.4.
Przykadowe
obliczenia parametrw
obwodu elektrycznego.
Obliczenia wykonano
w Excelu w wersji 2007;
w tej i wczeniejszych
wersjach obowizuj
angielskie nazwy
funkcji do oblicze na
liczbach zespolonych
Rysunek 20.5. Przykadowe obliczenia parametrw obwodu elektrycznego. Obraz ekranu pochodzi
z Excela w wersji 2010; nazwy funkcji zostay przetumaczone na jzyk polski
Tabela bazy danych jest prostoktn tablic, w ktrej wierszach, zwanych rekorda-
mi, umieszczono informacje o poszczeglnych obiektach zawartych w bazie. Infor-
macje te s uporzdkowane tak, e kada kolumna, zwana polem, zawiera dane o tej
samej waciwoci obiektw. Pierwszy wiersz tabeli jest zwykle wierszem nagwko-
wym zawierajcym etykiety (nazwy, nagwki) pl. Wiersz nagwkowy to pojedyn-
czy wiersz umieszczony bezporednio nad waciwymi danymi. (Jeli w nagwkach
pl naley poda wicej informacji, mona je umieci nad tabel, powyej waciwe-
go wiersza nagwkowego. Zawarte tam informacje s przeznaczone tylko dla uyt-
kownika bazy danych, natomiast wszystkie informacje przekazywane do Excela bd
zawiera tylko jeden wiersz nagwkowy). Dane zawarte w komrkach bazy danych
mog by wartociami liczbowymi, tekstowymi lub logicznymi. Niektre komrki
mog pozostawa puste. Ze wzgldu na charakter pl zawarte w nich dane s z reguy
tego samego typu, jednak formalnie nie musi tak by.
Zadeklarowanie (sformatowanie) zakresu danych jako listy (w wersji 2003) lub tabeli
(od wersji 2007) powoduje wczenie dodatkowej funkcjonalnoci. Sposb deklaracji
tabeli oraz konsekwencje takiej deklaracji opisano dokadnie w rozdziale 3. Operacje
i funkcje tablicowe, w podrozdziale Odwoania strukturalne w tabelach.
Sortowanie i filtrowanie
Rekordy umieszczone s w bazie danych w okrelonym porzdku (kolejnoci). Bezpo-
rednio po wprowadzeniu dane s umieszczane w kolejnoci, jaka zostaa im nadana przy
wprowadzaniu. Na yczenie kolejno t mona zmieni, wykonujc operacj sortowania
bazy danych. Sortowanie wykonuje si wedug zawartoci wybranego pola, przy czym
mona wybra porzdek rosncy lub malejcy. Jeeli wybrane pole zawiera dane rnych
typw, porzdek rosncy ustala si w takiej kolejnoci: wartoci liczbowe < tekstowe
< logiczne < bdne < puste. Jeeli komrki zawieraj formuy, przy sortowaniu bierze
si pod uwag wartoci obliczone przed sortowaniem. Formuy powinny si odwoywa
do danych z tego samego rekordu lub staych spoza tabeli danych. W przeciwnym razie
wyniki po sortowaniu strac sens. Jeli wartoci w polu wybranym jako podstawa sorto-
wania powtarzaj si, mona wybra inne pola jako podstawy sortowania poziomu II, III
i ewentualnie dalszych poziomw.
Bazy danych tworzy si po to, aby mc wyszukiwa w nich informacje wedug okrelo-
nych kryteriw. Czasem poszukiwane s pojedyncze rekordy, a czasem zestawy rekor-
dw. Wszystko zaley od sformuowania kryterium wyszukiwania i od tego, czy dane za-
warte w polach mog si powtarza. Jeeli baza zostaa wczeniej posortowana wedug
tego kryterium, atwo odszuka potrzebne rekordy. Czsto jednak trzeba w tej samej bazie
prowadzi przeszukiwanie wedug rnych kryteriw. Sortowanie bazy przed kadym
wyszukiwaniem w przypadku duej liczby rekordw byoby nieefektywne (sortowanie
zajmuje troch czasu), dlatego tworzy si do bazy tzw. indeksy, ktre s tworzone jedno-
razowo dla kadego pola, s pamitane wraz z baz i w pewnym sensie zastpuj sorto-
wanie. W Excelu na okrelenie indeksu stosuje si nazw Filtr. Rozrniono przy tym
Autofiltr, oparty na prostym kryterium odwoujcym si do jednego pola, i Filtr zaawan-
sowany, umoliwiajcy wykorzystanie kryteriw zoonych.
Tabela 21.1. Zestawienie waciwoci pierwiastkw chemicznych jako przykad bazy danych
TABLICA PIERWIASTKW CHEMICZNYCH
L.at. Nazwa Symbol Masa at. T. top. Elektrouj. Metal Gsto
1 Wodr H 1,00794 259,32 2,1 FASZ 0,071
2 Hel He 4,002602 272,2 FASZ 0,126
3 Lit Li 6,941 180,5 1 PRAWDA 0,532
4 Beryl Be 9,012182 1287 1,5 PRAWDA 1,85
5 Bor B 10,811 2100 2 FASZ 2,35
6 Wgiel C 12,011 3850 2,5 FASZ 2,27
7 Azot N 14,00674 210 3 FASZ 0,808
8 Tlen O 15,9994 218,78 3,5 FASZ 1,141
9 Fluor F 18,9984 218,6 4 FASZ 1,51
10 Neon Ne 20,1797 248,58 FASZ 1,2
11 Sd Na 22,989768 97,9 0,9 PRAWDA 0,97
12 Magnez Mg 24,305 650 1,2 PRAWDA 1,74
13 Glin Al 26,981539 660,32 1,5 PRAWDA 2,7
14 Krzem Si 28,0855 1417 1,8 FASZ 2,328
15 Fosfor P 30,973762 44,15 2,1 FASZ 1,823
16 Siarka S 32,066 119,6 2,5 FASZ 2,07
17 Chlor Cl 35,4527 101 3 FASZ 1,65
18 Argon Ar 39,948 189,33 FASZ 1,4
19 Potas K 39,0983 63,7 0,9 PRAWDA 0,86
20 Wap Ca 40,078 842 1 PRAWDA 1,55
21 Skand Sc 44,95591 1545 1,3 PRAWDA 2,99
22 Tytan Ti 47,88 1669 1,5 PRAWDA 4,5
23 Wanad V 50,9415 1950 1,7 PRAWDA 6,11
24 Chrom Cr 51,9961 1910 1,9 PRAWDA 7,17
25 Mangan Mn 54,93805 1244 1,7 PRAWDA 7,47
26 elazo Fe 55,847 1538 1,9 PRAWDA 7,87
27 Kobalt Co 58,9332 1495 2 PRAWDA 8,9
28 Nikiel Ni 58,6934 1454 2 PRAWDA 8,91
29 Mied Cu 63,546 1084,6 1,9 PRAWDA 8,95
30 Cynk Zn 65,39 419,53 1,6 PRAWDA 7,14
31 Gal Ga 69,723 29,76 1,6 PRAWDA 5,9
32 German Ge 72,61 938 1,8 PRAWDA 5,323
33 Arsen As 74,92159 817 2 FASZ 5,78
34 Selen Se 78,96 219 2,4 FASZ 4,81
35 Brom Br 79,904 7,25 2,8 FASZ 3,13
36 Krypton Kr 83,8 157,2 FASZ 2,16
37 Rubid Rb 84,4678 39,3 0,8 PRAWDA 1,53
Tabela 21.1. Zestawienie waciwoci pierwiastkw chemicznych jako przykad bazy danych cig dalszy
TABLICA PIERWIASTKW CHEMICZNYCH
L.at. Nazwa Symbol Masa at. T. top. Elektrouj. Metal Gsto
38 Stront Sr 87,62 768 1 PRAWDA 2,63
39 Itr Y 89,90585 1530 1,3 PRAWDA 4,45
40 Cyrkon Zr 91,224 1859 1,4 PRAWDA 6,51
41 Niob Nb 92,90638 2470 1,6 PRAWDA 8,58
42 Molibden Mo 95,94 2620 2 PRAWDA 10,25
43 Technet Tc 97,905 2200 1,9 PRAWDA 11,48
44 Ruten Ru 101,07 2282 2,2 PRAWDA 12,41
45 Rod Rh 102,9055 1960 2,2 PRAWDA 12,4
46 Pallad Pd 106,42 1552 2,2 PRAWDA 11,99
47 Srebro Ag 107,8682 961,8 1,9 PRAWDA 10,49
48 Kadm Cd 112,411 320,8 1,7 PRAWDA 8,65
49 Ind In 114,818 156,6 1,7 PRAWDA 7,3
50 Cyna Sn 118,71 231,93 1,8 PRAWDA 7,28
51 Antymon Sb 121,757 630,6 1,9 PRAWDA 6,69
52 Tellur Te 127,6 450 2,1 FASZ 6,25
53 Jod I 126,90447 113,6 2,5 FASZ 4,94
54 Ksenon Xe 131,29 111,8 FASZ 3
55 Cez Cs 132,90543 28,5 0,7 PRAWDA 1,9
56 Bar Ba 137,327 727 0,9 PRAWDA 3,62
57 Lantan La 138,9055 920 1,1 PRAWDA 6,17
58 Cer Ce 140,115 804 1,1 PRAWDA 6,77
59 Prazeodym Pr 140,90765 935 1,1 PRAWDA 6,48
60 Neodym Nd 144,24 1020 1,2 PRAWDA 7
61 Promet Pm 144,913 1042 1,2 PRAWDA 7,26
62 Samar Sm 150,36 1072 1,2 PRAWDA 7,54
63 Europ Eu 151,965 826 1 PRAWDA 5,25
64 Gadolin Gd 157,25 1312 1,1 PRAWDA 7,89
65 Terb Tb 158,92534 1356 1,2 PRAWDA 8,25
66 Dysproz Dy 162,5 1408 1,2 PRAWDA 8,56
67 Holm Ho 164,93032 1465 1,2 PRAWDA 8,79
68 Erb Er 167,26 1510 1,2 PRAWDA 9,05
69 Tul Tm 168,93421 1545 1,2 PRAWDA 9,32
70 Iterb Yb 173,04 824 1,1 PRAWDA 6,97
71 Lutet Lu 174,967 1655 1,2 PRAWDA 9,84
72 Hafn Hf 178,49 2233 1,3 PRAWDA 13,29
73 Tantal Ta 180,9479 3022 1,5 PRAWDA 16,65
Tabela 21.1. Zestawienie waciwoci pierwiastkw chemicznych jako przykad bazy danych cig dalszy
TABLICA PIERWIASTKW CHEMICZNYCH
L.at. Nazwa Symbol Masa at. T. top. Elektrouj. Metal Gsto
74 Wolfram W 183,84 3420 2 PRAWDA 19,27
75 Ren Re 186,207 3180 1,9 PRAWDA 21
76 Osm Os 190,23 3045 2,2 PRAWDA 22,57
77 Iryd Ir 192,22 2443 2,2 PRAWDA 22,61
78 Platyna Pt 195,08 1770 2,2 PRAWDA 21,41
79 Zoto Au 196,96654 1064,2 2,4 PRAWDA 19,28
80 Rt Hg 200,59 38,83 1,9 PRAWDA 13,534
81 Tal Tl 204,3833 303 1,8 PRAWDA 11,86
82 Ow Pb 207,2 327,5 1,8 PRAWDA 11,34
83 Bizmut Bi 208,98037 271,4 1,9 PRAWDA 9,81
84 Polon Po 208,982 250 2 PRAWDA 9,14
85 Astat At 209,987 470 2,2 FASZ
86 Radon Rn 222,018 71 FASZ 4,4
87 Frans Fr 223,02 0,7 PRAWDA
88 Rad Ra 226,025 700 0,9 PRAWDA 5,5
89 Aktyn Ac 227,028 817 1,1 PRAWDA 10,1
90 Tor Th 232,0381 1750 1,3 PRAWDA 11,78
91 Protaktyn Pa 231,03588 1552 1,5 PRAWDA 15,4
92 Uran U 238,0289 1135 1,7 PRAWDA 19,05
Jeeli chcemy szybko wyszuka rekord, dla ktrego znamy warto jednego z pl, a baza
nie jest uporzdkowana wedug tego pola, musimy posuy si Autofiltrem (od wersji
2007 po prostu Filtrem). Zamy, e szukamy pierwiastka, ktrego temperatura topnienia
ley najbliej 300C. Zaznaczamy ca tabel (albo jej fragment obejmujcy kolumn
T.top.). Z menu Dane wybieramy Filtr, a nastpnie Autofiltr (od wersji 2007 tylko Filtr).
Jeeli wczeniej zostaa wczona funkcjonalno tabeli, Filtr jest wczony automatycznie.
W nagwkach zaznaczonych kolumn pojawi si po prawej stronie przyciski oznaczone
znakiem trjkta (strzaki). Kliknicie myszk w ten znak spowoduje rozwinicie listy,
na ktrej bd wszystkie wartoci z wybranej kolumny uporzdkowane rosnco (lub ma-
lejco, jeli zaznaczymy odpowiedni opcj). List t mona szybko przejrze i zaznaczy
wybran warto. Spowoduje to wywietlenie caego wybranego rekordu w miejsce tabeli
(pozostae wiersze tabeli s ukryte). Po zakoczeniu pracy z wybranym rekordem klikamy
ponownie znak trjkta i wybieramy Poka wszystko. Przywraca to widoczno caej tabeli.
Po wybraniu opcji Inne mona okreli kryterium wyboru wartoci w kolumnie i wy-
selekcjonowa wszystkie rekordy, ktre speniaj wybrane kryterium. Od wersji 2007
rozwizanie filtra jest nieco inne. Po klikniciu trjkta pojawia si okno z opcjami kolej-
noci sortowania na licie rozwijanej, a poniej pole Filtry liczb (lub Filtry tekstu, za-
lenie od zawartoci kolumny danych). W tym polu wstpnie zaznaczone do wywietlenia
s wszystkie rekordy. Mona odznaczy w polu Filtry liczb Zaznacz wszystko i rcznie
zaznaczy wybrany rekord (lub rekordy). Mona te najecha kursorem myszki na pole
Filtry liczb i z listy, ktra rozwinie si po prawej stronie, wybra kryterium filtrowania
danych. Jest ich 11 (przy liczbach) lub 7 (w przypadku tekstu), ale znaczenie jest do
oczywiste i nie wymaga szczegowego komentarza. Po zatwierdzeniu widoczne pozo-
stan tylko wybrane rekordy. Aby przywrci widoczno wszystkich rekordw, naley
ponownie zaznaczy w polu Filtry liczb Zaznacz wszystko.
Jeeli chcemy wybra jeden lub kilka rekordw na podstawie wicej ni jednego pola, mo-
emy rwnie uy Filtra zaawansowanego. Jest to rozwizanie bardziej uniwersalne, gdy
moe uwzgldnia nie tylko koniunkcj, ale rwnie alternatyw warunkw odnoszcych
si do poszczeglnych kolumn, jak te warunki odwoujce si rwnoczenie do danych
z rnych kolumn. Ponadto dziaanie filtra nie musi polega na ukrywaniu wierszy niespe-
niajcych kryteriw, lecz moe zosta utworzona i umieszczona we wskazanym miejscu
arkusza kopia rekordw speniajcych kryteria. W tym celu trzeba skonstruowa zakres
kryteriw i umieci go w wolnym miejscu w arkuszu, najlepiej nad tabel z danymi.
Zakres kryteriw
Konstrukcja zakresu kryteriw obejmuje dowoln liczb kryteriw o postaciach okre-
lonych przez dwa podstawowe warianty ich budowy:
1. kryteria z nagwkami kolumn,
2. kryteria w formie wyrae logicznych.
Operatorem relacji przed sta moe by te znak =, ale poniewa wystpienie tego znaku
na pocztku wpisu oznacza formu, moe to troch komplikowa jego uycie. Jeli
wpiszemy znak = przed sta liczbow lub logiczn, nie bdzie adnych problemw i wpisy
ze znakiem = i bez niego bd rwnowane. Sytuacja si komplikuje, gdy chcemy uy
staej tekstowej. Przede wszystkim staa tekstowa poprzedzona znakiem = jest interpreto-
wana inaczej ni sama staa tekstowa. Sama staa tekstowa jest interpretowana jako po-
cztek sowa, natomiast poprzedzona znakiem rwnoci oznacza cae sowo. (Mae i due
litery nie s rozrniane). W staych tekstowych mog wystpowa symbole wieloznaczne
? i *. Znak zapytania zastpuje jeden dowolny znak, gwiazdka zastpuje dowolny, rw-
nie pusty cig znakw. Jeeli szukamy znaku zapytania lub gwiazdki, we wzorcu po-
przedzamy je znakiem ~ (tylda). W razie szukania tyldy naley jej uy dwukrotnie.
Jeeli wpiszemy tylko sta liczbow lub logiczn bd wyraenie, ktre po obliczeniu
daje warto liczbow lub logiczn, to znaczy, e poszukujemy rekordw, ktre w polu
(kolumnie) o podanym nagwku zawieraj dokadnie tak warto.
Pod jednym nagwkiem kolumny mona umieci w kolejnych komrkach kilka warto-
ci (ewentualnie poprzedzonych operatorami relacji). Oznacza to alternatyw kryteriw
(kryteria poczone spjnikiem LUB), na przykad kryterium w postaci:
Symbol
Fe
Co
Ni
oznacza, e poszukujemy danych o trzech pierwiastkach, ktrych symbole podano.
Aby poczy elementarne kryteria spjnikiem ORAZ, czyli utworzy koniunkcj kryteriw,
naley je zapisa w ssiednich kolumnach. Kada kolumna musi zawiera nagwek i list
wartoci poniej. Nagwki kolumn mog si powtarza. Koniunkcja kryteriw dotyczy
danych umieszczonych w tym samym wierszu.
Przykadowo zapis:
Metal Elektrouj.
FASZ <2,5
PRAWDA >2
oznacza, e poszukujemy niemetali o elektroujemnoci <2,5 lub metali o elektroujemnoci >2.
W formule kryterium nie mona uywa odwoa strukturalnych. Mona natomiast uy-
wa bezwzgldnych odwoa do dowolnych komrek arkusza.
Pozwoli ono znale pierwiastki, ktrych nazwy i symbole rozpoczynaj si od innej litery.
Funkcja KOD zwraca kod ASCII pierwszego znaku tekstu podanego jako argument.
Ta funkcja odrnia due i mae litery.
W przypadku gdy uywane jest kryterium z etykiet kolumny zawierajc dane tekstowe,
nie s rozrniane mae i due litery, mona natomiast stosowa symbole wieloznaczne ? i *.
Gdyby zachodzia konieczno rozrnienia maych i duych liter, naleaoby posuy
si funkcj PORWNAJ, na przykad:
= PORWNAJ(B11;"Bar") porwnanie z jednym wzorcem,
= LUB(PORWNAJ(B11;{"Wap";"Stront";"Bar"})) porwnanie z list wzorcw.
Jeeli w analogiczny sposb uyje si operatora rwnoci zamiast funkcji PORWNAJ, due
i mae litery nie bd rozrniane:
= B11="Bar" porwnanie z jednym wzorcem,
= LUB(B11={"Wap";"Stront";"Bar"}) porwnanie z list wzorcw.
W adnym z wariantw kryteriw w postaci formuy nie mona uywa symboli wielo-
znacznych.
Kryteria z etykietami kolumn mona czy z kryteriami w postaci formu w jednym za-
kresie kryteriw.
Ostatnia decyzja, ktr musimy podj, dotyczy tego, czy wynik filtrowania ma by umiesz-
czony w miejscu oryginalnej tabeli (w takim przypadku rekordy niespeniajce kryteriw
Jeeli na przykad tabela pierwiastkw jest uporzdkowana wedug rosncych liczb ato-
mowych, a chcemy odszuka pierwiastki, przy ktrych zaburzony jest rosncy porzdek
mas atomowych, musimy zastosowa kryteria zapisane jedno pod drugim albo w formie
alternatywy wyraonej funkcj LUB (pooenie tabeli w arkuszu jak poprzednio):
=D11>D12 albo =LUB(D11>D12;D11<D10)
=D11<D10
W obu przypadkach do zakresu kryteriw trzeba doczy pust komrk nad formuami
kryteriw. W wyniku otrzymamy list pierwiastkw speniajcych te kryteria (4 pary):
Do tej komrki mona wpisa symbol pierwiastka lub po klikniciu w pole ze strzak
z prawej strony pola dokona wyboru z listy rozwijanej. Na licie symbole pierwiastkw s
umieszczone w takiej kolejnoci jak w oryginalnej tabeli. W przypadku wyboru z listy nie
ma moliwoci bdu, a w przypadku wpisu bezporedniego ewentualny bd bdzie sy-
gnalizowany odpowiednim komunikatem. Przy weryfikacji nie jest sprawdzana wielko
liter. W celu uproszczenia zapisu formu nadamy komrce nazw sp.
Dalej mamy kilka moliwoci wyboru funkcji, ktre zrealizuj nasze zadanie. Zagadnienie
jest podobne do opisanego w rozdziale 14. Wyszukiwanie danych w tablicach i interpo-
lacja, tam poszukiwalimy jednak danych liczbowych i dane byy uporzdkowane, tu
poszukujemy danych tekstowych, ktre pocztkowo nie s uporzdkowane.
1. Pierwszy wariant wymaga uycia funkcji PODAJ.POZYCJ, a nastpnie INDEKS. Jest to
rozwizanie najbardziej uniwersalne i nie wymaga sortowania tabeli danych.
Najpierw znajdujemy numer wiersza, w ktrym zapisano symbol pierwiastka,
a nastpnie z wiersza o tym numerze i odpowiedniej kolumny odczytujemy gsto
pierwiastka.
Wywoanie funkcji PODAJ.POZYCJ ma posta:
= PODAJ.POZYCJ(sp; kolumna_symboli; 0)
Kolumna_symboli oznacza zakres w tabeli, w ktrym zapisano symbole
pierwiastkw. W naszej przykadowej tabeli jest to kolumna C, zakres C11:C102,
obejmujcy 92 symbole. W Excelu 2007 i 2010 mona zastosowa odwoanie
strukturalne Tabela1[Symbol].
0 jako trzeci argument oznacza, e bdziemy poszukiwa dokadnego
dopasowania danej do wzorca.
Komrce z wynikiem nadamy nazw pp. Do odszukania gstoci pierwiastka
wykorzystamy teraz funkcj INDEKS. Odszukuje ona dane w tabeli na podstawie
indeksw wiersza i kolumny. Uycie tej funkcji jest moliwe w kilku wariantach:
a) = INDEKS(kolumna_gstoci; pp)
Kolumna_gstoci oznacza zakres w tabeli, w ktrym zapisano gstoci
pierwiastkw. W naszej przykadowej tabeli jest to kolumna H, zakres H11:H102.
W Excelu 2007 i 2010 mona zastosowa odwoanie strukturalne Tabela1[Gsto].
Jak zatem wida, moliwoci odszukiwania danych w tabelach jest wiele rozwizanie
pierwsze wydaje si najbardziej zoone, ale po wpisaniu do uniwersalnej formuy po-
zwala na atw modyfikacj obiektu poszukiwa; rozwizania nastpne, od drugiego do
czwartego, s jednorazowe, ale za to prostsze. W razie zmiany obiektu poszukiwa trzeba
rcznie zmienia zakresy i przeprowadza sortowanie tabeli danych. Rozwizanie pite
jest rwnie uniwersalne jak pierwsze i znacznie prostsze w zapisie.
Funkcje podsumowa
Bardzo czsto na danych zgromadzonych w tabeli naley wykona operacje podsumo-
wujce (agregujce), takie jak obliczenie sumy, redniej, odchylenia standardowego,
wartoci najwikszej, najmniejszej itp. Odpowiednie funkcje do tego celu byy zawsze
dostpne w Excelu. Jednake oprcz funkcji sucych do wykonania jednej konkretnej
operacji udostpniono funkcj o troch nieczytelnej nazwie SUMY.POREDNIE, zmienionej
od wersji 2007 na SUMY.CZCIOWE, ktra wykonuje wybran operacj bazow zako-
dowan w jej pierwszym parametrze. Rnice w dziaaniu funkcji SUMY.POREDNIE (lub
SUMY.CZCIOWE) i indywidualnych funkcji bazowych ujawniaj si po ukryciu niektrych
wierszy z zakresu oblicze, co wyjaniono dokadnie w uwagach poniej. Skadnia funkcji
SUMY.POREDNIE (lub SUMY.CZCIOWE) jest nastpujca:
SUMY.POREDNIE(funkcja_nr;adres1;adres2;...)
SUMY.CZCIOWE(funkcja_nr;adres1;adres2;...)
Zmieniajc nazw tej funkcji, twrcy Excela nie ustrzegli si lekkiego baaganu, bo po-
mimo wprowadzenia nowej nazwy w Excelu 2007 w pliku pomocy do tej wersji uywana
jest nadal nazwa SUMY.POREDNIE, obowizujca we wczeniejszych wersjach. Nawet
w wersji 2010 stara nazwa pozostaa jeszcze w spisie funkcji w pliku pomocy. Funkcja
wykonuje operacj okrelon w tabeli 21.2 zgodnie z wartoci parametru funkcja_nr.
Parametr ten moe przyjmowa wartoci od 1 do 11 (uwzgldnia wartoci ukryte) lub
od 101 do 111 (ignoruje wartoci ukryte dostpne od wersji 2003).
Adres1; adres2 to od 1 do 29 (do 254 od wersji 2007) zakresw lub odwoa, dla
ktrych naley obliczy sum poredni (czciow).
Uwagi
Jeli wewntrz odwoa adres1; adres2;... znajduj si inne sumy porednie (lub
zagniedone sumy porednie), te zagniedone sumy s ignorowane, aby unikn ich
podwjnego obliczania.
Jeeli mamy tabel z blokami danych, dla ktrych chcemy obliczy SUMY.POREDNIE (lub
SUMY.CZCIOWE), moemy uy polecenia Sumy porednie z karty Dane (od wersji 2007
polecenia Suma czciowa dostpnego w grupie Konspekt na karcie Dane). Po utworzeniu
listy z sumami czciowymi mona j modyfikowa, edytujc funkcj SUMY.POREDNIE
(lub SUMY.CZCIOWE).
Tabela 21.3. Zestawienie wartoci parametru funkcja_nr i odpowiadajcych im rodzajw funkcji bazowej
Funkcja_nr Rodzaj funkcji bazowej
1 REDNIA
2 ILE.LICZB
3 ILE.NIEPUSTYCH
4 MAX
5 MIN
6 ILOCZYN
7 ODCH.STANDARD.PRBKI
8 ODCH.STAND.POPUL
9 SUMA
10 WARIANCJA.PRBKI
11 WARIANCJA.POP
12 MEDIANA
13 WYST.NAJCZCIEJ.WART
14 MAX.K
15 MIN.K
16 PERCENTYL.PRZEDZ.ZAMK
17 KWARTYL.PRZEDZ.ZAMK
18 PERCENTYL.PRZEDZ.OTW
19 KWARTYL.PRZEDZ.OTW
Tabela 21.4. Zestawienie wartoci parametru opcja i odpowiadajcych im zachowa funkcji AGREGUJ
Opcja Zachowanie
0 lub pominity Pomija zagniedone funkcje SUMY.CZCIOWE i AGREGUJ
1 Pomija ukryte wiersze oraz zagniedone funkcje SUMY.CZCIOWE i AGREGUJ
2 Pomija wartoci bdw oraz zagniedone funkcje SUMY.CZCIOWE i AGREGUJ
3 Pomija ukryte wiersze, wartoci bdw oraz zagniedone funkcje SUMY.CZCIOWE
i AGREGUJ
4 Nie pomija niczego
5 Pomija ukryte wiersze
6 Pomija wartoci bdw
7 Pomija ukryte wiersze i wartoci bdw
W przypadku odwoania w wersji tablicowej argument tablica jest tablic, formu tabli-
cow lub odwoaniem do zakresu komrek, dla ktrych ma zosta obliczona warto za-
gregowana. k jest drugim argumentem wymaganym w niektrych funkcjach. Argumentu k
wymagaj funkcje zebrane w tabeli 21.5.
Uwagi
Funkcja AGREGUJ, podobnie jak funkcja SUMY.CZCIOWE, operuje tylko na danych w jednym
arkuszu i jest przeznaczona jedynie do kolumn danych i zakresw pionowych. W przypadku
obliczania sumy zagregowanej zakresu poziomego przy uyciu opcji 1, na przykad za
pomoc wyraenia AGREGUJ(1;1; adres1), ukrycie kolumny nie bdzie miao wpywu
na warto sumy zagregowanej. Jednak ukrycie wiersza w zakresie pionowym ma wpyw
na warto zagregowan.
W przypadku funkcji AGREGUJ nie ma znaczenia, czy ukrycie wierszy nastpio w wyniku
uycia filtra, czy polecenia Ukryj wiersze.
baza oznacza ca tabel danych lub list wraz z pierwszym wierszem nagwkowym;
pole wskazuje, z ktrego pola tabeli naley odczyta dane do wykonania operacji. Pole
jest identyfikowane albo przez nazw (nagwek kolumny) ujt w cudzysw, albo od-
woanie do komrki zawierajcej t nazw (bez cudzysowu), albo przez numer kolumny
w tabeli danych (pierwsza kolumna z lewej ma numer 1). Parametr pole w przypadku nie-
ktrych funkcji jest opcjonalny;
Stosowanie funkcji z tej grupy nie pozwala, niestety, w naturalny sposb wykorzysta
odwoa strukturalnych.
Przykad 21.1.
Wrd pierwiastkw nalecych do 4. okresu ukadu okresowego naley znale pierwia-
stek o najwikszej gstoci.
Czwarty okres obejmuje pierwiastki o liczbach atomowych od 19 do 36. Jako zakres kry-
teriw wyboru mona przyj na przykad koniunkcj:
L.at. L.at.
>=19 <=36
Zakresowi temu mona nada nazw kryteria. Teraz naley wybra odpowiedni
funkcj. Za pomoc funkcji BD.MAX mona znale najwiksz warto gstoci w za-
kresie okrelonym przez kryteria.
= BD.MAX(TAB; "Gsto"; kryteria)
Przykad 21.2.
Naley obliczy redni warto elektroujemnoci w grupie wapniowcw, obejmujcej
wap, stront i bar.
Przykad 21.3.
Naley obliczy, ile pierwiastkw metalicznych ma temperatur topnienia wysz
od 2000C.
W wyniku otrzymujemy liczb 10. Warto zwrci uwag, e argument pole zosta w tym
przypadku pominity.
VBA (skrt angielskiej nazwy Visual Basic for Applications) jest uniwersalnym obiekto-
wym jzykiem programowania zintegrowanym z aplikacjami z pakietu Microsoft Office.
Omwienie wszystkich moliwoci, jakie stwarza zastosowanie tego jzyka, znacznie
przekracza ramy niniejszej ksiki. Ogranicz si wic do wskazania tych elementw
Visual Basica, ktre mog pomc w usprawnieniu oblicze naukowych, pomin za wik-
szo aspektw dotyczcych tworzenia przyjaznego interfejsu uytkownika dla osb
wprowadzajcych dane. Przedstawiony opis jzyka stanowi jego wybrany fragment, co
w praktyce oznacza, e proponowane poniej rozwizania i pomysy nie wyczerpuj
wszystkich dostpnych moliwoci. Znaczn cz dostpnych rodkw i funkcji Visual
Basica wiadomie pominem, aby nie rozbudowywa zanadto tej czci ksiki. Zainte-
resowanym bardziej szczegowo tym jzykiem mog poleci wydan niedawno ksik
Walkenbacha [14].
Pewn trudno dla uytkownikw polskiej wersji Excela moe stanowi fakt, e Visual
Basic pozosta w wersji oryginalnej (angielskiej dotyczy to take pliku pomocy [15]).
Konsekwencj tego jest nie tylko konieczno uywania angielskich nazw sw klu-
czowych i funkcji, ale rwnie separatorw waciwych dla angielskiej wersji (kropka
dziesitna zamiast przecinka, przecinek zamiast rednika jako separator parametrw
funkcji itd.).
Ze wzgldu na inn struktur instrukcji jzyka Visual Basic w stosunku do formu sto-
sowanych w arkuszu kalkulacyjnym w tym rozdziale przyjto nieco inny sposb pre-
zentacji kodu. Sowa kluczowe jzyka VBA (w oknie kodu wywietlane na niebiesko)
s pisane czcionk pogrubion prost, t sam czcionk stosuj do nazw predefinio-
wanych funkcji, metod i waciwoci. Nazwy zmiennych i funkcji definiowane przez
uytkownika oraz nazwy obowizkowych argumentw funkcji pisane s czcionk po-
grubion pochy, natomiast nazwy argumentw opcjonalnych (ktre mona pomin)
czcionk pochy niepogrubion. Stae i operatory dziaa, jak rwnie okrelenia
oglne w rodzaju instrukcja pisane s czcionk zwyk. Komentarze (w oknie kodu
wywietlane na zielono) s pisane czcionk pochy.
Podstawowe okna edytora to okno Przegldarki Projektw (Project Explorer) i okno Kodu
programu (Code). Dodatkowe opcjonalne okna to okno Waciwoci (Properties), okno
Podgldu zmiennych (Watches), okno Zmiennych lokalnych (Locals), okno Oblicze bez-
porednich (Immediate), okno Przegldarki Obiektw (Object Browser).
Z kadym arkuszem w skoroszycie zwizana jest karta kodu, w ktrej mona zapisa pod-
programy; bd one uruchamiane w tym arkuszu. Karty te s przeznaczone przede wszyst-
kim do zapisania w nich procedur obsugi zdarze, take tych wykorzystywanych w zwiz-
ku z uyciem formantw ActiveX, o ktrych szczegowo pisz w nastpnym (23.)
rozdziale. W utworzonych dodatkowo kartach moduw (poleceniem Insert Module)
mona zdefiniowa podprogramy i funkcje dostpne rwnie w innych arkuszach. Funkcje
te mona wywoywa w arkuszu jako funkcje uytkownika.
Struktura funkcji w VBA jest podobna, z tym e zamiast sowa Sub uywa si sowa
Function. Poniewa funkcja powinna zwraca wynik do wyraenia, ktre j wywouje,
naley umieci w treci funkcji wiersz
NazwaFunkcji = wynik
Makropolecenie utworzone
w wyniku rejestracji
Czsto powtarzane czynnoci mona zarejestrowa za pomoc Rejestratora Makropolece.
Wynikiem rejestracji jest kod w Visual Basicu, ktry mona potem podda edycji, dodajc
dodatkowe polecenia lub usuwajc zbdne. Aby zarejestrowa makroinstrukcj, naley
w arkuszu wybra z menu polecenie Narzdzia/Makro/Zarejestruj nowe makro (od wersji
2007 Deweloper/Zarejestruj makro). Pojawi si wwczas okno dialogowe Nowe makro
(od wersji 2007 Rejestrowanie makra), w ktrym trzeba poda nazw, skrt klawiszowy,
miejsce przechowywania i opis tworzonego makropolecenia. Poza skrtem klawiszowym
mona zaakceptowa wartoci domylne proponowane przez Excela. Po potwierdzeniu
Zmienimy teraz kod formatu tak, aby po literce E wywietlana bya tylko jedna cyfra
wykadnika i bez znaku +. Zmieniony wzorzec formatu bdzie mia posta "0.000E0".
Po wprowadzeniu zmian naley wrci do arkusza (pierwszy przycisk na linii polece
z ikonk arkusza). Sprawdzimy teraz, czy makro dziaa zgodnie z naszymi oczekiwaniami.
Do dowolnej komrki naley wpisa jak warto liczbow, zatwierdzi przez Enter.
Uruchamianie makropolece
Z poziomu arkusza kalkulacyjnego najczciej uruchamiamy makro, korzystajc ze skrtu
klawiaturowego zdefiniowanego przy rejestracji. Innym sposobem jest skorzystanie z po-
lecenia menu Narzdzia/Makro/Makra (od wersji 2007 Deweloper/Makra) lub skrtu kla-
wiaturowego Alt+F8. Pojawia si okno dialogowe z list dostpnych makropolece, z ktrej
wybieramy waciwe, potem naciskamy przycisk Uruchom. W tym samym oknie znaj-
dziemy przyciski, ktre przenios nas do okna edycji kodu makro i umoliwi jego edycj
lub uruchomienie krokowe (jeli chcemy sprawdzi, dlaczego makro nie robi dokadnie
tego, czego oczekiwalimy). Przycisk Opcje umoliwia przypisanie lub zmian skrtu kla-
wiaturowego oraz edycj opisu makra. Inne bardziej wyrafinowane metody uruchamiania
makr wymagaj modyfikacji menu, zdefiniowania dodatkowego przycisku na pasku narz-
dzi lub utworzenia specjalnego przycisku w arkuszu. Ten ostatni sposb opisaem w na-
stpnym (23.) rozdziale, opisy pozostaych mona znale w literaturze, na przykad [14].
Koniec linii w VBA nie moe wystpi w dowolnym miejscu kodu. Jeeli linia kodu jest
bardzo duga, mona pozostawi j w takiej formie, godzc si z koniecznoci przewijania
okna w celu inspekcji kodu, albo podzieli lini na krtsze segmenty, wprowadzajc spe-
cjalne znaki kontynuacji. Znakiem umoliwiajcym kontynuacj logiczn tej samej linii
w nastpnym wierszu jest sekwencja: znak podkrelenia (_) oraz Enter. Sekwencja ta
moe wystpi w linii kodu po spacji, ale nie wewntrz tekstu ujtego w cudzysw.
Moe rwnie wystpi sytuacja odwrotna. Jeeli logiczne linie kodu s bardzo krtkie,
moemy umieci kilka linii logicznych w jednym wierszu, oddzielajc je znakiem
dwukropka (:).
Piszc makropolecenia lub funkcje, musimy nada nazwy, zarwno im samym, jak i ewen-
tualnym parametrom, a take zmiennym wystpujcym w ich treci. Nazwa w VBA jest
dowolnym cigiem liter, cyfr i znakw podkrelenia, zaczynajcym si od litery (mona
uywa polskich liter). Mae i due litery w nazwach nie s rozrniane, ale edytor VBA
koryguje ukad duych i maych liter, aby zachowa zgodno z pisowni w deklaracji
zmiennej. Jeeli zmienna nie bya deklarowana, obowizujcym wzorcem pisowni jest
ostatnie uycie zmiennej. Zaleca si rozpoczyna nazwy zmiennych od maej litery, a nazwy
makropolece i funkcji od duej. Nie mona uy jako nazwy zmiennej sowa kluczowego.
Naley te unika nazw, ktre s wykorzystywane przez VBA. Dlatego sensownie jest
pisa wszystkie nazwy maymi literami lub przynajmniej rozpoczyna od maej litery.
Jeeli nazwa przejdzie kontrol skadni bez zmian, oznacza to, e jest prawidowa i moe
by uyta. Jeli pierwsza litera nazwy zmieni si na du oznacza to, e ta nazwa ma
ju przypisane jakie znaczenie w Visual Basicu i naley j zmodyfikowa. Jeli wiadomie
zamierzamy uy jakiej nazwy predefiniowanej, te warto pisa j maymi literami
edytor automatycznie skoryguje pisowni, pod warunkiem e jest prawidowa; brak
korekty moe oznacza, e popenilimy bd w nazwie lub e nie mona jej uy w da-
nym miejscu.
Nazwa powinna wyjania przeznaczenie danej funkcji, makra czy zmiennej. Uatwia to
pniejsze ich uycie. Nie naley si obawia dugich nazw makropolece i funkcji, bo
uywajc ich, dokonuje si wyboru z listy nie trzeba ich wpisywa rcznie. W nazwach
nie mona uywa spacji jeeli nazwa skada si z kilku sw, mona je rozdzieli
znakiem podkrelenia albo rozpoczynajc kolejne sowo du liter. W przeciwiestwie
do nazw uywanych w arkuszu nie mona tu stosowa kropki do rozdzielania fragmentw
nazwy kropka ma w VBA specjalne znaczenie.
Nazwy zmiennych lokalnych uywanych wewntrz makra czy funkcji te powinny wyja-
nia ich przeznaczenie. Gdy powrcimy do kodu po duszej przerwie, uatwi nam to
przypomnienie sobie jego dziaania. Na etapie edycji i uruchamiania kodu mona posu-
giwa si krtkimi, roboczymi nazwami zmiennych, ale gdy kod jest ju gotowy, po-
winno si zmieni nazwy zmiennych na dusze, ale lepiej oddajce ich sens.
Funkcja musi by umieszczona w module, aby mona byo wywoa j z arkusza kalkula-
cyjnego. W jednym module moe by zapisanych kilka makropolece i funkcji, wic
mona otworzy istniejcy modu lub utworzy nowy. Tre funkcji trzeba wprowadzi
z klawiatury (nie mona funkcji zarejestrowa, tak jak makropolecenia). W otwartym
oknie kodu naley wpisa:
Function Pole_trjkta(a,b,c)
p = (a+b+c)/2
Pole_trjkta = Sqr(p*(pa)*(pb)*(pc))
End Function
W treci naszej funkcji uyto standardowej funkcji VBA o nazwie Sqr, ktra oblicza pier-
wiastek kwadratowy z liczby podanej jako argument. Funkcj Pole_trjkta mona wy-
woa zarwno w kodzie VBA, jak i w arkuszu. W obu przypadkach wywoanie funkcji
polega na wpisaniu w wyraeniu jej nazwy oraz listy argumentw, ujtej w nawiasy okrge.
Rne bd jednak separatory argumentw: w arkuszu (w polskiej wersji) rednik,
w kodzie VBA przecinek. Jako argumentw mona uy formalnie dowolnych liczb
wynik bdzie reprezentowa pole trjkta, jeeli argumenty mog by dugociami bo-
kw trjkta. Funkcja nie sprawdza poprawnoci tych danych.
W tym przypadku kady z czynnikw uytych do obliczenia pola musi by liczb nie-
ujemn, w przeciwnym razie funkcja zwrci bd #ARG!.
Funkcj zdefiniowan w module VBA mona odnale w arkuszu na licie funkcji uyt-
kownika i wstawi j za pomoc polecenia menu Wstaw/Funkcja (od wersji 2007 Formuy/
Wstaw funkcj) lub odpowiedniej ikonki fx na pasku narzdzi. Pojawi si standardowe
okno umoliwiajce wpisanie wartoci argumentw w oddzielnych polach. Jeeli nazw
funkcji wpiszemy z pamici, ale nie pamitamy, jakie argumenty ma funkcja, mona po
nazwie funkcji nacisn Ctrl+A lub Ctrl+Shift+A. W pierwszym przypadku otworzy si
okno dialogowe argumentw funkcji, w drugim w wierszu edycji formuy pojawi si lista
parametrw wywoania, ktr naley zastpi wartociami argumentw. Ponadto w now-
szych wersjach Excela dostpna jest funkcja Autouzupeniania, ktra po rozpoczciu pisania
nazwy podpowiada, co mona wpisa dalej.
Typ zmiennej mona zadeklarowa, posugujc si sowem kluczowym As. Sam zmienn
deklaruje si po sowie kluczowym Dim. Deklaracja zmiennej moe przybra na przykad
posta:
Dim pole As Single
Sze najczciej uywanych typw danych mona zadeklarowa, dodajc na kocu na-
zwy specjalny znak identyfikacyjny (podany w tabeli 22.1), zwany dalej deklaratorem.
Znak ten wchodzi w skad nazwy zmiennej. Powysz deklaracj mona wic zapisa
w sposb skrcony jako:
Dim pole!
Jeeli zmienna zostaa zadeklarowana, przy kadym jej uyciu pisownia (ukad maych
i duych liter) zostanie uzgodniona ze wzorcem zawartym w deklaracji. Jeeli na pocztku
moduu wpisana zostanie dyrektywa Option Explicit, wszystkie zmienne musz by de-
klarowane. Zaleca si uywanie tej dyrektywy, gdy zapobiega to omykowemu wpisaniu
bdnej nazwy zmiennej. Bez niej komputer potraktowaby tak bdn nazw jako now
zmienn.
Wyraenia
Do nadawania wartoci zmiennym suy instrukcja przypisania, ktra ma posta:
zmienna = wyraenie
Po lewej stronie instrukcji moe wystpi nazwa zmiennej prostej, elementu tablicy, caej
tablicy, nazwa funkcji lub nazwa komponentu obiektu. Po prawej stronie znaku rwnoci
moe wystpi dowolne wyraenie, czyli cig staych, zmiennych, wywoa funkcji po-
czonych znakami dziaa, z moliwoci uycia nawiasw okrgych. Warto wyraenia
jest obliczana zgodnie z obowizujc w VBA kolejnoci wykonywania dziaa, a na-
stpnie wynik jest zapamitywany w zmiennej, ktrej nazwa wystpuje po lewej stronie
znaku rwnoci.
Naley pamita, e znak rwnoci uywany w instrukcji przypisania nie jest tosamy ze
znakiem rwnoci w sensie matematycznym. Poprawn i czsto uywan form instrukcji
przypisania jest inkrementacja zmiennej, na przykad:
k = k+1
co oznacza, e naley pobra warto zmiennej k, zwikszy j o 1, a nastpnie zapamita
jako now warto zmiennej k. Przypisanie wartoci odbywa si zawsze od prawej strony
w kierunku lewej.
Znak rwnoci moe rwnie wystpi w wyraeniu jako operator relacji rwnoci i w tym
przypadku ma on znaczenie takie jak w matematyce.
Tabela 22.2. Lista operatorw w Visual Basicu, ich priorytety i znaczenie cig dalszy
Priorytet Operator Dziaanie Opis
9 Not Negacja logiczna Zmienia warto logiczn argumentu z True
na False lub odwrotnie
10 And Iloczyn logiczny Zwraca warto logiczn True, jeeli
(koniunkcja) argumenty po obu stronach maj warto
True; jeeli cho jeden z argumentw
ma warto False, zwraca False
11 Or Suma logiczna Zwraca warto logiczn False, jeeli
(alternatywa) argumenty po obu stronach maj warto
False; jeeli cho jeden z argumentw
ma warto True, zwraca True
12 Xor Alternatywa Zwraca warto logiczn True, jeeli
wyczajca argumenty po obu stronach maj rne
wartoci logiczne; jeeli oba argumenty maj
t sam warto logiczn, zwraca False
13 Eqv Rwnowano Zwraca warto logiczn True, jeeli
logiczna argumenty po obu stronach maj takie same
(ekwiwalentno) wartoci logiczne, jeeli oba argumenty
maj rne wartoci logiczne, zwraca False
14 Imp Wynikanie Zwraca warto logiczn False, jeeli
(implikacja) argument po lewej stronie ma warto True,
a argument po prawej stronie warto False,
w pozostaych przypadkach zwraca True
Operatory, ktre oznaczono t sam liczb z rnymi literami, maj taki sam priorytet, co
oznacza, e obliczanie odbywa si od lewej do prawej strony. Aby zmieni kolejno wyko-
nywania dziaa, ujmujemy fragmenty wyraenia w nawiasy okrge, nawiasy mog by
zagniedane. Zawarto nawiasw jest obliczana w pierwszej kolejnoci, poczwszy od
najbardziej zagniedonej pary. Wewntrz nawiasw obowizuje standardowa kolejno.
Porwnujc list dziaa w Excelu i w Visual Basicu oraz ich kolejno, naley zauway
zamienion kolejno operatorw potgowania i negacji arytmetycznej. Ponadto niektre
operacje, wymagajce w Excelu uycia funkcji, tu mog by realizowane prociej za
pomoc operatorw. S to wszystkie operacje logiczne oraz operacje dzielenia cakowi-
toliczbowego i obliczania reszty (operacja modulo).
Lista funkcji VBA liczy prawie 200 pozycji, peny spis jest dostpny w pliku pomocy [15].
Kilkanacie funkcji, ktre mog si okaza przydatne w obliczeniach naukowych, zesta-
wiono w tabeli 22.3.
Jak ju wspomniaem, w Visual Basicu mona uywa wielu funkcji Excela. S one wy-
mienione w spisie funkcji wbudowanych Excela zamieszczonym na kocu ksiki. Wszyst-
kie wymienione tam funkcje nieoznaczone gwiazdk ani dwiema gwiazdkami mog by
uywane w wyraeniach VBA. Trzeba jednak speni dwa warunki: musi by uyta an-
gielska nazwa funkcji i trzeba j poprzedzi sowem Application i kropk. Argumenty
naley oddziela przecinkami, a nie rednikami. Przykadowo mona uy wyraenia:
tekst_wzoru = Application.Substitute(tekst_wzoru, "x", nowe_x)
W przypadku funkcji nalecych do dodatku Analysis Toolpak od wersji 2007 mona ich
uywa tak jak innych funkcji arkuszowych. We wczeniejszych wersjach Excela ich
uycie wymaga kilku czynnoci wstpnych. Najpierw naley zainstalowa dodatek
Analysis Toolpak VBA z poziomu arkusza. W tym celu z menu Narzdzia wybieramy
opcj Dodatki i zaznaczamy na licie pozycj Analysis Toolpak VBA. Nastpnie po
przejciu do edytora VBA (naciskajc rwnoczenie klawisze Alt+F11 lub wybierajc
z menu Narzdzia/Makro/Edytor/Visual Basic) naley wykona polecenie Tools/Reference
i na wywietlonej licie zaznaczy nazw moduu atpvbaen.xls. Teraz mona ju korzy-
sta z funkcji zawartych w tej bibliotece trzeba pamita, aby nazw funkcji po-
przedzi nazw moduu w nawiasach kwadratowych i kropk, na przykad:
[atpvbaen.xls].FactDouble(n)
Poniewa Value jest waciwoci domyln, mona jej nazw pomin i powysze
instrukcje zapisa w postaci uproszczonej:
x = Range("G4") 'warto z komrki G4 skopiowano do zmiennej x
Range("C5") = 0.54 'warto 0.54 wpisano do komrki C5
Inn waciwoci obiektu Range jest Formula. Jest to warto tekstowa, oznaczajca wyra-
enie umieszczone w komrce. Istniej cztery powizane waciwoci suce do przecho-
wywania formu. Oprcz Formula jest FormulaLocal oraz FormulaR1C1 i FormulaR1C1Local.
Pierwsza i druga waciwo uywaj odwoa do komrek w stylu A1, trzecia i czwarta
w stylu nazywanym w Polsce W1K1. Pierwsza i trzecia waciwo uywa angielskich
nazw funkcji, druga i czwarta lokalnych, czyli w jzyku narodowym. Wystarczy poda
jedn z wersji, pozostae zostan wygenerowane przez Excela w razie potrzeby. Mona
wpisywa formuy do komrek, posugujc si tymi waciwociami, na przykad:
Range("B3").Formula = "=2*EXP(2)"
Na etapie wprowadzania kodu VBA formua nie jest w aden sposb weryfikowana
po prostu zawarto staej tekstowej jest wpisywana lub odczytywana z komrki. We-
ryfikacja nastpuje przy wykonaniu kodu. Jeeli zawarto komrki nie jest formu, lecz
zwykym tekstem we wszystkich wariantach pozostaje bez zmian, jeeli jest liczb
s uwzgldniane zasady uycia separatora dziesitnego (kropki lub przecinka), jeeli fak-
tycznie jest formu (zaczyna si od znaku rwnoci) jest sprawdzana poprawno od-
woa i ewentualnie generowane s odpowiednie komunikaty bdw.
Jeszcze inna waciwo obiektu Range NumberFormat jest wzorcem tekstowym, okre-
lajcym format wywietlania liczb w komrce lub zakresie komrek. Ponisze wyraenie
zapamituje format z komrki B4 w zmiennej formatB4:
formatB4 = Range("B4").NumberFormat
Tabela 22.4. Wybrane metody obiektu Range i innych obiektw, ktre mona wykorzysta w procedurach
funkcyjnych i makroinstrukcjach
Nazwa_metody
(parametry_obowizkowe, Krtki opis dziaania
parametry_opcjonalne)
Activate Wskazuje obiekt (np. arkusz, komrk), ktry ma by aktywny
(wybrany)
Clear Usuwa formuy, wartoci i formatowanie ze wskazanego zakresu
Find(What, After, LookIn, LookAt, Przeglda obszar powizanego obiektu Range w poszukiwaniu
SearchOrder, SearchDirection, wzorca What. W wyniku zwraca obiekt Range wskazujcy pierwsz
MatchCase, MatchByte) komrk zawierajc poszukiwany wzorzec albo Nothing, jeli
wzorca nie znaleziono
GoalSeek(Goal, ChangingCell) Powizany obiekt Range musi zawiera formu. ChangingCell
jest obiektem Range zawierajcym zmienn podlegajc zmianie.
Goal okrela warto docelow formuy. Metoda wprowadza
zmiany w arkuszu. Zwraca True, jeli operacja si powioda
Select(Replace) Wybiera (podwietla) komrk lub zakres komrek, wykres, arkusz
lub inny obiekt. Opcjonalny parametr Replace okrela, czy zastpi
dotychczasowy wybr arkuszy nowym, czy poszerzy istniejcy
wybr o nowy arkusz
Union(Arg1, Arg2, ...) Tworzy jeden zakres z kilku zakresw
zmienna jest zmienn odpowiedniego typu, ktra przyjmuje warto okrelon w opisie
metody. Czsto jest to warto logiczna oznaczajca, czy wykonanie metody byo bez-
bdne (True lub False).
Metoda jest angielsk nazw metody skojarzonej z podanym zakresem. Nazwa metody
i lista parametrw musz by dokadnie zgodne z opisem metody podanym w pliku po-
mocy [15]. Argumenty wywoania metody mona podawa w dwojaki sposb. Pierwszy
sposb jest taki jak przy wywoaniu funkcji, tzn. podaje si kolejno wartoci argumentw
oddzielone przecinkami. Kolejno argumentw jest istotna, jeli pomijamy ktry argu-
ment opcjonalny, a podajemy nastpny, trzeba pozostawi wszystkie przecinki, a do
przecinka poprzedzajcego ostatni z uywanych argumentw. Drugi sposb polega na
podaniu nazwy parametru (jak w opisie metody), dwuznaku := (dwukropek i znak rwno-
ci) oraz wartoci argumentu, ktra ma by przekazana. Przy tym drugim sposobie kolej-
no argumentw jest dowolna, ale jak poprzednio oddzielamy je przecinkami.
Poniewa czsto nie jest nam potrzebna informacja, czy metoda zakoczya si bezbdnie,
istnieje moliwo wywoania metody jak makroinstrukcji. W tym przypadku naley po-
min nawiasy otaczajce list argumentw, a list t oddzieli od nazwy metody spacj
(odstpem).
zakres.Metoda parametry_obowizkowe, parametry_opcjonalne
Wymiana informacji
midzy arkuszem a kodem VBA
Poniewa traktujemy Visual Basic raczej jako uzupenienie arkusza kalkulacyjnego, a nie
samoistny jzyk programowania, wikszo funkcji i makroinstrukcji pisanych w tym
jzyku bdzie operowa na danych z arkusza lub przynajmniej przekazywa wyniki do
arkusza. Z tego wzgldu musimy wiedzie, jak w kodzie VBA odwoywa si do danych
zawartych w arkuszu i jak wprowadza wyniki oblicze wykonanych w VBA do kom-
rek arkusza.
Kolejna instrukcja wprowadza do komrki aktywnej formu Excela, traktowan jako tekst:
ActiveCell = "=EXP(1)"
Z kolei instrukcja
x = ActiveCell
odczytuje zawarto komrki aktywnej i umieszcza j w zmiennej x.
Po zmianie selekcji aktywn komrk staje si automatycznie lewa grna komrka nowego
obszaru selekcji. Komrka aktywna musi nalee do obszaru selekcji. Jeli aktywujemy
komrk spoza tego obszaru, poprzednia selekcja zostaje automatycznie uniewaniona.
Excela, ujty w cudzysw, czyli zapisany w formie tekstowej. Tekst ten moe by wyra-
eniem, na przykad "G"&wiersz. Jeeli zmienna wiersz ma warto 3, to powysze wyra-
enie zostanie obliczone jako "G3".
Jeeli natomiast w VBA mamy zdefiniowan zmienn o nazwie tablica, ktrej zostaa
nadana warto tekstowa "K10:L12", to odwoanie moe mie posta:
Range(tablica)
W tym przypadku row i column oznaczaj odpowiednio numer wiersza i numer kolumny
w podanym zakresie, liczc od jego lewego grnego rogu.
expression jest wyraeniem obowizkowym, ktre daje w wyniku obiekt Range. Opcjo-
nalne parametry RowOffset i ColumnOffset oznaczaj przesunicia w stosunku do lewego
grnego rogu obszaru okrelonego przez expression.
Jeeli obszar expression wskazuje pojedyncz komrk, waciwo Offset zwraca ko-
mrk pooon o podan liczb wierszy w pionie i kolumn w poziomie od komrki wyj-
ciowej. Jeeli obszar expression wskazuje zakres zoony z wikszej liczby komrek,
waciwo Offset rwnie zwraca zakres, ktrego wszystkie komrki s przesunite
w stosunku do oryginalnego zakresu o okrelon liczb wierszy i kolumn.
W Visual Basicu tablice wymagaj deklaracji. Suy do tego instrukcja Dim, ktra musi
poprzedza pierwsze odwoanie do tablicy. Deklaracja moe przyjmowa rne formy, ale
zawsze musi okrela nazw tablicy i zawiera par nawiasw okrgych wskazujcych, e
chodzi o tablic, a nie o zmienn prost. Ponadto deklaracja moe okrela rozmiary (zakres
indeksw), struktur (liczb wymiarw) oraz typ danych przechowywanych w tablicy.
Deklaruje ona tablic o nazwie tabA, zoon z piciu elementw, w ktrej bd przecho-
wywane liczby cakowite. Zakresy indeksw musz by staymi liczbowymi. Okrelenie
typu danych mona pomin, wtedy elementy tablicy bd typu Variant. Mona te po-
min indeks pocztkowy tablicy wraz ze sowem To. Jako indeks pocztkowy domylnie
przyjmuje si zero (!), chyba e na pocztku moduu zostanie umieszczona dyrektywa
Option Base 1, wtedy indeks pocztkowy domylnie jest rwny 1. Jedn deklaracj Dim
mona obj kilka tablic oddzielonych przecinkami, lecz typ danych w kadej tablicy
naley okreli oddzielnie.
Dim tabB(3, 1 To 3)
oznacza dwuwymiarow tablic, ktrej pierwszy indeks zmienia si od 0 do 3, a drugi
od 1 do 3. Elementy tablicy bd typu Variant.
Jeeli nie da si okreli z gry rozmiarw tablicy, mona zadeklarowa tzw. tablic
dynamiczn:
Dim tabC()
Rozmiary tablicy okrela si w treci procedury za pomoc instrukcji ReDim. W tej in-
strukcji mona wskaza zakres indeksw, ktry moe by okrelony przez wyraenie
(moe zawiera zmienne). Jeeli wczeniej nie zdefiniowano typu zmiennych, mona to
zrobi w instrukcji ReDim. Instrukcja ta moe by uyta kilkakrotnie w treci procedury
w celu zmiany rozmiaru lub struktury tablicy. Kade kolejne uycie instrukcji ReDim zeruje
elementy tablicy. Aby zachowa wartoci zawarte dotychczas w tablicy, naley po sowie
ReDim doda sowo Preserve. W przypadku tablicy wielowymiarowej przechowa dane
mona pod warunkiem, e zmianie ulega tylko ostatni wymiar tablicy. Ponadto w razie
uycia Preserve nie mona zmienia typu danych.
Do tablicy mona si odwoywa w caoci, podajc nazw tablicy (bez nawiasw lub
z pustymi nawiasami), na przykad tabA lub tabA(), albo poprzez jej elementy: tabA(2)
oznacza drugi element tablicy zadeklarowanej powyej.
Skadnia:
LBound(arrayname, dimension)
arrayname oznacza nazw tablicy, dimension oznacza numer wymiaru tablicy: 1 dla pierw-
szego wymiaru, 2 dla drugiego itd. Jeli pominiemy drugi parametr, zostanie przyjty
pierwszy wymiar.
Struktura tablicy utworzonej jako kopia zakresu komrek jest zawsze dwuwymiarowa,
nawet jeeli kopiuje si zakres jednowymiarowy (pojedynczy wiersz lub kolumn).
Drugi zbdny indeks ma warto 1. Jeeli na przykad utworzymy kopi zakresu
B5:H5, to zawarto komrki C5 odczytamy jako element tablicy tabl(1,2).
Gdyby zakres docelowy obejmowa kilka kolumn, do kadej kolumny zostayby wpisane
takie same dane.
Wicej o funkcjach
definiowanych przez uytkownika
W zastosowaniach naukowych najczciej wykorzystuje si Visual Basic do definiowania
funkcji, ktre maj uzupeni zestaw dostpny standardowo o funkcje realizujce specy-
ficzne potrzeby obliczeniowe. Prosty przykad funkcji podano na pocztku tego rozdziau.
Teraz deklarowanie i definiowanie funkcji zostanie omwione bardziej szczegowo.
W deklaracji funkcji mona okreli zarwno typy parametrw, jak i typ wyniku. Jak
w przypadku deklaracji zmiennych, suy do tego sowo kluczowe As. Brak deklaracji typu
oznacza typ Variant.
Na licie argumentw przy wywoaniu funkcji kady argument musi wystpi oddzielnie,
oddzielony przecinkiem (w arkuszu rednikiem) od nastpnych. Stanowi one kolejne
elementy tablicy. Nie mona uy zakresu i oczekiwa, e poszczeglne jego elementy
zostan potraktowane jako kolejne argumenty. Zakres moe by uyty, ale stanie si on
pojedynczym argumentem i kod funkcji musi wydoby z niego poszczeglne wartoci.
Funkcja obliczy warto wielomianu x3+3x2+4x2 dla x = 3,5. Zakadamy, e kod funkcji
zosta tak napisany, e wsp(0) jest wspczynnikiem wielomianu przy najwyszej pot-
dze x. Kod funkcji musi uwzgldnia to, e liczba wspczynnikw a zarazem stopie
wielomianu moe by dowolna.
W tym przypadku wsp jest zmienn typu Variant, pod ktr przy wywoaniu funkcji
mona podstawi zakres lub tablic, tak jak to opisano w poprzednim podrozdziale. Wy-
woanie tej funkcji w przypadku, gdy wspczynniki wielomianu s umieszczone w ko-
mrkach arkusza z zakresu C7:F7, ma posta:
w kodzie VBA:
Wielomian2(3.5, Range("C7:F7"))
a w arkuszu:
Wielomian2(3,5;C7:F7)
Gdyby przy tej drugiej postaci funkcji trzeba byo w wywoaniu poda wspczynniki
w formie liczbowej, wywoanie to mogoby wyglda tak:
w kodzie VBA:
Wielomian2(3.5,Array(1,3,4,-2))
a w arkuszu:
Wielomian2(3,5;{1;3;4;-2}) do wersji 2007
lub
Wielomian2(3,5;{1\3\4\-2}) w wersji 2010
W wersji VBA uyto funkcji Array, ktra zwraca zmienn typu Variant o strukturze jed-
nowymiarowej tablicy zoonej z elementw wymienionych w wywoaniu.
Zazwyczaj funkcja zwraca w wyniku jedn warto, jednak nic nie stoi na przeszkodzie,
aby napisa funkcj, ktra bdzie zwraca tablic wartoci. W deklaracji takiej funkcji
mona nie podawa typu wyniku (typ Variant) albo po nazwie typu wyniku da par pu-
stych nawiasw, na przykad zapis As Double() oznacza, e wynik bdzie tablic zoon
z liczb typu Double. W kodzie funkcji naley t tablic utworzy, a w kocu przypisa j
do nazwy funkcji. Jeli typ funkcji nie jest zadeklarowany, mona te przypisa wynik do
nazwy funkcji bezporednio, uywajc funkcji Array.
W Visual Basicu istnieje kilka wariantw instrukcji warunkowych. Ich posta zaley od
tego, czy przewidujemy wykonanie pewnych akcji tylko po spenieniu warunku, czy rw-
nie innych akcji, gdy warunek nie jest speniony. Ma te znaczenie, czy akcja do wy-
konania da si zapisa w jednym wierszu, czy wymaga kilku wierszy.
Obie postacie instrukcji musz mieci si w jednej linii. Jeeli zamiast instrukcji1 lub
instrukcji2 powinny by uyte dwie, czasem trzy krtkie instrukcje, mona napisa je
wszystkie w jednej linii, rozdzielone dwukropkami, na przykad:
If x >= 0 Then a = 1 : b = 2 Else a = 2 : b = 3
Jeeli pierwszy warunek nie jest speniony, moe zachodzi konieczno sprawdzenia
kolejnych warunkw. Naley je poprzedzi sowem ElseIf (bez spacji). Liczba spraw-
dzanych warunkw nie jest ograniczona (fraz z ElseIf mona powtarza). Instrukcja
przyjmuje posta:
If warunek1 Then
instrukcja1a
instrukcja1b
...
ElseIf warunek2 Then
instrukcja2a
instrukcja2b
...
Else
instrukcja3a
instrukcja3b
...
End If
Kiedy pierwszy warunek1 jest speniony, rwnie moe zachodzi potrzeba sprawdzenia
drugiego dodatkowego warunku2, aby zdecydowa o dalszych akcjach. Wymaga to uycia
zagniedonych instrukcji warunkowych, na przykad:
If warunek1 Then
If warunek2 Then
instrukcja1a
instrukcja1b
...
ElseIf warunek3 Then
instrukcja2a
instrukcja2b
...
Else
instrukcja3a
instrukcja3b
...
End If
Else
instrukcja4a
instrukcja4b
...
End If
Instrukcje ptli
Ptle stosuje si w programie w celu wielokrotnego wykonania pojedynczej instrukcji
lub sekwencji instrukcji. Naley rozrni dwa przypadki: kiedy liczba obiegw ptli jest
z gry okrelona i kiedy liczba obiegw ptli wynika z badania, czy w trakcie wykonywa-
nia ptli speniony jest pewien warunek logiczny.
Najczciej stosowanym typem ptli jest ptla For...Next z jawnym licznikiem liczby
wykona. Skadnia tego rodzaju ptli jest taka jak poniej:
For licznik = start To koniec Step krok
instrukcje
Next licznik
Krok moe mie warto dodatni lub ujemn. Warunkiem wykonywania ptli jest spe-
nienie warunku:
Warunek jest sprawdzany na pocztku, a pniej po wykonaniu ptli warto licznika jest
modyfikowana (instrukcj Next) i warunek zostaje sprawdzony ponownie przed rozpocz-
ciem kolejnego obiegu ptli. Jeli warunek nie jest speniony, sterowanie zostaje przekazane
do linii nastpujcej po Next. Warto licznika moe by odczytywana i wykorzystywana
w obliczeniach wewntrz ptli, ale nie powinna by modyfikowana, gdy utrudnia to ana-
liz kodu i poszukiwanie ewentualnych bdw, cho formalnie nie jest to zabronione.
Liczba wykona ptli For...Next jest w zasadzie z gry okrelona, moe ona jednak
ulec zmianie, jeli w kodzie zmienimy warto zmiennej sterujcej licznik. Moliwe
jest take umieszczenie w kodzie wewntrz ptli instrukcji Exit For. Jej wykonanie
spowoduje natychmiastowe przerwanie wykonywania oblicze w ptli i przejcie do
instrukcji w linii nastpujcej po Next. Instrukcja ta moe by elementem instrukcji
warunkowej, na przykad:
If warunek Then Exit For
Warto zmiennej sterujcej zostaje zachowana po wyjciu z ptli. Instrukcje ptli mo-
g by zagniedane. W kadej z zagniedonych ptli trzeba uy innej zmiennej
sterujcej, na przykad:
For i = 1 To 10
instrukcje1
For j = 5 To 0 Step 1
instrukcje2
Next j
instrukcje3
Next i
Drugi typ ptli, w ktrym liczba obiegw jest w zasadzie okrelona przy wejciu, to ptla
For Each ... Next. Ptla ta moe by uywana w odniesieniu do obiektw nalecych
do jakiej grupy, kolekcji czy tablicy. Czsto wykorzystuje si j w odniesieniu do zakresu
komrek, z ktrego mona wydoby zawarto poszczeglnych komrek. Skadnia in-
strukcji ptli tego typu jest taka jak poniej:
For Each element In grupa
instrukcje
Next element
Ptle, w ktrych liczba obiegw jest z zasady nieokrelona, s wykonywane, dopki jest
speniony pewien warunek logiczny (wersja ze sowem While), lub koczone, gdy zostaje
speniony warunek logiczny (wersja ze sowem Until). Warunek ten jest z reguy spraw-
dzany na pocztku lub na kocu kodu ptli.
Do Until warunek
instrukcje
Loop
Do
instrukcje
Loop While warunek
Do
instrukcje
Loop Until warunek
Jeeli warunek kontynuowania lub zakoczenia oblicze sprawdzany jest na pocztku ptli,
moliwe jest, e tre ptli nie wykona si ani razu; jeeli jest sprawdzany na kocu ptli,
tre ptli wykona si co najmniej raz.
W treci ptli mona umieci instrukcj Exit Do, ktrej wykonanie powoduje natychmia-
stowe zakoczenie ptli i przejcie do instrukcji nastpujcej po Loop.
Jest to ptla, w ktrej warunek zakoczenia sprawdzany jest tylko w treci ptli.
Stosowanie komentarzy
Kod funkcji lub makroinstrukcji stanie si bardziej czytelny, jeli uzupenimy go odpo-
wiednimi komentarzami wyjaniajcymi, jaki jest cel wykonywanych oblicze. Przydaje
si to szczeglnie, gdy wracamy po duszej przerwie do pracy nad jak funkcj czy ma-
kroinstrukcj. Komentarz w kodzie VBA to tekst umieszczony po znaku ' (po apostrofie).
Moe on zajmowa ca lini albo by umieszczony za kodem na kocu linii. Kocem
komentarza jest zawsze koniec linii.
Uruchamianie i testowanie
makroinstrukcji i funkcji
Przy pisaniu kodu duszych makroinstrukcji lub funkcji rzadko zdarza si napisa od razu
wszystko bezbdnie. Czowiek jest omylny, dlatego kady kod musi by dokadnie spraw-
dzony. Od strony formalnej kod jest sprawdzany automatycznie przez edytor Visual
Basica, ale pozostaje jeszcze logiczna poprawno kodu, ktr musimy ju sprawdzi
sami. Chodzi o to, czy wyniki, ktre otrzymujemy, s istotnie tym, co chcielimy obliczy.
Naley to sprawdzi, testujc kod na danych, ktre daj znane wyniki.
Pierwsza faza kontroli odbywa si podczas wprowadzania kodu w oknie edytora. Bdne
linie s zaznaczane na czerwono, a w okienku wywietlany jest komunikat o rodzaju wy-
krytego bdu. Bd moe wystpi rwnie w fazie wykonania kodu. W takim przypadku
wykonywanie kodu jest przerywane i wywietlany jest komunikat o bdzie wykonania.
Linia kodu, w ktrej wystpi bd, jest podwietlana na to. Po poprawieniu bdu pod-
wietlenie pozostaje, lecz mona ponownie uruchomi kod klawiszem F5. Pierwszym
wierszem realizowanym po wznowieniu jest wiersz podwietlony. Czasem po poprawieniu
bdu trzeba uruchomi kod od pocztku. W takim przypadku naley najpierw wcisn
przycisk z granatowym kwadratem na pasku zada (Reset) lub wybra z menu Run/Reset.
Jeeli program generuje bdy wykonania lub daje nieprawidowe wyniki, w znalezieniu
przyczyny bdu moe pomc wykonanie kodu krokowo lub zatrzymanie kodu w pewnym
miejscu w celu sprawdzenia wartoci zmiennych. Gdy jest otwarte okno edycji kodu, mona
go uruchomi krokowo klawiszem F8. Aby zatrzyma wykonanie kodu w okrelonym
miejscu, naley ustawi tzw. puapk programow (ang. Breakpoint). W tym celu trzeba
umieci kursor w linii, gdzie ma by ustawiona puapka, i nacisn klawisz F9 albo
na pasku narzdzi ikonk z symbolem doni. Linia z ustawion puapk jest pod-
wietlona na brzowo. Po osigniciu tej linii w trakcie wykonywania kodu zostaje ono
przerwane i wywietla si okno edytora z lini puapki. Wykonywanie kodu zostaje za-
trzymane przed lini z ustawion puapk.
Rysunek 22.3.
Pasek narzdzi Debug
(uruchamianie) w rnych a)
wersjach Excela:
a) w wersji 2000,
b) w wersji 2007
b)
Kolejne ikonki oznaczaj: tryb projektowania (Design Mode), uruchom ponownie (Continue
F5), przerwij (Break Ctrl+Break), przygotuj do uruchomienia od pocztku (Reset),
ustaw lub skasuj puapk (Toggle Breakpoint F9), wykonuj krokowo (Step Into F8),
wykonuj krokowo bez wchodzenia do wntrza wywoywanych podprogramw i funkcji
(Step Over Shift+F8), wykonaj biec procedur bez zatrzymania i przejd do proce-
dury wywoujcej (Step Out Ctrl+Shift+F8), otwrz okno zmiennych lokalnych (Locals
Window), otwrz okno oblicze bezporednich (Immediate Window Ctrl+G), otwrz
okno podgldu zmiennych (Watch Window Ctrl+W), szybki podgld (Quick Watch
Shift+F9), poka stos wywoa procedur (Call Stack Ctrl+L).
Przykady funkcji
i makroinstrukcji w VBA
Obliczanie wartoci wielomianu
Zagadnienie obliczania wartoci wielomianu o znanych wspczynnikach jest typowym
zadaniem, na ktrego przykadzie mona zilustrowa definiowanie funkcji o zmiennej licz-
bie parametrw.
Aby obliczy warto wielomianu, wygodnie jest zapisa go za pomoc tzw. schematu
Hornera, na przykad:
ax4+bx3+cx2+dx+e = ((((ax+b)x+c)x+d)x+e
Schemat ten pozwala oblicza warto wielomianu w ptli, dziki czemu ten sam schemat
obliczeniowy mona zastosowa niezalenie od stopnia wielomianu, a zarazem liczby
wspczynnikw.
Next ai
Wielomian2 = w
End Function
Zastosowanie w drugiej wersji funkcji ptli For Each ... Next pozwala nie myle o struk-
turze zmiennej wsp. Niezalenie od tego, czy wspczynniki bd w arkuszu zapisane
w wierszu, czy w kolumnie, wszystkie zostan odczytane po kolei od strony lewej do pra-
wej lub z gry na d. Analogicznie zostan potraktowane stae tablicowe.
b
x1, 2 = , gdzie = b 2 4ac
2a
Liczba pierwiastkw zaley od wartoci wyrnika . Jeli > 0, rwnanie ma dwa pier-
wiastki rzeczywiste rne, jeli = 0, rwnanie ma jeden pierwiastek tzw. podwjny
(albo dwa pierwiastki rwne), wreszcie jeli < 0, rwnanie nie ma pierwiastkw rzeczy-
wistych, ma natomiast dwa pierwiastki zespolone.
Deklaracj wyniku funkcji mona pomin. Ale w treci funkcji naley zadeklarowa
tablic robocz do przechowania wynikw oblicze. Struktura tablicy zaley od tego, jak
chcemy wywietla wyniki:
Dim pierw(1 To 2) As Double 'wyniki w wierszu albo
' Dim pierw(1 To 2, 1 To 1) As Double wyniki w kolumnie
Dim delta As Double
delta = b*b4*a*c
pierw(1) = (bSqr(delta))/(2*a) 'lub pierw(1,1) =
pierw(2) = (b+Sqr(delta))/(2*a) 'lub pierw(2,1) =
PierwRK = pierw
End Function
Mona rozway inny wariant funkcji, ktry uwzgldni rwnie pierwiastki zespolone.
Tu dla odmiany uyjemy funkcji Array do nadania wartoci naszej funkcji. Funkcja zwraca
albo dwa pierwiastki rzeczywiste, albo cz rzeczywist i cz urojon pierwiastkw.
W tym drugim przypadku cz urojona ma posta tekstow. Z tego wzgldu wynik funkcji
musi by tablic typu Variant, bo w zalenoci od okolicznoci musi zwraca liczb lub
tekst. Ze wzgldu na uycie funkcji Array wyniki w arkuszu kalkulacyjnym bd zajmowa
ssiednie komrki w ukadzie poziomym.
Function PierwRK2(a As Double, b As Double, c As Double)
Dim delta As Double, p As Double, q As Double
delta = b*b4*a*c
p = -b/(2*a)
q = Sqr(Abs(delta))/(2*a)
If delta >= 0 Then
PierwRK2 = Array(pq , p+q)
Else
PierwRK2 = Array(p , "" & q & " i")
End If
End Function
Definicj t naley umieci w module VBA i ju mona funkcj wywoa w Excelu, po-
sugujc si nazw LICZBA. Aby unikn niespodzianek, naley jednak mie na uwadze
specyfik uytej funkcji Val. Funkcja ta poszukuje liczby na pocztku przekazanego jej
argumentu tekstowego, ktry moe by wartoci wyraenia. Ignoruje znaki spacji, tabu-
lacji, przejcia do nowej linii. Koczy analiz na pierwszym znaku, ktry nie moe by
uznany za fragment liczby. Za separator dziesitny uznawana jest kropka (jak w VBA),
lecz funkcja zwraca liczb z przecinkiem dziesitnym. Jeeli argument tekstowy nie roz-
poczyna si od liczby, funkcja zwraca 0.
Funkcja rozpoznaje przedrostki &H i &O (due lub mae litery) jako flagi odpowiednio liczb
heksadecymalnych (szesnastkowych) i oktalnych (semkowych). Przykady wywoa
w Excelu i zwracanych wynikw:
= LICZBA(" 12e") zwraca 12,
= LICZBA(" e2") zwraca 0,
= LICZBA(" 12e2") zwraca 1200,
= LICZBA(" 1 2 e 2") zwraca 1200,
Godna udostpnienia w arkuszu jest rwnie metoda Evaluate, ktra pozwala obliczy
warto wyraenia danego w postaci tekstowej. Daje to moliwo skomponowania wyra-
enia z fragmentw, ewentualnie wymiany funkcji lub podstawienia wartoci w miejsce
zmiennej. Moemy zdefiniowa funkcj OBLICZ jako opakowanie metody Evaluate.
Function Oblicz(x)
Application.Volatile
Oblicz = Evaluate(x)
End Function
Rwnie ta funkcja ma swoj specyfik. Jej argumentem moe by staa tekstowa lub
wyraenie dajce w wyniku tekst. Z niejasnych powodw argumentem nie moe by od-
woanie do komrki zawierajcej tekst. Argument funkcji powinien tworzy poprawn
formu poprzedzon znakiem = lub bez tego znaku, zapisan w wersji z kropk jako
separatorem dziesitnym, z angielskimi nazwami funkcji i z przecinkami jako separatora-
mi argumentw funkcji. Jednak jeli wystpi odwoanie porednie, argument funkcji
wewntrznej moe by rwnie w notacji polskiej (z przecinkiem dziesitnym). Wyjani
to na przykadach:
Cakowanie numeryczne
W przypadku funkcji podcakowej opisanej wzorem rozwizaniem alternatywnym dla
cakowania numerycznego w arkuszu (por. rozdzia 7. Obliczanie caek oznaczonych
z wykorzystaniem ich interpretacji geometrycznej) moe by napisanie odpowiedniej
makroinstrukcji lub funkcji. Zacznijmy od makroinstrukcji. Poniewa makroinstrukcja
wywoywana z arkusza nie moe mie parametrw, wszystkie dane trzeba pobra z kom-
rek arkusza lub z okna dialogu z uytkownikiem.
O ile napisanie makroinstrukcji, ktra wykonuje cakowanie numeryczne, nie jest specjal-
nie trudne, o tyle napisanie analogicznej funkcji jest trudniejsze. Nie byoby problemu,
gdyby definicja funkcji podcakowej bya napisana w Visual Basicu, wtedy jako argu-
menty wywoania wystarczyoby poda granice cakowania i liczb podprzedziaw. Ka-
dorazowa zmiana funkcji podcakowej wymagaaby jednak ingerencji w kod VBA, co nie
jest zbyt wygodne. Ta wersja mogaby wyglda na przykad tak:
Function fp(x As Double) As Double
fp = Exp(x)/x 'definicja funkcji podcakowej wg skadni VBA
End Function
Do obliczenia wartoci wyraenia suy z kolei metoda Evaluate. Oblicza ona warto
wyraenia zapisanego w postaci tekstowej w stylu arkusza. (Nazw metody Evaluate
mona zastpi par nawiasw kwadratowych, lecz wwczas argument musi by podany
wprost bez cudzysowu, wic jest to z reguy mniej wygodne i w tym wypadku nie da si
zastosowa). Po modyfikacji nasza funkcja mogaby by zapisana tak:
Function Simpson2(fp As String, a As Double, b As Double, n As Integer) As Double
Dim wynik As Double
Dim krok As Double, x As Double, licznik As Integer
krok = (ba)/n
x = a
wynik = 0# '0 jako warto typu Double
For licznik = 1 To n
wynik = wynik+Evaluate(Application.Substitute(fp, "x", x))
x = x+krok/2
wynik = wynik+4*Evaluate(Application.Substitute(fp, "x", x))
x = x+krok/2
wynik = wynik+Evaluate(Application.Substitute(fp, "x", x))
Next licznik
Simpson2 = wynik*krok/6
End Function
Ograniczeniem tego rodzaju rozwizania jest to, e funkcja podcakowa musi by zapisa-
na jednym wzorem, podczas gdy korzystajc z komrek arkusza moemy cakowa
bardziej zoone funkcje, ktre s obliczane sekwencyjnie.
Przy okazji obliczania grnej granicy cakowania w przypadku caki funkcji danej w po-
staci tabelarycznej w arkuszu (rozdzia 9. Obliczanie grnej granicy cakowania) napo-
tkalimy problem wyznaczenia wartoci indeksu Koniec. Problem ten mona atwo
rozwiza, posugujc si makroinstrukcj. Moe mie ona tak posta:
Sub GdzieKoniec()
Dim n As Integer, licznik As Integer
n = Range("TABE").Count
For licznik = 1 To n2
Range("Koniec") = licznik
If Range("F25") <= 0 Then Exit For
Next licznik
End Sub
Pierwsza linijka kodu okrela dokadno oblicze w metodzie GoalSeek przez zmian
waciwoci MaxChange obiektu Application. Jeli nie mona znale rozwizania, nasze
makro wywietla w komrce zmienianej komunikat bdu #ARG!.
Mona te napisa funkcj speniajc podobne zadanie. Nie mona w niej jednak wyko-
rzysta metody GoalSeek, gdy zmienia ona stan arkusza. Nasza funkcja musi wyko-
rzystywa wasny algorytm rozwizania bazujcy na przykad na metodzie Newtona.
Argumentami funkcji s: formua okrelajca funkcj celu w postaci tekstowej, warto
pocztkowa argumentu funkcji celu oraz warto kocowa funkcji celu jako argument
opcjonalny, przyjmowany domylnie jako 0. W formule funkcji celu argument oznaczony
bdzie liter "x". Funkcja zwraca zmodyfikowan warto argumentu funkcji celu lub
komunikat bdu #ARG!, jeeli rozwizanie nie istnieje.
Obliczenie wartoci funkcji celu na podstawie tekstu formuy przebiega podobnie jak przy
obliczaniu caki. Mona zaproponowa na przykad taki opis funkcji MyGoal:
Function MyGoal(fp As String, wp As Double, Optional wk As Double = 0) As Double
Dim fx1 As Double, fx2 As Double, dx As Double
Dim xs As Double, x As Double, licznik As Integer
Dim dokl As Double, p As Double, n As Integer
dokl = Application.MaxChange
n = Application.MaxIterations
xs = wp
For licznik = 1 To n
dx = WorksheetFunction.Max(Abs(1E5*xs),1E6)
fx1 = Evaluate(Application.Substitute(fp, "x", xsdx))
fx2 = Evaluate(Application.Substitute(fp, "x", xs+dx))
p = (fx2fx1)/(2*dx)
x = xs(Evaluate(Application.Substitute(fp, "x", xs)) wk) / p
If Abs(xxs) < dokl Then Exit For
xs = x
Next licznik
If Abs(xxs) < dokl Then
MyGoal = x
Else
MyGoal = CVErr(xlErrValue)
End If
End Function
Podobnie jak metoda GoalSeek, funkcja MyGoal zwraca zawsze jeden wynik najbliszy
wartoci pocztkowej argumentu funkcji celu. Jeli istnieje kilka rozwiza trzeba
wywoywa funkcj kilkakrotnie z rnymi wartociami pocztkowymi.
x\y y1 y2 y3 y4
x1 f(x1, y1) f(x1, y2) f(x1, y3) f(x1, y4)
x2 f(x2, y1) f(x2, y2) f(x2, y3) f(x2, y4)
x3 f(x3, y1) f(x3, y2) f(x3, y3) f(x3, y4)
x4 f(x4, y1) f(x4, y2) f(x4, y3) f(x4, y4)
x1 y1 f(x1, y1)
x2 y1 f(x2, y1)
x3 y1 f(x3, y1)
x4 y1 f(x4, y1)
x1 y2 f(x1, y2)
x2 y2 f(x2, y2)
x3 y2 f(x3, y2)
x4 y2 f(x4, y2)
x1 y3 f(x1, y3)
x2 y3 f(x2, y3)
x3 y3 f(x3, y3)
x4 y3 f(x4, y3)
x1 y4 f(x1, y4)
x2 y4 f(x2, y4)
x3 y4 f(x3, y4)
x4 y4 f(x4, y4)
Odjcie 1 wie si z zamiarem okrelenia rozmiarw tablicy wartoci funkcji, naley wic
pomin pierwsz kolumn i pierwszy wiersz, ktre zawieraj wartoci zmiennych nie-
zalenych.
Adres docelowy mona ustali, pytajc uytkownika i wykorzystujc do tego funkcj lub
metod InputBox:
Dim Adres As Range
Set Adres = Range(InputBox("Podaj adres pocztku przeksztaconej tablicy"))
lub
Set Adres = Application.InputBox( _
prompt := "Podaj adres pocztku przeksztaconej tablicy", type := 8)
W obu przypadkach tworzymy obiekt typu Range o nazwie Adres, okrelajcy pocztek
wynikowej tablicy. W pierwszym przypadku uyto funkcji InputBox, ktra odbiera i zwraca
dane wprowadzone z klawiatury (powinien to by tekst reprezentujcy adres komrki).
Adres ten jest nastpnie wykorzystany do utworzenia obiektu typu Range. W drugim przy-
padku uyto metody InputBox. Dziki podaniu typu zwracanego wyniku (type := 8) od
razu tworzony jest obiekt typu Range. Ponadto w tym przypadku mona nie tylko wpisa
adres, ale mona te wskaza odpowiedni komrk klikniciem myszk. Szczegy do-
tyczce uycia funkcji i metody InputBox mona znale w pliku pomocy [15].
Do staych kinetycznych odwoujemy si poprzez ich nazwy, jakie maj w arkuszu, ste-
nia reagentw s przekazywane jako argumenty wywoania, dodatkowy argument corr
przewidziano do modyfikacji ste wymaganej przez metod Rungego-Kutty.
W arkuszu wywouje si tylko funkcj RKM, podajc poprzednie stenia oraz interwa
czasowy jako argumenty. Funkcja oblicza nowe stenie substratu A; pozostae stenia
wylicza si ju w arkuszu z bilansu materiaowego.
Niestety nie wszystkie funkcje predefiniowane w Excelu akceptuj tak rnorodne typy
argumentw. atwo sprawdzi, e na przykad funkcje pochodzce z dodatku Analysis
Toolpak, mimo e od wersji 2007 dodatek ten jest ju zintegrowany z arkuszem, nie ak-
ceptuj argumentw w postaci tablic zawierajcych wicej ni jedn warto.
Jeeli piszemy wasn funkcj w VBA i chcemy, aby zachowywaa si podobnie jak
funkcje standardowe, musimy sami zadba o to, aby funkcja akceptowaa rne rodzaje
danych. Jeeli typ argumentu zostanie zadeklarowany jako Single, Double lub Variant,
w wywoaniu funkcji moe wystpi dowolny rodzaj danych, odnoszcy si do pojedyn-
czej wartoci z wyjtkiem staej tablicowej. Jeeli typ argumentu zostanie zadeklarowany
jako Object lub Range, w wywoaniu funkcji moe wystpi tylko adres komrki lub
nazwa tej komrki. Dotyczy to sytuacji, gdy w treci funkcji argument jest traktowany
jak pojedyncza warto.
Jeeli chcemy, aby wasna funkcja moga by uywana w odwoaniu tablicowym, ak-
ceptowaa dane tablicowe i zwracaa wynik w postaci tablicy, musimy w treci funkcji
sprawdzi, jaki rodzaj danych reprezentuje argument i stosownie do tego zorganizowa
obliczenia. Zamy, e mamy przykadow funkcj SQRTPI, ktra pobiera jedn liczb jako
argument i zwraca jedn liczb jako wynik. Chcemy zmodyfikowa j tak, aby moga
akceptowa rwnie argument w postaci tablicy i zwraca wynik w postaci tablicy o takich
samych rozmiarach.
Taka funkcja musi przyjmowa argument typu Variant i sama zwraca wynik tego samego
typu. W treci funkcji naley sprawdzi, czy argument jest pojedyncz liczb, czy tablic
w tym drugim przypadku naley jeszcze odrni zakres komrek od zwykej tablicy.
Jest to istotne, poniewa musimy sprawdzi, czy mamy obiekt jednowymiarowy, czy
dwuwymiarowy od tego zaley sposb odwoywania si do jego elementw. Do spraw-
dzenia, czy mamy do czynienia z tablic, suy funkcja IsArray, natomiast za pomoc
funkcji IsObject sprawdzimy, czy mamy do czynienia z zakresem. W rny sposb
sprawdza si rozmiary zwykej tablicy (su do tego funkcje LBound i UBound) i zakresu
(waciwoci Rows.Count i Columns.Count). Ponadto zakres jest zawsze obiektem dwuwy-
miarowym, natomiast tablica zawierajca jeden wiersz jest obiektem jednowymiarowym,
a inne tablice (w tym jednokolumnowa) s pamitane jako dwuwymiarowe. Nie ma mo-
liwoci bezporedniego sprawdzenia, czy obiekt jest jednowymiarowy, czy dwuwymia-
rowy. Mona to zrobi porednio, prbujc odczyta drugi wymiar tablicy i sprawdzajc,
czy wystpi bd, czy nie. Metod t wykorzystano w funkcji TwoDim, ktra zwraca warto
logiczn True, jeli sprawdzany argument jest zakresem lub tablic dwuwymiarow.
W kodzie VBA mona sprawdzi, ktra wersja Excela jest uywana za pomoc waci-
woci Val(Application.Version). W wersji 2007 zwracana jest warto 12, we wczeniej-
szych wersjach s to odpowiednio mniejsze liczby. Nie mona jednak wykorzysta tej in-
formacji do napisania uniwersalnego kodu, ktry byby wykonywany w rnych wersjach,
bo istnienie pliku atpvbaen.xls jest sprawdzane na etapie kompilacji i jego brak uniemo-
liwia kompilacj, niezalenie od tego, czy bdzie potrzebny przy wykonaniu.
Operacje na komrkach
sformatowanych w okrelony sposb
Niektre cechy formatowania komrek mona odczyta w Excelu za pomoc funkcji
KOMRKA("format"; odwoanie). Jednake takie czsto uywane cechy formatu, jak kolor
czcionki lub ta, nie zostay tu uwzgldnione. Jeli chcielibymy na przykad obliczy sum
zawartoci komrek z podanego zakresu, ktre s wywietlane w okrelonym kolorze,
mona posuy si funkcj napisan w VBA, w podobny sposb jak w poprzednim pod-
rozdziale.
Aktualizacj mona wywoa przez edycj i ponowne zatwierdzenie wyraenia lub przez
nacinicie kombinacji klawiszy Ctrl+Alt+F9 (samo F9 nie wystarczy).
Przed wywoaniem makroinstrukcji naley ustawi kursor w komrce, ktra zawiera for-
mu. Tekstowa wersja formuy zostanie umieszczona w komrce ssiedniej z prawej
strony.
Mam nadziej, e tych kilka przykadw wystarczy, aby zrozumie, kiedy i w jaki sposb
zastosowa Visual Basic do usprawnienia oblicze. W razie wtpliwoci co do moliwoci
uycia poszczeglnych obiektw VBA naley skorzysta z pliku pomocy [15], przeanali-
zowa podane tam przykady i troch poeksperymentowa samodzielnie. Sporo poy-
tecznych informacji mona rwnie znale w podrcznikach powiconych jzykowi
VBA, na przykad [14].
tekstowe, listy i tzw. pola kombi, etykiety, paski przewijania oraz formanty grupujce.
Oprcz tego mona korzysta z wielu dodatkowych formantw dostpnych w opcji Wicej
formantw, a nawet z formantw udostpnionych z zewntrz i zarejestrowanych do uy-
cia. Problemem moe by tylko znalezienie informacji o ich przeznaczeniu i sposobie
wykorzystania.
Niestety przy wyborze formantw uytkownik Excela jest naraony na dylemat z ga-
tunku osiokowi w oby dano istniej bowiem dwie grupy formantw o podob-
nym przeznaczeniu i podobnym wygldzie, rnice si szczegami implementacji.
Pierwsz grup stanowi formanty formularza, dostpne od bardzo wczesnych wersji
arkusza kalkulacyjnego, nieco atwiejsze w uyciu, lecz mniej elastyczne, drug grup
tworz formanty ActiveX, dostpne od wersji 97 Excela, ktrych wygld i cechy mona
pod wieloma wzgldami dopasowywa do potrzeb i oczekiwa uytkownika, obecnie
zalecane przez twrcw aplikacji. W przypadku prostych zastosowa uycie formantw
nie wymaga programowania w VBA. Jest tak wtedy, gdy formanty s statyczne i nieza-
lene od siebie. Parametry (waciwoci) formantw ustalone przy ich projektowaniu
pozostaj niezmienne w czasie dziaania aplikacji. Jeeli jednak wymagana jest zmiana
waciwoci formantw pod wpywem danych wprowadzanych przez uytkownika, nie-
zbdne staje si napisanie pewnych, zwykle niewielkich fragmentw kodu w Visual
Basicu. Nie jest bowiem moliwa modyfikacja waciwoci formantw z poziomu arkusza
w trakcie dziaania aplikacji. Aktywno uytkownika generuje zdarzenia, takie jak klik-
nicie myszk na formancie, zmiana wartoci formantu itp. Kod napisany w Visual Basicu
musi okrela reakcj na zdarzenia, ktre mog wystpi. W ten sposb aplikacja odpo-
wiada na bieco na wszystkie dziaania uytkownika i dostosowuje si do nich.
Dodawanie kontrolek
(formantw) do arkusza
Chocia same kontrolki ekranowe nie ulegy zmianom, to sposb ich umieszczania w ar-
kuszu zmieni si istotnie po wprowadzeniu Excela 2007. We wczeniejszych wersjach
arkusza dostp do formantw mona uzyska, wybierajc z menu Widok polecenie Paski
narzdzi i zaznaczajc na licie odpowiednio Formularze lub Przybornik formantw.
Odpowiedni pasek z symbolami formantw (formularzy lub ActiveX) pojawi si wwczas
na ekranie. Poczwszy od wersji 2007 Excela, dostp do formantw zapewnia karta De-
weloper. Jeeli karta nie jest widoczna, naley najpierw j wywietli. W tym celu w wersji
2007 trzeba najpierw nacisn Przycisk pakietu Office w lewym grnym rogu ekranu
i w Opcjach programu Excel zaznaczy Poka kart Deweloper na Wstce. W wersji
2010 z menu Plik naley wybra Opcje/Dostosowywanie wstki, a nastpnie na licie
Teraz naley klikn myszk symbol graficzny wybranego formantu, a nastpnie w arku-
szu zaznaczy myszk obszar, w ktrym chcemy ulokowa formant. W trakcie zaznacza-
nia obszaru kursor myszki przyjmuje posta maego krzyyka. Po zwolnieniu przycisku
myszki formant jest ju na swoim miejscu. Bezporednio po wstawieniu formant jest
w trybie projektowania, co pozwala na edycj jego pooenia, rozmiarw i waciwoci.
Gdy formant nie jest w trybie projektowania, aby przej do tego trybu w przypadku for-
mantw formularza, wystarczy klikn formant prawym przyciskiem myszy, natomiast
w przypadku formantw ActiveX naley najpierw klikn ikonk trybu projektowania
lub odpowiednio na pasku Przybornik formantw lub w grupie Formanty na karcie
Deweloper, w zalenoci od wersji Excela. Potem naley klikn formant obojtnie lewym
czy prawym przyciskiem myszy. Tryb projektowania pozostaje aktywny a do ponownego
kliknicia jego ikonki.
Kady formant ma nazw, ktra jest widoczna w polu nazwy po lewej stronie nad arku-
szem (gdy formant jest zaznaczony). Domylnie nazwa skada si z nazwy rodzaju i nu-
meru formantu. Formantom formularza nadawane s nazwy polskie i numery kolejne,
w jednolitej numeracji, niezalenie od rodzaju formantu. Formantom ActiveX nadawane
s nazwy angielskie i numery kolejne formantw okrelonego rodzaju. Nazwy te mona
edytowa. Niektre formanty maj rwnie tytu, ktry jest wywietlany w jego polu. Po-
cztkowo wywietlany jest domylny tytu, taki sam jak nazwa formantu. Tytu moe by
edytowany niezalenie od nazwy formantu.
W zakadce Formant okrela si warto pocztkow formantu oraz komrk lub komrki
z danymi powizanymi, jak rwnie komrk przechowujc aktualny stan formantu (po
akcji uytkownika). W przypadku formantw formularza t ostatni komrk mona rw-
nie wskaza bezporednio na pasku formuy (gdy formant jest zaznaczony). Adres ko-
mrki musi by podany wprost lub poprzez nazw komrki (nie moe by obliczony).
Tytu formantu formularza mona edytowa bezporednio po klikniciu myszk lub wy-
bierajc Edytuj tekst z menu podrcznego (po klikniciu formantu prawym przyciskiem
myszy). Tytu formantu ActiveX mona edytowa, wybierajc Obiekt (tu polska nazwa
obiektu)/Edycja lub edytujc odpowiedni waciwo (patrz dalej).
Jeeli chcemy, aby w odpowiedzi na kliknicie formantu formularza bya wykonana jaka
makroinstrukcja, musimy wybra z menu podrcznego polecenie Przypisz makro, a na-
stpnie zarejestrowa je lub umieci jego tre w oknie edytora kodu Visual Basica, ktre
zostanie wywietlone. Najczciej makroinstrukcja jest przypisywana do przycisku pole-
cenia, ale mona rwnie wykorzysta tu inne formanty, przypisujc im dodatkowe zadania.
Jeli chcemy uy formantu formularza, klikamy go lewym klawiszem myszy, jeli chce-
my go edytowa (tryb projektowania), klikamy go prawym klawiszem myszy. Koczymy
edycj, klikajc lewym klawiszem myszy gdziekolwiek poza formantem. Aby uy for-
mantu ActiveX, naley najpierw si upewni, e tryb projektowania jest wyczony
(ewentualnie wyczy go), a nastpnie klikn go lewym przyciskiem myszy (na prawy
w tym trybie nie reaguje). Aby edytowa formant ActiveX, naley najpierw si upewni,
e tryb projektowania jest wczony (ewentualnie wczy go), a nastpnie klikn go
lewym lub prawym przyciskiem myszy. Pojedyncze kliknicie lewym przyciskiem myszy
zaznacza formant, podwjne kliknicie otwiera okno edytora kodu makroinstrukcji,
pojedyncze kliknicie prawym przyciskiem myszy otwiera menu podrczne z opcjami
formatowania.
Formanty formularza
Poniej zestawiono informacje specyficzne dla poszczeglnych rodzajw formantw
formularza.
Etykieta
Stanowi tekst, ktry moe suy jako tytu lub opis. Nie ma adnych specyficznych
waciwoci, nie jest powizana z adn komrk arkusza. Tekst etykiety jest edytowany
w trakcie przygotowania arkusza i nie moe by zmieniany w toku oblicze. Wielko
i rodzaj czcionki nie podlegaj edycji.
Przycisk
Pole wyboru
Przycisk opcji
Formant ten zwany jest rwnie przyciskiem radiowym. Ma posta maego kka pu-
stego (niezaznaczony) lub z kropk w rodku (zaznaczony). Obok kka umieszczony jest
krtki tekst opisu, podobny do etykiety. Przyciski opcji wystpuj zawsze w grupach, co
najmniej po dwa. Zaznaczenie (kliknicie) ktregokolwiek przycisku w grupie automatycz-
nie odwouje zaznaczenie innego przycisku std nazwa przycisk radiowy, bo jego
dziaanie jest podobne do przyciskw sucych do wyboru dugoci fal w radioodbiorniku.
Pole listy
Formant ten umoliwia wybr jednej pozycji z wywietlonej listy. Funkcjonalnie odpo-
wiada zestawowi przyciskw opcji, z tym e zajmuje mniej miejsca przy duej liczbie po-
zycji do wyboru formant jest wyposaony w pionowy pasek przewijania, wic list
mona przewija i nie wszystkie pozycje musz by widoczne cay czas. Przy projekto-
waniu pola listy naley okreli zakres wejciowy (odwoanie do zakresu komrek arkusza,
w formie pojedynczej kolumny zawierajcej wartoci, ktre maj by widoczne w polu li-
sty) oraz cze komrki (adres komrki, w ktrym ma by umieszczony wynik wyboru
dokonanego przez uytkownika bdzie to numer pozycji na licie). Aby uzyska warto
wybranej pozycji, naley uy formuy = INDEKS(zakres_wejciowy; cze_komrki).
Mona rwnie okreli typ zaznaczania, wybierajc jedn z opcji: pojedyncze, wielokrotne
lub rozszerzone, ale tylko wybr pierwszej z nich (ustawienie domylne) jest obsugiwany
standardowo. Wybr wielokrotny oznacza, e kliknicie kadej pozycji listy jest nieza-
lene i dziaa jak przecznik. Wybr rozszerzony bez dodatkowych klawiszy dziaa tak
jak wybr pojedynczy, natomiast naciskajc dodatkowo klawisz Shift lub Ctrl, mona
zaznaczy kilka pozycji. Jednak przy wyborze opcji innej ni pojedyncze formant nie
zwraca wyniku do arkusza (zawarto cza komrki nie reaguje na wybr dokonany
przez uytkownika i trzeba napisa wasn procedur w VBA do obsugi tego wyboru).
Pole listy nie ma tytuu. Wielko pola listy moe by zmieniana w fazie projektowania,
ale nie mona zmieni ani rodzaju czcionki, ani jej wielkoci.
Pokrto
Nazwa tego formantu jest nieco mylca. Nawizuje ona do tradycyjnej formy pokrte
radiowych sucych na przykad do regulacji siy gosu, wygldem jednak bardziej przy-
pomina wspczesne urzdzenia w formie klawisza, ktry naciskany u gry zwiksza,
a naciskany u dou zmniejsza jaki parametr. Graficznie formant ma posta dwch pl ze
strzakami, kliknicie strzaki skierowanej w gr powoduje zwikszenie wartoci w ko-
mrce skojarzonej z formantem, natomiast kliknicie strzaki skierowanej w d powoduje
zmniejszenie tej wartoci. Wielko tej zmiany okrela parametr zmiana przyrostowa.
Formant pokrta nie ma tytuu. Przy projektowaniu pokrta naley okreli adres komrki
powizanej (cze komrki), a ponadto mona okreli pozostae parametry w nawia-
sach podaj ich wartoci domylne, ktre s zarazem wartociami granicznymi: warto
bieca (0), warto minimalna (0), warto maksymalna (30000), zmiana przyrostowa (1).
Pokrto uatwia modyfikacj wartoci w komrce powizanej, ale nie ogranicza moli-
woci bezporedniej edycji tej wartoci. Zawarto komrki powinna by liczb cakowit
nieujemn z przedziau [warto minimalna, warto maksymalna], wartoci niecakowite
zostan obcite, wartoci spoza przedziau zostan skorygowane do wartoci granicznych,
wartoci nienumeryczne zostan zignorowane.
Pasek przewijania
Ten formant spenia funkcj podobn do pokrta, jednake umoliwia szybsz zmian
wartoci w komrce powizanej. Graficznie ma posta paska z suwakiem zakoczonego
z obu stron strzakami. Pasek moe mie orientacj pionow lub poziom. Wymiary paska
mona modyfikowa na etapie projektowania. Zmiana wartoci odbywa si poprzez klika-
nie strzaek na kocach paska (mae zmiany), klikanie pl pomidzy suwakiem a strzakami
(due zmiany) lub przez przeciganie suwaka (due zmiany). Parametry okrelane w przy-
padku paska przewijania s takie jak dla pokrta, z tym e dodatkowo okrela si para-
metr zmiana strony (domylnie 10). Okrela on zmian wartoci formantu po klikniciu
pl pomidzy suwakiem a strzakami. Domylna, a zarazem graniczna warto maksy-
malna wynosi w tym przypadku 100. Tak jak w przypadku pokrta uycie paska przewi-
jania pozwala na ustawienie cakowitej nieujemnej wartoci w komrce powizanej.
Formant paska przewijania rwnie nie ma tytuu.
Pole kombi
Formant ten jest poczeniem pola listy rozwijanej z polem tekstowym. Zajmuje mniej
miejsca od pola listy, gdy lista jest wywietlana dopiero po klikniciu strzaki lub pola
tekstowego. Pocztkowo pole tekstowe jest puste, po klikniciu myszk wywietlana jest
lista rozwijana, z ktrej uytkownik moe dokona wyboru wybrana warto zostanie
skopiowana do pola tekstowego. Podobnie jak w przypadku pola listy, wynik wyboru
dokonanego przez uytkownika zwracany w komrce powizanej bdzie numerem pozycji
na licie. Przy projektowaniu formantu naley poda zakres wejciowy (odwoanie do pio-
nowego zakresu komrek arkusza, zawierajcego wartoci, ktre maj by widoczne
w polu listy rozwijanej), cze komrki (adres komrki, w ktrym ma by umieszczony
wynik wyboru) oraz linie rzutu. Ten ostatni parametr okrela, ile pozycji z listy ma by
widocznych na ekranie w trakcie dokonywania wyboru. Jeeli zakres wejciowy zawiera
wicej pozycji, obok listy bdzie wywietlany pasek przewijania. Z listy mona wybra
tylko jedn pozycj. Gdy komrka powizana zawiera zero (nie dokonano adnego wy-
boru), pole tekstowe jest puste; gdy do komrki tej wpisze si warto wiksz ni liczba
pozycji na licie, wybrana zostanie ostatnia pozycja.
Podobnie jak w przypadku pola listy, formant ten nie ma tytuu, nie ma te moliwoci
modyfikacji rodzaju i wielkoci czcionki uywanej do wywietlania listy i treci wybranej
pozycji. Nie ma te moliwoci bezporedniego wpisania wybranej wartoci w polu
tekstowym.
Pole grupy
Formanty ActiveX
Standardowe formanty z tej grupy wygldaj podobnie i speniaj podobne funkcje jak
formanty formularza. Mona jednak modyfikowa wicej ich waciwoci i przez to lepiej
dopasowywa je do potrzeb uytkownika. Mona rwnie korzysta z formantw nie-
standardowych, speniajcych nietypowe zadania. Jeli jednak porwnamy szczegy im-
plementacji, zauwaymy do duo rnic w sposobie definiowania i dziaania tych for-
mantw. S one rwnie cilej powizane z jzykiem VBA, gdy waciwoci tych
formantw definiuje si tak jak waciwoci innych obiektw VBA.
Po wyborze polecenia lub naciniciu przycisku Waciwoci wywietlane jest okno Pro-
perties zawierajce zestawienie waciwoci biecego arkusza i wszystkich osadzonych
w nim formantw ActiveX. Nazwy rodzajowe formantw i ich waciwoci oraz nazwy
staych reprezentujcych wartoci niektrych waciwoci s tu podane w jzyku angiel-
skim. W oknie s dwie zakadki pozwalajce na wywietlanie waciwoci alfabetycznie
(Alphabetic) lub tematycznie (Categorized).
Rysunek 23.1.
Okno Properties
prezentujce
waciwoci
formantu ActiveX
Niektre waciwoci maj nadane wartoci domylne lub wartoci wynikajce z usytu-
owania formantu w arkuszu, inne pozostawiono puste do wypenienia na etapie projek-
towania, niektre s opcjonalne i mog pozosta niewypenione. Aby wprowadzi lub
zmodyfikowa warto waciwoci, naley klikn dwa razy nazw waciwoci lub pole
wartoci obok nazwy. Jeeli waciwo moe przyjmowa dowoln warto, w polu
wartoci pojawi si kursor; jeli moe przyjmowa jedn z kilku wartoci, w okienku war-
toci pojawi si strzaka umoliwiajca wybr z listy; jeli wreszcie jest to waciwo
zoona, obejmujca kilka komponentw, w polu wartoci pojawi si wielokropek, po
ktrego klikniciu wywietli si okno dialogowe z moliwoci wyboru.
Etykieta
Przycisk polecenia
Pod wieloma wzgldami przypomina etykiet ActiveX, moe zawiera statyczny tekst
i grafik. Zasadnicza rnica polega na tym, e przycisk ma standardowo szary kolor
i zmienia swj wygld (cieniowanie), gdy klikniemy go myszk. Jego gwnym przezna-
czeniem jest uruchamianie makropolece w odpowiedzi na kliknicie myszk. Jednake
makroinstrukcj mona powiza rwnie z etykiet, jeli zachodzi taka potrzeba. For-
mant ma tytu Caption, ktry jest zawsze wyrodkowany (nie ma waciwoci TextAlign
okrelajcej pooenie tytuu). Waciwo WordWrap wskazuje, czy duszy tekst tytuu
ma by zawijany, czy obcinany. Podobnie jak w formancie etykiety, w przycisku polece-
nia mona umieci grafik (waciwo Picture) i okreli jej pooenie wzgldem tytuu
(waciwo PicturePosition).
Pole wyboru
Przycisk opcji
Formant ten przypomina pole wyboru, lecz zamiast kwadratowego okienka jego sym-
bolem graficznym jest mae kko, puste (niezaznaczone) lub z kropk w rodku (zazna-
czone). Suy do wyboru jednej z kilku wykluczajcych si moliwoci. Dlatego ma sens
uycie co najmniej dwch przyciskw opcji. Kliknicie przycisku zaznacza go, odznacza-
jc rwnoczenie ten, ktry by poprzednio zaznaczony. Przycisk opcji ma waciwo
GroupName, ktra oznacza nazw grupy powizanych przyciskw. Pocztkow domyln
wartoci tej waciwoci jest nazwa arkusza, w ktrym umieszczono przyciski. Aby utwo-
rzy dwie lub wicej grup przyciskw, naley kadej grupie przypisa inn nazw grupo-
w. Z kadym przyciskiem opcji naley powiza inn komrk arkusza (waciwo
LinkedCell). Komrka ta przyjmuje warto PRAWDA lub FASZ, w zalenoci od stanu
przycisku. Jest to rozwizanie odmienne ni w przypadku podobnych formantw formula-
rza, kiedy ta sama komrka bya powizana z wszystkimi formantami w grupie. Tu przy-
pisanie tej samej komrki kilku przyciskom opcji spowodowaoby ich bdne dziaanie.
Przycisk opcji oprcz tytuu (waciwo Caption) moe zawiera grafik (waciwo
Picture), ktrej pooenie wzgldem tytuu okrela waciwo PicturePosition.
Pole listy
Formant ten umoliwia wybr wiersza z wywietlonej listy danych. Jego funkcjonalno
jest rozszerzona w stosunku do analogicznego formantu formularza. Oprcz rozbudowa-
nych moliwoci formatowania wywietlanego tekstu moliwe s: obsuga kilku ko-
lumn danych, wywietlanie nagwkw kolumn, a take wywietlanie przyciskw opcji
lub pl wyboru obok listy. W powizanej komrce (waciwo LinkedCell) umieszczana
jest warto z wiersza wybranego przez uytkownika i kolumny wskazanej na etapie pro-
jektowania (waciwo BoundColumn). Dane wywietlane w polu listy s pobierane z arku-
sza (waciwo ListFillRange). Jest to prostoktny zakres komrek. Liczb wywietla-
nych kolumn podaje waciwo ColumnCount. Waciwo ColumnHeads decyduje o tym,
czy kolumny listy maj nagwki te, jeli maj by wywietlane, naley umieci
w wierszu bezporednio nad obszarem danych. Oczywicie nagwek nie moe by wy-
brany, peni tylko funkcj informacyjn. Waciwo ColumnWidths pozwala okreli
szeroko kolumn. Szeroko podaje si w punktach (domylnie 1 punkt = 1/72 cala),
mona j te poda w centymetrach (cm) lub w calach (in). Szerokoci kolumn oddziela
si rednikami. Podanie wartoci 0 oznacza, e kolumna ma by ukryta, pominicie warto-
ci oznacza przyjcie wartoci domylnej (zwykle 1 cal). Ukryte kolumny mona wyko-
rzysta w ten sposb, e uytkownik moe wskazywa warto z kolumny widocznej,
a formant moe zwraca w powizanej komrce odpowiednik odczytany z kolumny ukrytej.
Z kolei waciwo ListStyle decyduje o tym, czy lista ma by wywietlana bez znaczni-
kw (0), czy ze znacznikami (1). O rodzaju wywietlanego znacznika (przycisk opcji czy
pole wyboru) decyduje z kolei waciwo MultiSelect. S tu moliwe 3 wartoci: 0
oznacza wybr pojedynczy, co wie si z ewentualnym wywietlaniem przyciskw opcji
i ten wariant jako jedyny jest obsugiwany standardowo, 1 oznacza wybr wielokrotny,
a 2 wybr rozszerzony. Znaczenie tych poj jest takie samo jak w przypadku pola
listy w wariancie formantu formularza i w obu sytuacjach obsuga wymaga napisania od-
powiedniego kodu w VBA. W wariantach 1 i 2 obok listy mog by wywietlane pola
wyboru. W razie potrzeby pole listy moe by wyposaone w paski przewijania. S one
dodawane automatycznie, gdy dane nie mieszcz si w okienku formantu.
Pole tekstowe
Pole tekstowe jako formant ActiveX suy do wywietlania, wprowadzania i edycji da-
nych tekstowych lub numerycznych. Moe rwnie spenia funkcj etykiety (wywietla
tekst statyczny). Jest powizane z komrk arkusza (waciwo LinkedCell), stanowi
wic w pewnym sensie jej odpowiednik, lecz moe by usytuowane w dowolnym miejscu
na ekranie i sposb sformatowania tekstu w polu nie musi by taki sam jak w powizanej
komrce. Spord specyficznych waciwoci tego formantu warto wymieni MaxLength
oznacza maksymaln liczb znakw, jak moe wprowadzi uytkownik do formantu
w trybie pracy (0 oznacza brak ogranicze). Nie ogranicza to liczby znakw, jak mona
wprowadzi do powizanej komrki. Wszystkie te znaki s wywietlane w formancie. Na-
stpna specyficzna waciwo to MultiLine okrela, czy tekst ma by wywietlany
w jednej czy w kilku liniach. Jeli ta waciwo ma warto True, przy wprowadzaniu
tekstu do pola naley uy kombinacji klawiszy Ctrl+Enter lub Shift+Enter, aby przej
do nowej linii. Oprcz tego istnieje waciwo WordWrap, ktra umoliwia automatyczne
dzielenie tekstu na wiersze w zalenoci od rozmiarw pola, oraz waciwo AutoSize,
ktra umoliwia automatyczne dopasowanie wielkoci pola do jego zawartoci. Alterna-
tywnie waciwo ScrollBars umoliwia dodanie do pola jednego lub obu paskw prze-
wijania. Waciwo TextAlign okrela sposb wyrwnywania tekstu w polu (do lewej,
do rodka lub do prawej). Istnieje te waciwo PasswordChar, ktra umoliwia utwo-
rzenie pola tekstowego do wprowadzania hasa. Jeeli ma ona warto True, wprowadzane
do pola znaki s widoczne jako gwiazdki.
Przycisk pokrta
Pasek przewijania
Pole kombi
Formant ten jest poczeniem pola listy rozwijanej z polem tekstowym. W odrnieniu
od podobnego formantu z grupy formularzy umoliwia jednak nie tylko bezporedni wybr
z listy rozwijanej, ale rwnie wprowadzenie wartoci z klawiatury. Umieszczajc for-
mant w arkuszu, naley zaznaczy tylko miejsce na pole tekstowe. Lista zostanie rozwi-
nita bezporednio pod nim. Pole kombi ma wikszo waciwoci charakterystycznych
dla listy rozwijanej. Ich znaczenie jest identyczne i opisane zostao w akapicie powico-
nym tej licie. Pole listy nie ma waciwoci MultiSelect. Obsuguje tylko wybr poje-
dynczy, wic po ustawieniu waciwoci ListStyle na 1 lista bdzie wywietlana z przyci-
skami opcji. Waciwo ListWidth okrela szeroko listy. Domylna warto 0 pt
oznacza, e szeroko listy jest taka jak pola tekstowego. Mona jednak wprowadzi
inn warto. Pole listy ma te kilka dodatkowych waciwoci zwizanych ze sposobem
wprowadzania danych do formantu. Waciwo Style okrela, czy uytkownik moe
wpisywa dane do pola tekstowego (warto 0), czy tylko dokonywa wyboru z listy
(warto 2 w takim przypadku formant zachowuje si podobnie jak pole kombi z grupy
formantw formularza). Waciwo MatchEntry okrela sposb przeszukiwania listy przy
wpisywaniu wartoci w polu tekstowym warto 0 oznacza dopasowanie podpowiedzi
wedug pierwszej litery, przy wartoci 1 podpowied jest modyfikowana w miar wpro-
wadzania kolejnych znakw, przy wartoci 2 brak podpowiedzi. Waciwo MatchRequired
okrela, czy warto wprowadzona w polu tekstowym musi by zgodna z jednym z ele-
mentw listy, czy te moe by dowolna. Waciwo MaxLength ogranicza maksymaln
liczb znakw, jak mona wprowadzi do pola tekstowego w trybie pracy (0 oznacza
brak ogranicze). Dwie waciwoci odnosz si do symbolu wywietlanego na przycisku
rozwijania waciwo DropButtonStyle definiuje ten symbol (strzaka w d do-
mylny, wielokropek, podkrelenie lub brak symbolu), waciwo ShowDropButtonWhen
wskazuje, kiedy symbol ten ma by wywietlany zawsze (domylnie), nigdy lub gdy
formant zostanie zaznaczony. Pole kombi nie ma waciwoci ScrollBars, ale paski prze-
wijania pojawiaj si automatycznie, gdy s potrzebne.
Obraz
Ten formant suy do osadzania w arkuszu plikw graficznych (map bitowych, plikw
w formatach JPEG lub GIF). Po wstawieniu ramki formantu naley klikn przycisk
Waciwoci i z listy wybra waciwo Picture. Po prawej stronie pola pojawi si znak
wielokropka naley go klikn, a nastpnie w oknie dialogowym wybra plik do wsta-
wienia. Mona rwnie po zaznaczeniu waciwoci Picture wklei (przez Ctrl+V) obraz
umieszczony uprzednio w schowku. Oprcz typowych waciwoci, jakie maj formanty
ActiveX, wystpuje tu kilka waciwoci specyficznych dla tego typu formantw, umo-
liwiajcych zaawansowane formatowanie grafiki. S to waciwoci: PictureAlignment
okrelajca pooenie mapy bitowej w formancie (5 moliwoci, w czterech rogach
lub, domylnie, na rodku), PictureSizeMode okrelajca sposb wywietlania obrazu
(0 przycinanie (domylnie), 1 rozciganie, dopasowanie do wielkoci formantu
Przycisk przecznika
Ten formant wystpuje tylko w grupie ActiveX i ma posta prostokta opisanego tytuem
Caption. Po klikniciu formant zmienia swj wygld (cieniowanie). Klikanie przycisku
powoduje jego przeczanie pomidzy dwoma stanami na przykad tak/nie lub wczony/
wyczony. Funkcjonalnie odpowiada polu wyboru, a wygldem przypomina przycisk
polecenia. W przeciwiestwie do przycisku polecenia ma warto Value i powizan ko-
mrk LinkedCell. Rwnie inaczej reaguje na kliknicie. Wygld przycisku polecenia
zmienia si tylko na czas, gdy klawisz myszy pozostaje wcinity, a po zwolnieniu powraca
do stanu pocztkowego. Wygld przycisku przecznika zmienia si po naciniciu przy-
cisku myszy i pozostaje zmieniony po zwolnieniu przycisku. Dopiero po ponownym klik-
niciu wygld przycisku przecznika powraca do stanu pocztkowego. Pooenie tytuu
przecznika mona okreli za pomoc waciwoci TextAlign, o sposobie wywietlania
dugiego tytuu decyduje waciwo WordWrap. Podobnie jak w przypadku etykiety, przy-
cisku polecenia, przycisku opcji i pola wyboru, na przycisku przecznika mona umieci
grafik (waciwoci Picture i PicturePosition) z ograniczonymi moliwociami jej for-
matowania. Analogicznie jak pole wyboru, przycisk przecznika ma waciwo Triple
State, ktra pozwala zdecydowa, czy formant moe przyjmowa jedn z dwch, czy
jedn z trzech wartoci (ta trzecia warto to stan nieokrelony). W odrnieniu od przyci-
sku opcji i pola wyboru nie ma waciwoci GroupName.
edycji zawartoci pola tekstowego, mona edytowa tylko zawarto powizanej komrki.
Pole tekstowe nie przejmuje formatowania tekstowej zawartoci powizanej komrki. Pole
tekstowe mona formatowa niezalenie, z tym e parametry czcionki bd odnosi si
do caego tekstu (nie mona sformatowa fragmentu zawartoci). Do pola tekstowego
mona rwnie przypisa makroinstrukcj, ktra bdzie wywoywana po klikniciu pola.
Takie pole tekstowe, cho z formalnego punktu widzenia nie jest formantem, wypenia
funkcj formantu.
Makroinstrukcje przypisywane
do formantw w arkuszu
Cech charakterystyczn formantw jest moliwo przypisania do nich makroinstrukcji,
ktre s wywoywane po klikniciu formantu, ewentualnie po zajciu okrelonego zdarze-
nia. Po umieszczeniu formantu w arkuszu mona przypisa do niego makroinstrukcj.
W tym celu naley klikn formant prawym klawiszem myszy (w przypadku formantw
ActiveX musi by przy tym wczony tryb projektowania). Nastpnie naley wybra
z menu podrcznego polecenie Przypisz makro, a potem zarejestrowa je (rejestrowanie
makroinstrukcji omwiono w rozdziale 22.) lub wybra Nowe i umieci jego tre w oknie
edytora kodu Visual Basica, ktre zostanie wywietlone. W przypadku formantw ActiveX
makroinstrukcj mona przypisa, wybierajc z menu podrcznego opcj Wywietl kod
lub z paska Przybornik formantw ikonk Wywietl kod programu. Jeszcze prociej mona
to zrobi, klikajc formant dwukrotnie lewym przyciskiem myszy (w trybie projektowania).
Po otwarciu edytora Visual Basica zobaczymy okienko kodu, w ktrym bdzie ju przy-
gotowany nagwek i zakoczenie procedury przypisywanej do formantu. Procedury
powizane z formantami formularza maj polskie nazwy, na przykad: Polewyboru3_
Kliknicie. Nazwa skada si standardowo z nazwy formantu wraz z numerem oraz
nazwy zdarzenia: Kliknicie lub Zmienianie, ale mona t nazw zmieni. Procedura
jest umieszczana w module oglnego przeznaczenia. Z jednym formantem formularza
mona zwiza tylko jedn makroinstrukcj.
w trakcie uywania arkusza, mona to zrobi tylko w kodzie VBA, piszc odpowiednie
procedury obsugi zdarze, czy to dotyczcych tych formantw, czy te arkusza jako
caoci.
Poniewa waciwo Value jest waciwoci domyln, mona jej nazw pomin
w odwoaniu.
Przykad wykorzystania
formantw w arkuszu
Formanty pokrte lub paskw przewijania mona wykorzysta na przykad do szybkiej
modyfikacji zakresu danych prezentowanych na wykresie. Kiedy przedstawiana jest dua
liczba danych pomiarowych, dobrze oprcz oglnego obrazu zalenoci mie moliwo
powikszenia wybranego fragmentu wykresu, aby dokadniej przyjrze si danym i ewen-
tualnie opisa lokalnie zwizek midzy nimi. Na wykresie oglnym obejmujcym cay
zakres danych zaznaczymy prostoktny fragment, ktry chcemy powikszy. Na tym wy-
kresie bdzie on opisany jako druga seria danych. Do zmiany pooenia powikszanego
fragmentu oraz jego wielkoci wykorzystamy paski przewijania. Jeden pasek bdzie suy
do przesuwania pocztku podzakresu zmiennej niezalenej, a drugi do zmiany wielko-
ci tego podzakresu. Drugi, powikszony wykres zostanie wykonany na podstawie danych
z wybranego podzakresu.
Ostatni argument mona pomin. Wyraenie naley wprowadzi jako formu tablicow
po wczeniejszym zaznaczeniu zakresu na wynik. Zakres powinien by na tyle duy, by
pomieci najwikszy przewidywany fragment danych. W skrajnym przypadku zakresy
fragmentu i danych oryginalnego wykresu mog by identyczne. W komrkach przekra-
czajcych nf wierszy zostan umieszczone kody bdu #N/D!, ale one nie przeszkadzaj
w wykonaniu wykresu (te punkty nie bd uwzgldniane).
Wykonujc pierwszy wykres, naley poda adres zakresu XY jako danych pierwszej serii,
a zakres w ktrym umieszczono funkcj PRZESUNICIE, jako dane drugiej serii. Trzeba
pamita, e przy wykonywaniu wykresu trzeba zaznacza obszary danych lub podawa
ich adresy, nie mona natomiast uywa nazw zakresw.
Na wykresie umiecimy jeszcze jedn seri danych, ktra bdzie przedstawia prostokt
otaczajcy wybrany fragment wykresu (to jest moja propozycja, Czytelnik moe zastoso-
wa inny sposb wyrnienia wybranego fragmentu). W tym celu naley w arkuszu zapi-
sa wsprzdne wierzchokw tego prostokta, ktre nastpnie zostan poczone lini
aman. Aby uzyska lini zamknit wsprzdne pierwszego wierzchoka, naley po-
wtrzy jako pity punkt. Wsprzdne xy lewego grnego wierzchoka prostokta mona
zapisa w postaci (przy zaoeniu, e wartoci x s uporzdkowane rosnco):
x: = INDEKS(XY; sf; 1) y: = MAX(PRZESUNICIE(XY; sf-1; 1; nf; 1))+marg
Wsprzdne prawego dolnego wierzchoka s odpowiednio rwne:
x: = INDEKS(XY; sf+nf-1; 1) y: = MIN(PRZESUNICIE(XY; sf-1; 1; nf; 1))-marg
Wielko marg okrela wielko przestrzeni nad i pod wykresem i musi by zdefiniowana
przez uytkownika stosownie do jego uznania (w skali wartoci zmiennej y). Wsprzdne
pozostaych wierzchokw maj takie same wartoci, tylko w innej konfiguracji.
Rysunek 23.3. Wykres przedstawiajcy duy zbir danych pomiarowych z zaznaczonym fragmentem
do powikszenia. Wielko i pooenie powikszanego fragmentu ustala si za pomoc paskw przewijania.
Poniej, na drugim wykresie, wybrany fragment w powikszeniu
Staraem si, o ile byo to moliwe, aby nazwy parametrw funkcji wyjaniay ich sens
i przeznaczenie. W wikszoci przypadkw zachowaem oryginalne nazewnictwo z pliku
pomocy polskiej wersji Excela [15], lecz w niektrych przypadkach zastosowaem bar-
dziej adekwatne nazwy. Dlatego prosz, by w przypadku korzystania z pliku pomocy [15]
zwraca uwag nie tylko na nazw parametru funkcji, ale rwnie na jego miejsce na licie
parametrw.
Chocia wszystkie opisy dotycz polskiej wersji Excela, zdecydowaem si podawa na-
zwy funkcji w obu wersjach jzykowych, aby uatwi czytelnikowi korzystanie z literatury
angielskojzycznej, ale rwnie dlatego, e piszc programy w VBA, moemy wykorzy-
stywa wiele funkcji arkuszowych, ale musimy przy tym posugiwa si ich oryginalnymi
nazwami angielskimi. Przy okazji zwracam uwag, e nazwy funkcji zawartych w dodatku
Analysis Toolpak (w tym wszystkich funkcji inynierskich) zostay przetumaczone dopiero
w wersji 2010, a we wczeniejszych wersjach wystpuj w oryginalnej wersji jzykowej.
LOG10
LOS() Zwraca liczb pseudolosow z przedziau [0, 1) o rwnomiernym rozkadzie.
*) Generuje now liczb losow po kadym przeliczeniu arkusza.
RAND
**)
LOS.ZAKR(dolna; grna) Podaje w wyniku cakowit liczb losow z wybranego zakresu liczb wcznie.
RANDBETWEEN Przy ponownym przeliczeniu arkusza generowana jest nowa liczba.
MACIERZ.ILOCZYN(tablica1; tablica2) Wynikiem jest iloczyn macierzowy dwu tablic. Wynik jest tablic o takiej 41
MMULT samej liczbie wierszy jak tablica1 i takiej samej liczbie kolumn jak tablica2. 132
MACIERZ.ODW(tablica) Wynikiem jest macierz odwrotna do macierzy przechowywanej w tablicy. 41
MINVERSE 132
MOD(liczba;dzielnik) Podaje warto reszty po podzieleniu liczby przez dzielnik. Wynik ma taki
*) sam znak jak dzielnik.
MOD
349
NAZWA_FUNKCJI Opis
350
SUMA.X2.P.Y2(tablica_x; tablica_y) Podaje w wyniku sum sum kwadratw odpowiadajcych sobie wartoci
SUMX2PY2 w dwch tablicach.
SUMA.XMY.2(tablica_x; tablica_y) Podaje w wyniku sum kwadratw rnic odpowiadajcych sobie wartoci
SUMXMY2 w dwch tablicach.
SUMY.POREDNIE(funkcja_nr; adres1; adres2;...) Wykonuje dziaanie okrelone przez argument funkcja_nr na danych okrelonych 274 276
do wersji 2003 przez adresy.
SUMY.CZCIOWE(funkcja_nr; adres1; adres2;...)
od wersji 2007
SUBTOTAL
TAN(kt) Funkcja podaje w wyniku tangens kta wyraonego w radianach.
*)
TAN
TANH(liczba) Podaje w wyniku tangens hiperboliczny liczby.
TANH
351
NAZWA_FUNKCJI Opis
352
NACHYLENIE(znane_y;znane_x) Daje w wyniku nachylenie wykresu regresji liniowej dla wszystkich punktw 181
SLOPE danych w znane_y i znane_x.
NORMALIZUJ(x; rednia; odchylenie_std) Daje w wyniku znormalizowan warto x w stosunku do rozkadu
STANDARDIZE charakteryzowanego przez argumenty rednia i odchylenie_std.
ODCH.KWADRATOWE(liczba1; liczba2; ...) Podaje warto sumy kwadratw odchyle punktw danych od ich redniej z prby.
DEVSQ
ODCH.STANDARD.POPUL(liczba1; liczba2; ...) Funkcja ta oblicza odchylenie standardowe caej populacji. Odchylenie standardowe
ODCH.STAND.POPUL(liczba1; liczba2; ...) jest miar tego, jak szeroko wartoci liczb s rozoone wok wartoci redniej.
w Excelu 2010
STDEVP
STDEV.P w Excelu 2010
ODCH.STANDARD.POPUL.A (warto1; warto2; ...) Funkcja ta oblicza odchylenie standardowe caej populacji wyraonej w argumentach,
STDEVPA uwzgldniajc wartoci tekstowe i logiczne.
357
NAZWA_FUNKCJI Opis
358
ROZK.F.PS(x; stopnie_swobody_l; stopnie_swobody_m) Funkcj t mona stosowa do porwnywania wariancji dwch zbiorw danych.
w Excelu 2010
FDIST
F.DIST.RT w Excelu 2010
ROZKAD.F.ODW(prawdopdb; stopnie_swobody_l; Podaje warto funkcji odwrotnej prawostronnego rozkadu prawdopodobiestwa F
stopnie_swobody_m) Snedecora. Jeli p = ROZKAD.F(x;...), to ROZKAD.F.ODW(p;...) = x.
ROZK.F.ODWR.PS(prawdopdb; stopnie_swobody_l;
stopnie_swobody_m) w Excelu 2010
FINV
F.INV.RT w Excelu 2010
ROZK.F(x; stopnie_swobody_l; stopnie_swobody_m; Podaje warto lewostronnego rozkadu (skumulowanego lub gstoci)
****)
czy_skumulowany) prawdopodobiestwa F Snedecora.
F.DIST
361
NAZWA_FUNKCJI Opis
362
DATA(rok; miesic; dzie) Zwraca liczb cakowit reprezentujc okrelon dat. Jeli przed wprowadzeniem
DATE funkcji komrka miaa format Oglny, wynik zostaje sformatowany jako Data.
DATA.WARTO(tekst_daty) Zwraca liczb kolejn daty reprezentowanej przez argument tekst_daty.
DATEVALUE
DZI() Zwraca liczb kolejn biecej daty. Jeli przed wprowadzeniem funkcji
TODAY komrka miaa format Oglny, to wynik jest formatowany jako Data.
GODZINA(liczba_seryjna) Zwraca godzin wartoci czasu. Liczba_seryjna to czas zawierajcy godzin, ktr
HOUR naley znale. Czas moe by wprowadzany jako cig tekstowy w cudzysowie
(na przykad "6:45 PM"), jako liczba w systemie dziesitnym (na przykad
jako warto 0,78125 reprezentujca czas 6:45 PM) lub jako wynik formuy.
Godzina jest podawana jako liczba cakowita z zakresu od 0 (pnoc) do 23
(11:00 wieczr).
373
NAZWA_FUNKCJI Opis
374
D E
dane, 13 E, 38
DATA, 373 edycja
DATA.WARTO, 373 komrki, 26
Date, 290 nazwy, 18
DATE, 373 Edytowanie nazwy, 20, 57
DATEVALUE, 373 ekstrapolacja rozwizania rwnania Laplacea, 232
DAVERAGE, 369 elektrolizer, 229
DCOUNT, 368 elektrotechnika, 257
DCOUNTA, 368 elementy tablicy, 37
Debug, 311 Else, 306, 307
DEC2BIN, 243, 370 ElseIf, 306, 307
DEC2HEX, 244, 371 End Function, 288
DEC2OCT, 370 End If, 306, 307
definiowanie End Select, 307, 308
funkcje, 302 End Sub, 284
nazwy, 20 Eqv, 293
tabele, 57 ERF, 371
Definiuj nazw, 18, 20, 25, 118 ERF.PRECISE, 371
DEGREES, 351 ERFC, 371
deklaracja ERFC.PRECISE, 371
tablice, 300 ERROR.TYPE, 355
zmienne, 289 Etykieta, 331, 333, 337
Delay, 339, 340 Evaluate, 315, 317
DELTA, 370 EXACT, 367
Design Mode, 311 Excel, 7, 11
DEVSQ, 357 Exit Do, 310
DGET, 369 Exit For, 309
Dim, 289, 290, 300 Exit Function, 305
D, 367 Exit Sub, 305
DMAX, 369 Exp, 294
DMIN, 369 EXP, 25, 106, 122, 349
Do UntilLoop, 309 EXP.LICZBY.ZESP, 255, 371
Do WhileLoop, 309 EXPON.DIST, 361
Do...Loop, 309 EXPONDIST, 361
DoLoop Until, 310
Naukowy, 14 L
Procentowy, 14
Uamkowy, 14 cze komrki, 334
zapis naukowy, 14 czenie tablic, 48
liczby zespolone, 137, 249, 250
argument, 251
cz rzeczywista, 250
M
cz urojona, 250 macierz jednostkowa, 38
dziaania arytmetyczne, 252 generowanie, 52
format wywietlania, 256 macierz kwadratowa, 37
funkcje elementarne z argumentem elementy diagonalne, 37
zespolonym, 255 gwna przektna, 37
funkcje operujce na liczbach zespolonych, 250 MACIERZ.ILOCZYN, 41, 132, 349
funkcje trygonometryczne, 255 MACIERZ.ODW, 41, 132, 349
interpretacja geometryczna, 251 macierze, 37
jednostka urojona, 250 elementy, 37
logarytm zespolony, 255 macierz diagonalna, 38
modu, 251 macierz odwrotna, 41, 132
pierwiastkowanie, 253 macierz symetryczna, 38
posta trygonometryczna, 251 mnoenie skalarne, 40
posta wykadnicza, 252 transpozycja, 41
potgowanie, 253 ukad rwna liniowych, 131
rwno liczb zespolonych, 252 wektor, 37
stosowanie w elektrotechnice, 257 wyznacznik, 38, 41
warto gwna logarytmu, 255 makra, 282, 283
wzr Eulera, 252 skoroszyt makr osobistych, 286
Like, 292 Makra, 286
LINEST, 360 makroinstrukcje, 282
linia trendu, 78 makropolecenia, 282, 283
LinkedCell, 337, 338, 339, 341, 345 nazwy, 287
ListBox, 331 przypisanie do formantw, 343
ListFillRange, 338 rejestracja, 284
ListStyle, 338, 340 testowanie, 310
ListWidth, 340 uruchamianie, 283, 286, 310
listy, 261 Maksymalna liczba iteracji, 86
literay tablicowe, 38 Maksymalna zmiana, 86
LN, 123, 349 mantysa, 14
LN.LICZBY.ZESP, 255, 371 MATCH, 353
Locals, 311 MatchEntry, 340
Locals Window, 311 MatchRequired, 340
Log, 293, 294 Max, 339
LOG, 349 MAX, 146, 357
LOG10, 349 MAX.A, 357
LOG10.LICZBY.ZESP, 255, 371 MAX.K, 278, 357
LOG2.LICZBY.ZESP, 255, 372 MAXA, 357
logarytm zespolony, 255 MaxChange, 319
LOGEST, 359 MaxLength, 339, 340
LOGINV, 363 MDETERM, 352
LOGNORM.DIST, 363 MEDIAN, 357
LOGNORM.INV, 363 MEDIANA, 357
LOGNORMDIST, 363 Meneder nazw, 19, 20, 21, 30
Long, 290, 339 methods, 295
LOOKUP, 354 metoda 3/8, 99
Loop, 310 metoda ekstrapolacji, 112
LOS, 349 metoda Eulera, 208
LOS.ZAKR, 349 modyfikacje, 213
Lotus 1-2-3, 36 metoda GoalSeek, 318
LUB, 267, 269, 352 metoda iteracji prostej, 140