Ähavφme v Excelu

MaticovΘ poΦty a n∞kterΘ algoritmy

autor: Ing. Petr PechßΦek

http://officir.web3.cz

Ulo₧it na disk SeÜity Excelu s uveden²mi p°φklady (komprese ZIP)

Na ·vod

MaticovΘ poΦty pat°φ v Excelu k h∙°e pochopiteln²m a tedy mßlo oblφben²m. NaÜt∞stφ pro b∞₧nΘ u₧itφ jsou k dispozici ji₧ znßmΘ postupy a tak u₧ivateli postaΦφ napasovat zve°ejn∞n² vzorec do svΘho seÜitu. P°φloha k tomuto tΘmatu obsahuje p°es 60 p°φklad∙ na vφce jak 200 °ßdcφch.

Pojmy

Matice
Matice je skupina hodnot, se kterou se pracuje jako s celkem. Na matici se ve vzorcφch listu odkazujeme maticov²mi vzorci a to adresou oblasti, nap°. A1:C5. Pro lepÜφ p°iblφ₧enφ si sami sebe p°edstavte v roli dirigenta "semknutΘ matice" hudebnφho t∞lesa, kterΘ sestßvß z "hodnotn²ch" muzikant∙.
Maticovß konstanta
Maticovou konstantu tvo°φ skupina konstantnφch hodnot (nap°φklad Φφseln²ch, textov²ch, pravdivostnφch apod.). Za "pravou" maticovou konstantu se pova₧uje takovß sada konstant, kterß se nevyskytuje v oblasti listu, ale pouze v maticovΘm vzorci (dalo by se °φci, ₧e je to skupina hodnot, kterß nemß svΘ ulo₧iÜt∞). Maticovou konstantu z p°φkladu by mohli tvo°it ti hudebnφci, kte°φ se ·Φastnφ vÜech zkouÜek.

Typ maticovΘ konstanty

  • Vodorovnß (1D, °ßdkovß) matice
  • Svislß (1D, sloupcovß) matice
  • SmφÜenß (2D) matice

Maticov² vzorec
Maticov² vzorec je vzorec zpracovßvajφcφ jednu Φi vφce matic, resp. maticov²ch konstant. Jeho v²sledkem m∙₧e b²t hodnota zobrazitelnß v jednΘ bu≥ce nebo op∞t matice. V∞zte, ₧e se jednß o Φesk² p°eklad anglickΘho "array formula", co₧ ·pln∞ nekoresponduje. Setkat se tak m∙₧ete i s pojmem "vzorec polφ". Pokud se op∞t vrßtφm k p°iblφ₧enφ v²Üe, pak maticov²m vzorcem (nßstrojem pro prßci s maticφ) je taktovka. A v²sledek? P°i °φzenφ laikem sm∞s nesourod²ch zvuk∙, p°i °φzenφ profesionßlem uchu ladφcφ melodie.

Pozn. Prßce se skupinou hodnot jako celkem je toto₧nß s myÜlenkou "pro ka₧d² prvek z celku ud∞lej", jin²mi slovy, je jak²msi programßtorsk²m cyklem "for each ... in ...". Pokud se autorovi hudby bude zdßt skladba p°ehrßvßna pon∞kud vla₧n∞, nep°istoupφ k hudebnφk∙m jednotliv∞, n²br₧ p∙jde za dirigentem a °ekno n∞co ve smyslu "a¥ vÜichni p°ehrajφ znovu poslednφ t°i takty a vφce sforzato".

Zßpis maticovΘ konstanty

Ka₧dß konstanta mß sv∙j °ßdkov² i sloupcov² index a je vlastn∞ prvkem pole. Polo₧ky v °ßdku se odd∞lujφ st°ednφkem (;), °ßdek se ukonΦuje svislicφ (|). Text je uzav°en v uvozovkßch, pravdivostnφ hodnoty nikoliv. ╚φselnΘ hodnoty se vklßdajφ normßln∞.

{1;2;3|"pond∞lφ";"·ter²";"st°eda"|PRAVDA;NEPRAVDA;PRAVDA}

P°φklad je uveden nφ₧e v textu.

