Banner

sobota, 11. februára 2012

Funkcie (4. diel)

 

Po dnešnom dni, plnom pozitívnej energie z popoludňajšieho behu som sa rozhodol učiniť krátky proces s matematickými funkciami. Výsledok si samozrejme môžete stiahnuť tu.

Matematické funkcie patria spolu s textovými a databázovými k povezme najpoužívanejším v aplikácií. Ja preto spomeniem len niektoré, aby ste sa dokázali oboznámiť a zároveň nezamotali ako v bežných učebniciach alebo skriptách. Každopádne sa nemáte čoho báť, pretože väčšinu funkcií v praxi budeme používať pri aplikovanej štatistike a financiách.

Začnime prvým problémom a to je zaokrúhlenie čísel. V praxi som sa pri tvorbe nestretol so špeciálnymi požiadavkami na zaokrúhlenie, avšak pri technickej analýze alebo iných sférach môžete potrebovať funkciu, ktorá číslo zaokrúhli hore alebo dole. Pri tvorbe reportov možno potrebujete len celú časť čísla, teda bez desatinných miest. Ak to zhrniem, funkcie Round, Rounddown a Roundup sú klasické funkcie zaokrúhľovania, u ktorých si určíte počet desatinných miest na zaokrúhlenie. Funkcie Int a Trunc sa na prvý pohľad nelíšia, rozdiel je však v tom, že Int zaokrúhli číslo na dolnú celú časť (napr. 7,9 zaokrúhli na 7) a Trunc doslova oddelí len celú časť, bez ohľadu na desatinné miesta. Všetky funkcie sú k dispozícii v sample file, takže odporúčam precvičovať, precvičovať a ešte raz precvičovať.

Prejdime k zaujímavejšej a v praxi rozhodne používanejšej problematike. Matice, pre tých ktorí sa s nimi nikdy v živote nestretli, máte problém! Tak hurá k jeho vyriešeniu, nenechám vás predsa v štichu! Začnem nudnou teoretickou definíciou, takže matica je kombinácia prvkov z množiny R do m riadkov a n stĺpcov. V praxi si môžete predstaviť napríklad vašu nemocnicu, ktorá je v hroznom stave! Táto nemocnica získa nového a skúseného managera, ktorý nenechá nič na náhodu a rozhodne sa optimalizovať všetko čo sa len dá a preto začne prieskumom kvality služieb, poskytovaných nemocnicou. Z terénneho prieskumu bude mať k dispozícii tabuľku, kde stĺpce budú predstavovať rôzne body šetrenia a riadky zase jednotliví respondenti, teda pacienti. Táto tabuľka o n stĺpoch a m riadkoch je matica.  

V praxi nikdy nie je na škodu si maticu pomenovať, označte si prosím v sample file maticu o rozmeroch B14:E17.image Potom máte dve možnosti ako jej priradiť názov. Prvá je prostredníctvom ľavého, horného okienka, v ktorom sa zobrazuje poloha kurzora, resp. ktorá bunka je označená. imageStačí iba ak zmažete pôvodnú polohu bunky, napíšete pomenovanie matice a stlačíte Enter. Pomenujme si názov matice podľa krstného mena. Mňa momentálneimage napadlo meno EVA. Po pomenovaní matice si môžete výsledok samozrejme overiť a to jednoduchým kliknutím na Name Manager v záložke Formulas. Po kliknutí sa objaví nové dialógové okno, v ktorom môžete vytvoriť nový názov matice (oblasti) alebo editovať niektorý z pôvodných názvov, poprípade vymazať niektorý z nich. Práve táto možnosť cez záložku Formulas je zároveň tou druhou možnosťou pomenovaniaimage oblasti. Určite si kladiete otázku, prečo to všetko je vlastne potrebné. Ak si predstavíte bunku, v ktorej budete mať kombináciu veľkého množstva funkcií, pre lepšiu orientáciu je vhodné oblasti výpočtu formulovať menom, ako exaktnou adresou v liste! Ako demonštráciu uvediem funkciu Minverse, ktorá vráti inverznú hodnotu bunky, poprípade matíc.Čo je podľa vás prehľadnejšie: =MINVERSE(EVA) alebo =MINVERSE(B14:E17) ? Odpoveď je myslím si, že jednoznačná. Pre úplnosť, musím dodať, že ak chcete vytvoriť inverznú maticu k matici EVA, potrebujete si označiť potrebné množstvo riadkov a stĺpcov (4 riadky a stĺpce), po označení napísať syntax, teda =MINVERSE(EVA) a stlačiť Ctrl + Shift + Enter. Takto by ste mali dostať inverznú maticu, pre overenie si po kliknutí na ňu všimnite v príkazovom riadku, že syntax je v {…} zátvorke, to znamená platnosť pre celú oblasť, takže nebudete môcť zmazať časť matice, ale iba celú. Inverznú maticu si pomenujem napríklad ADAM. Pre kontrolu správnosti, po vynásobení ADAM-a a EVA-y by sme mali dostať nula-jednotkovú maticu (=MMULT(EVA;ADAM)).

