V druhé části tématu KDYŽ se řekne Excelu se budeme věnovat složitějším výrokům.
První díl:
KDYŽ se řekne Excelu (1)
Jak už víte, funkce KDYŽ na místě svého prvního parametru očekává nějaké tvrzení (výrok, test), jehož výsledkem je pravdivostní hodnota PRAVDA/NEPRAVDA. Na základě toho pak vrací výsledek vzorce či hodnotu. Zatím jsme se ale zabývali pouze jednoduchými výroky. V praxi je situace leckdy složitější a rozhodování se účastní více proměnných (dílčích testů, výroků). Každý z nich musíme být schopni vyhodnotit jako PRAVDA/NEPRAVDA a existuje mezi nimi vztah (předpis chování, funkce). Ten určuje, za jakých okolností je celek vyhodnocen jak PRAVDA/NEPRAVDA.
Nejčastěji se uplatňují dva vztahy mezi výroky – A (AND) a NEBO (OR). První z nich říká, že dva výroky X a Y budou vyhodnoceny jako PRAVDA, pokud je každý z nich sám o sobě pravdivý (tj. platí všechny „podmínky“ současně). Druhý je definován tak, že aby byl výsledek výroků X a Y vyhodnocen jako PRAVDA, pak stačí, aby „alespoň jeden z nich“ byl pravdivý (tj. platí první, druhá, nebo obě „podmínky“ současně). A (AND) a NEBO (OR) se také někdy říká logické spojky.
Příklady složených výroků (testů, podmínek):
Manželství je právoplatné, pokud muž i žena řeknou dobrovolně své „ano“ (logická spojka A).
Účastník výběrového řízení bude přijat, pokud vystudoval daný obor nebo v něm má praxi, a současně vlastní řidičský průkaz (logická spojka NEBO, A).
Vesnice má naději jen tehdy, pokud alespoň jeden z místních unikne z obležení a přivede pomoc (logická spojka NEBO).
Buď jsi génius, nebo blázen, nebo obojí (logická spojka NEBO).
Rok je přestupný, pokud je dělitelný 4 a současně není dělitelný 100, nebo je dělitelný 400 (logická spojka A, NEBO).
V matematice (elektrotechnice) se dané problematice věnuje tzv. Booleova algebra. Namísto našeho PRAVDA/NEPRAVDA se v ní pracuje s ekvivalenty 1/0, definují se pravdivostní tabulky, zákony pro operace s logickýmu hodnotami a následně metodika, jež pomáhá minimalizovat počet elektrotechnických součástek k řešení problémů (hradla, NAND prvky).
Na listu (českého) Excelu namísto logické spojky AND existuje funkce A(), OR je zastoupena funkcí NEBO(), a kupříkladu pro negaci výroku se obracíme na funkci NE().
Teorii je nutné vstřebat uvedením alespoň dvou příkladů.
Pro úplnost uvádím rozšířenou pravdivostní tabulku pro dva vstupy. Je otočena o devadesát stupňů a možná pro někoho zpočátku hůře čitelná.
V tuto chvíli byste si měli již poradit s řadou složitějších testů. Ve funkcích A a NEBO přirozeně nemusí být jen dva parametry (testy, podmínky).
Složené podmínky se neobjevují jen coby první parametr funkce KDYŽ nebo v podmíněném formátování. Narazíte na ně i v automatickém filtru.
Automatický filtr zvládne pouze dvě podmínky a jednoduchý vztah mezi nimi (A, NEBO). Na obrázku filtrujeme data v rozsahu od-do (větší rovno než … a současně menší rovno než …). Je-li filtr komplikovanější, přesuneme svou pozornost k rozšířenému filtru (karta Data / skupina Seřadit a filtrovat, Upřesnit).
Snímek zachycuje filtr při mém rozhodování se o koupi základní desky do počítače. Buď si objednám libovolnou desku, která nestojí ani 1500 Kč, nebo si připlatím a vezmu desku dražší než 1600 Kč, ale jen za předpokladu, že nemá ve svém značení písmeno „V“ (byl jsem před takovým typem varován). Pozn. Povšimněte si, že s v kritériu filtru objevuje zástupný symbol hvězdičky pro žádný, jeden nebo více libovolných znaků.
Pokud nedokážeme mezi vstupy snadno definovat vztah, je nutné zpracovat úplnou pravdivostní tabulku a použít techniku Karnaughovy mapy, případně metodu Quine-McCluskey.
Příklad pro více vstupů
Dodnes si vybavuji úlohu ze střední školy. Zní takto: Odsávání u tří pecí A, B a C se má spustit, pokud jsou v provozu libovolné dvě z nich. V pravdivostní tabulce představuje stav „pec je v provozu“, resp. „odsávání je v provozu“ hodnota 1. Odsávání se má samozřejmě spustit i v případě, že běží všechny tři pece.
Písmeno X označuje v pravdivostní tabulce požadovaný stav odsávání a ve finále i celou funkci. Hodnoty přeneseme do jiné podoby (Karnaughovy mapy, její plošné provedení jí předurčuje max. 4 vstupní hodnoty) a graficky vyhodnotíme. Zjednodušeně řečeno vybíráme maximalistické obdélníkové oblasti (tzv. domény) sousedících jedniček o počtu 2n. Jejich popis se objeví v součtu funkce X.
Karnaughovými mapami se nemusíte trápit. Ačkoliv já se s nimi ještě kreslil při řešení sedmisegmentového displeje (klasické digitální číslo na hodinách řízené ze 4 vstupů), vám stačí použít aplikaci, např. Karnaugh Map Minimizer.
Pozor na jednu nepříjemnou věc. Funkce A a NEBO nefungují korektně v maticových vzorcích. Už kdysi dávno mě na tuto skutečnost upozornil pan Vladimír Graf. Namísto nich je nutné použít opis pro (logický) součin, resp. součet.