Pozn. Je smutnΘ, ₧e v 80% dostupnΘ literatury (vΦetn∞ nßpov∞dy pro Excel 2000) se p°ekladatel nenamßhal si svou nßpov∞du ov∞°it. Vid∞l jsem dokonce i text, ve kterΘm se ·dajn∞ majφ pou₧φvat jako odd∞lovaΦe teΦky! V anglick²ch verzφch se mφsto naÜich st°ednφk∙ u₧φvajφ Φßrky a mφsto svislic st°ednφky. Pro ·plnost dodßvßm, ₧e st°ednφk vlo₧φte stiskem vlnovky (tilda, pod ESC), svislici obdr₧φte po stisku Ctrl+Alt+W nebo kombinacφ Alt+0124 na numerickΘ klßvesnici.

Zßpis maticovΘho vzorce

Podtitulek by mohl znφt "a poΦßtky chaosu..". Maticov² vzorec je takov² vzorec, jeho₧ editace je ukonΦena stiskem Ctrl+Shift+Enter. Po tΘto akci Excel uzav°e vßÜ vzorec do slo₧en²ch zßvorek. Nesna₧te se Excelu pomßhat a tyto vn∞jÜφ zßvorky dopisovat ruΦn∞! Excel by takov² zßpis bral jako prost² text. Ale! T²kß se to pouze vn∞jÜφch zßvorek. Pokud ve vzorcφch pou₧φvßte maticou konstantu, pak jejφ hraniΦnφ zßvorky vypsat musφte. Berte to tak, ₧e onen stisk Ctrl+Shift+Enter je vaÜφm tajn²m signßlem pro Excel "posφlßm matici" a vrßcenΘ vn∞jÜφ zßvorky jako odpov∞∩ Excelu "potvrzuji matici".

P°φklad v²pisu z °ßdk∙ vzorc∙, kdy maticov² vzorec pracuje s maticφ A77:A83

{=SUMA(KDYÄ(A77:A83>5;1))-SUMA(KDYÄ(A77:A83>=9;1))}

V maticovΘm vzorci se nemohou objevit vzorce ani prom∞nnΘ (nap°φklad {2^6;3^6;5^6}, {x^6;3^6;5^6}). V²raz {A2;B2;C2} je takΘ neplatn², sprßvn² je zßpis {A2:C2}.

Zm∞na maticovΘho vzorce

Obsah bu≥ky, kterß je souΦßstφ maticovΘho vzorce, nelze m∞nit klasick²m zp∙sobem (potvrzenφ klßvesou Enter). Pou₧itφm Ctrl+Shift+Enter zm∞nφte vzorec pro celou oblast, k nφ₧ nßle₧φ. Pro zm∞nu maticovΘho vzorce tedy nemusφte vybφrat celou oblast. Pokud ji p°eci jen chcete zv²raznit, pou₧ijte p°i vybranΘ bu≥ce maticovΘho vzorce zkratkovou klßvesu Ctrl+Shift+/ (lomφtko na alfanumerickΘ klßvesnici) nebo Ctrl+/ (lomφtko na numerickΘ Φßsti klßvesnice).
S bu≥kou, je₧ je souΦßstφ maticovΘho vzorce, nelze manipulovat (p°esun, odstran∞nφ, vklßdßnφ, ...). Formßt bu≥ky je p°itom libovoln∞ p°izp∙sobiteln² pro ka₧dou bu≥ku matice. MaticovΘ vzorce nelze pou₧φt pro slouΦenΘ bu≥ky.

"Dost, chceme p°φklady!"

"Nepravß" maticovß konstanta se nachßzφ na listu a v₧dy je doprovßzena maticov²m vzorcem.

Nepravß maticovß konstanta

Slo₧enΘ zßvorky ohraniΦujφcφ "pravou" maticovou konstantu se do vzorce pφÜφ ruΦn∞, vn∞jÜφ pro maticov² vzorec dodß Excel sßm.

Pravß maticovß konstanta

Chceme-li vybrat prvek z jedno°ßdkovΘ matice, musφme pou₧φt funkci INDEX. Nenφ mo₧nΘ obrßtit se k funkci ZVOLIT. To je v souladu s faktem, ₧e matice mß vlastnosti pole.

V²b∞r prvku z maticovΘ konstanty