Funkcie Sumif a Sumifs patria spolu s blízkymi príbuznými Countif a Countifs k veľmi obľúbeným, my si však názorne ukážeme len podmienené sčítanie, nakoľko Countif a Countifs sú kvázi skoro totožné, rozdiel je v tom, že oni nesčítavajú obsah buniek, ale množstvo buniek s adekvátnym obsahom (počet VW model Golf). Sumif  umožňuje využiť len jednu podmienku, =SUMIF(B22:B36;"VW";D22:D36), na rozdiel od užitočnejšieho Sumifs s možnosťou viacnásobného podmieneného sčítania =SUMIFS(D22:D36;B22:B36;"VW";C22:C36;"Golf").

Celkom zábavná časť Excelu je použitie náhodných čísel (nie ich generácia). Predstavte si, že potrebujete mať k dispozícii náhodné čísla z konkrétneho intervalu hodnôt. imagePre výber od 0 do 100 stačí použiť =Rand()*100. Ak však hovoríme o pestrejšom intervale, vďačnejšia je funkcia Randbetween, stačí len zadať začiatok a koniec intervalu vyhovujúcich čísel. Ak si myslíte, že pomocou Rand funkcie sa to nedá, vyvediem vás z omylu takto: =RAND()*(Horné číslo intervalu-Dolné číslo intervalu)+Dolné číslo intervalu (viď obrázok). V prípade aktualizácie dát použite klávesu F9.

Hovorí vám niečo pojem Skalárny súčin? Ak nie, tak znova začnem teoretickou definíciou, ktorá znie: Majme dva vektory U a V. Skalárny súčin týchto vektorov je súčin veľkosti vektorov a kosínusu uhla, ktorý zvierajú.

 alt: u\cdot v=|u|\cdot|v|\cdot\cos\alpha,

V praxi ak máme tie dva vektory definované takto: U = (u1, u2) a V = (v1, v2), potom ich skalárny súčin je reálne číslo, NIE vektor!

alt: u\cdot v=u_1v_1+u_2v_2

A tým pádom môžeme po dosadení do predchádzajúceho vzorca odvodiť výpočet kosínusu uhla:

alt: \cos\alpha=\frac{u\cdot v}{|u|\cdot|v|}=\frac{u_1v_1+u_2v_2}{\sqrt{u_1^2+u_2^2}\cdot\sqrt{v_1^2+v_2^2}}

Tak to by bola matematika, v Exceli nám bude postačovať funkcia Sumproduct, s definovanými ROVNAKO veľkými vektormi, napr. =SUMPRODUCT(D55:D63;E55:E63). Ako posledné funkcie zmienim, povedzme delikatesy typu najmenší spoločný násobok Lcm, najväčší spoločný deliteľ Gcd a taktiež prevod čísla na rímske prostredníctvom Roman. Uvedomujem si, že v tomto článku je málo obrázkov a žiadne video, no vzhľadom na komplexnosť vzorcov som to nepovažoval za potrebné, ale v prípade akýchkoľvek nezrovnalostí som ochotný vaše pripomienky riešiť. Takže netreba sa báť, stačí len čítať, skúšať a hrať sa s číslami vo vzorcoch. Dúfam, že to nebolo ťažké a v budúcom poste pokračujeme maratónom funkcií.

Žiadne komentáre:

Zverejnenie komentára

Poznámka: Komentár môže zverejniť iba člen tohto blogu.