DalÜφ p°φklad ukazuje v²hodu maticovΘ konstanty, kdy nenφ zapot°ebφ samostatnΘ tabulky.

Vyhledßvßnφ v matici

Pamatujete si jeÜt∞, ₧e je mo₧nΘ vytvo°it nejen pojmenovanou oblast, ale i pojmenovanou konstantu? Stejn∞ tak m∙₧ete vytvo°it pojmenovanou maticovou konstantu a na tu se potΘ odkazovat jmΘnem kdekoliv ve vzorcφch. Zp°ehlednφ se tak zßpis vzorce a snφ₧φ se riziko p°epsßnφ.

Pojmenovanß maticovß konstanta

Prvnφ obrßzek z t∞ch nßsledujφcφch ukazuje, ₧e Excel mß leckdy problΘmy s logick²mi hodnotami. Nejinak je tomu i p°i pou₧itφ v maticov²ch vzorcφch. Zßkladnφ chyby a jejich °eÜenφ najdete v p°φloze. TΘma "logika" bude jeÜt∞ zpracovßno samostatn∞.

Logick² paradox Maticovß logika

Revers pole hodnot je lah∙dkou pro maticovΘ vzorce. Ne tak u₧ pro pochopenφ principu Φinnosti. V²sledkem maticovΘho vzorce je v danΘm p°φpad∞ hodnota. Pro ostatnφ polo₧ky p°etßhn∞te bu≥ku za ·chytn² bod sm∞rem dol∙.

Revers oblasti

P°evracenφ oblasti pat°φ rovn∞₧ do repertoßru maticov²ch vzorc∙. Vrßcena je op∞t jedna hodnota a vzorec je t°eba p°etßhnout do dalÜφch bun∞k.

P°evracenφ oblasti

╚ast²m po₧adavkem je suma n-nejv∞tÜφch Φi n-nejmenÜφch hodnot z oblasti.

Prßce s n-t²mi polo₧kami

Otßzku "Nenφ mezi vßmi sleΦna jmΘnem AdΘla?" poklßdß nßsledujφcφ vzorec.

Hledß se...

Funkce NEBO ve spojenφ s maticov²m vzorcem m∙₧e takΘ nahradit n∞kolik funkcφ IF.

Bu∩ a nebo...

Mapu vyhodnocenφ m∞°enφ lze takΘ ud∞lat s maticov²mi vzorci.

Mapa

PoΦet znak∙ obsa₧en²ch v °et∞zci lze spoΦφtat rovn∞₧ aplikacφ maticovΘho vzorce.

PoΦet znak∙

Jak sumarizovat p°φjmy z ka₧dΘho druhΘho dne v m∞sφcφ? Podφvejte se na obrßzek.

Ka₧d² n-t²

Zopakovat si m∙₧ete i prvoΦφsla..

PrvoΦφslo

ZjiÜ¥ovßnφ v²skytu duplicitnφch hodnot by si zaslou₧ilo samostanou kapitolu...

Duplikßty

Kumulativnφ souΦet u₧ nynφ takΘ budete um∞t zpracovat... V²sledkem je jedna hodnota a vzorec je nutnΘ p°ekopφrovat sm∞rem dol∙ ta₧enφm.

Kumulativnφ souΦet

V²hody a nev²hody maticov²ch vzorc∙

V²hody
Obecn∞ jsou mΘn∞ nßroΦnΘ na pam∞t (z osobnφ zkuÜenosti °φkßm "jak kdy"), jsou odoln∞jÜφ v∙Φi necht∞nΘmu p°epsßnφ, nepot°ebujφ pomocnΘ tabulky a meziv²poΦty a umo₧≥ujφ jinak obtφ₧n∞ proveditelnΘ operace s daty.
Nev²hody
Jsou h∙°e srozumitelnΘ, s rostoucφ velikostφ matic klesß p°epoΦφtßvacφ rychlost listu, je nutnΘ pamatovat na trojklßvesu Ctrl+Shift+Enter.

Krßtce a struΦn∞: MaticovΘ vzorce se uplatnφ tam, kdy pot°ebßm podmφn∞nΘho souΦtu a poΦtu dochßzφ dech funkcφm typu SUMA, PO╚ET a funkcφm pro vyhledßvßnφ. Uplat≥ujφ se dßle u p°eklßp∞nφ polφ a p°i zφskßvßnφ unikßtnφch polo₧ek (toto tΘma bude samostatn∞ zpracovßno Φasem).

Matice jako matice

Matice 3x3

Pokud jste se seznßmili s matematikou nad rßmec st°ednφ Ükoly, pak jste se zcela jist∞ s pojmem matice setkali. Vy ostatnφ tento odstavec nep°eskakujte, ₧ßdnΘ velkΘ teorie vßs neΦekajφ! Budeme se bavit o takovΘ matici (v pravΘm matematickΘm slova smyslu), s jejφ₧ pomocφ najdeme °eÜenφ soustavy t°φ lineßrnφch rovnic o t°ech neznßm²ch. Po osvojenφ si uvedenΘho postupu budete sami schopni vy°eÜit jakoukoliv °eÜitelnou soustavu n-rovnic o n-neznßm²ch.

T°i neznßmΘ zde p°edstavujφ x1, x2 a x3. Zßkladnφ matici A (stßle jeÜt∞ nemluvφme o matici ve smyslu Excelu) sestavφme tak, ₧e ΦφselnΘ konstanty u p°φsluÜn²ch prom∞nn²ch zapφÜeme do tabulky. Co °ßdek matice, to konstanty z jednΘ rovnice, p°iΦem₧ za chyb∞jφcφ prom∞nnou (x1 v druhΘ a t°etφ rovnici) si dosadφme 0. Dßle zpracujeme tzv. "rozÜφ°enou matici" - ano, pouze vpravo k matici p°ilepφme sloupec s konstantami pravΘ Φßsti rovnic. Nic na tom nenφ, ₧e?

Vrhn∞me se proto k hledßnφ °eÜenφ, kdy u₧ vyu₧ijeme matice ve smyslu Excelu. Pot°ebovat budeme jednu skuteΦnou matici (tzv. "inverznφ matici"). Cφle dosßhneme pomocφ maticov²ch vzorc∙. Po prvnφm pou₧itφ bude v²sledkem matice, ve druhΘm a dalÜφch hodnota zobrazitelnß v jedinΘ bu≥ce (3 °eÜenφ). Teorii vztahujφcφ se k inverznφ matici ponechme stranou.

Inverznφ matice ╪eÜenφ matice

Postup je tent²₧ i pro jin² poΦet rovnic a jim odpovφdajφcφ poΦet prom∞nn²ch. Zb²vß jen °φci oblφbenou v∞tu pedagoga: "Nezapome≥te na zkouÜku."

Pozn. Neple¥te si funkce SOU╚IN.SKAL┴RN═ a SOU╚IN.MATIC - viz nßpov∞da.

PoΦty s maticemi majφ svß pravidla. Uvßdφm zde jen to nejpou₧φvan∞jÜφ, jφm₧ se °φdφ nßsobenφ dvou matic (znaΦenφ upraveno k obrßzku):

  • P°i nßsobenφ dvou matic musφ b²t poΦet sloupc∙ prvnφ matice stejn² jako poΦet °ßdku druhΘ matice, tj. nßsobφme A(m,n)*C(n,p). Lidov∞ °eΦeno, Üφ°ka prvnφ matice je stejnß jako v²Üka matice druhΘ co do poΦtu hodnot. V²slednß matice E mß velikost E(m,p).

Nßsobenφ matic

DoporuΦenß literatura:

Hans Jochen Bartsch: MatematickΘ vzorce, Mladß fronta, 1996
jakßkoliv matematickß skripta pro prvnφ roΦnφk technickΘ vysokΘ Ükoly

Bonus

Bonus - kalendß°
Nenechte se odradit "Üφlen²m" megavzorcem z obrßzku, jen₧ vracφ matici. Co je jeho cφlem? V²pis kalendß°nφch dn∙ aktußlnφho m∞sφce do uspo°ßdanΘ tabulky. Maticov² vzorec nenφ sice nejkratÜφ mo₧n², ale svou funkci plnφ...

Ulo₧it na disk SeÜity Excelu s uveden²mi p°φklady (komprese ZIP)

pro Φasopis