Logická funkce KDYŽ

Při řešení konkrétních úloh v praxi a vyhodnocování výsledků výpočtů se velmi dobře hodí funkce KDYŽ. Je to jedna z nejpoužívanějších logických funkcí.

Použití funkce sledujte na příkladu. Uložte si na disk soubor funkce_kdyz.xlsx. Otevřete jej a následující použití funkce si vyzkoušejte v tomto sešitu.

Funkci zapíšeme takto:
=KDYŽ(podmínka;ano;ne)

Přesuňte se na buňku, kam chcete zapisovat, a zápis začnete stiskem „=“ a zapisujte přímo nebo stiskem tlačítka fx (vložit funkci) vedle řádku vzorců. Pokud použijete tlačítko fx, můžete zapisovat do následujícího okna.

Argumenty funkce KDYŽ

Argumenty funkce KDYŽ

Zápis pomocí tlačítka fx se může zdát přehlednější a pro začátek a pochopení i snadnější, než přímý zápis do řádku vzorců.

Logická funkce KDYŽ vrátí jako hodnotu argument zapsaný na místě Ano, při nesplnění podmínky vrátí argument Ne.

Podmínka – zde zapíšeme podmínku, kterou chceme vyhodnotit. Je to výraz (vzorec), který se vyhodnotí jako pravdivý nebo nepravdivý.

Ano – pokud byla zapsaná podmínka splněna, funkce vrátí argument zapsaný na tomto místě.

Ne – pokud podmínka splněna nebyla (výraz je nepravdivý), funkce vrátí argument na tomto místě.

Funkci je vhodné použít pro zabránění dělení nulou, větvení výpočtů a vyhodnocení výpočtů textovým hlášením. Funkce KDYŽ můžeme do sebe také vnořovat.

Zabránění dělení nulou

Jak zajisté víte, nulou dělit nelze. Napíšete-li do buňky vzorec, který obsahuje dělení a hodnota ve jmenovateli zlomku náhodou bude rovna 0 (popř. bude buňka prázdná), Excel zobrazí chybové hlášení.

Aby se to nestalo, použijte funkci KDYŽ.

Otevřený sešit funkce_kdyz.xlsx přepněte na list dělení nulou. Zde vidíte v řádku 3, že zapíšete-li prosté dělení bez podmínek, dojde k zobrazení chyby. Použijete-li dělení zapsané dovnitř logické funkce KDYŽ, lze to korektně ošetřit.

V buňce C4 je zapsáno dělení v podmínce takto: =KDYŽ(B4=0; „Nulou dělit nelze!“; A4/B4). To znamená, že funkce nejprve zkontroluje, jaké hodnoty nabývá buňka B4, a podle toho postupuje dále. V tomto případě (jsme v buňce C4) je podmínka splněna – dělitel je roven nule, tak funkce vrátí argument Ano, čili text „Nulou dělit nelze!“. Pokud dělitel nabývá hodnot různých od nuly, funkce vrátí hodnotu argumentu Ne. V tomto příkladu provede dělení a vrátí jako hodnotu jeho výsledek.

Jak se pomocí funkce KDYŽ vyhnout chybě při dělení nulou

Jak se pomocí funkce KDYŽ vyhnout chybě při dělení nulou

Vyhodnocení textovým hlášením

Funkce KDYŽ může vrátit textový řetězec. Toho lze využít k přehlednějšímu zpracování výsledků nebo i selekci hodnot. Text pak slouží pro snadnou orientaci a slovní vyhodnocení.

Otevřený sešit funkce_kdyz.xlsx přepněte na list textové hlášení. Tato tabulka obsahuje seznam neuhrazených faktur. Zde umístěte buňkový kurzor na některou z buněk ve sloupci po splatnosti, např. na buňku G4. V této buňce je jako výsledek zobrazováno hlášení ANO nebo NE, podle toho zda je faktura po splatnosti či nikoliv.

Funkce je zapsána takto:
=KDYŽ(DNES()>E4;“ANO“;“NE“)

Pozn.: V tomto příkladu je použita funkce DNES(). Ta vrátí hodnotu data dnešního dne (systémové datum). Mezi závorky se nic nepíše.

Funkce KDYŽ provede nejprve vyhodnocení podmínky – DNES()>E4, v tomto případě zda dnešní datum je větší než datum splatnosti. Pokud ano, znamená to, že faktura je po splatnosti a jako hodnotu vrátí funkce argument – text ANO. Pokud faktura není po splatnosti a podmínka není splněna, zobrazí textový řetězec NE. To nastane v případě, že dnešní datum je menší než datum splatnosti v buňce E4.

Chcete-li, aby funkce vracela textový řetězec (textové hlášení), zapište jej jako argument přímo do funkce. Nezapomeňte však uvést uvozovky na začátku a na konci zapsaného textového řetězce. Do těchto uvozovek můžete uvést jakýkoliv text, který se má při splnění nebo nesplnění podmínky zobrazit. I když do uvozovek uvedete „+“ nebo „-“ nebo jiné operátory apod., bude s tím Excel stále pracovat jako s textem.

Argumentem funkce může být i prázdný řetězec. Zapíšeme jej jako uvozovky dvakrát za sebou a mezi nimi nic nezapíšeme. Přesuňte se buňkovým kurzorem na buňku F4, kde v řádku vzorců uvidíte příklad použití funkce k selekci hodnot.

=KDYŽ(DNES()<=E4;““;D4)

Funkce vyhodnocuje, zda dnešní datum je menší nebo rovno splatnosti. Pokud je to pravda, tak neprovede „nic“. Vrátí prázdný řetězec. V buňce se tedy nic nezměnilo. Pokud však je datum větší než datum ve sloupci datum splatnosti, tak vrátí argument Ne, v tomto případě hodnotu z buňky D4. Tím se zobrazí fakturovaná částka ve sloupci pohledávka a bude zahrnuta do pohledávek. Zkuste ve sloupci datum splatnosti měnit data splatnosti před dnešní datum a po dnešním datu a sledujte chování buněk ve sloupcích pohledávka a po splatnosti.

Větvení výpočtu s vnořením funkce KDYŽ

Funkce KDYŽ může také větvit výpočet na několik variant podle toho, jestli podmínka ve funkci byla nebo nebyla splněna. Sešit funkce_kdyz.xlsx přepněte na list větvení výpočtu. Tato tabulka obsahuje výpočet daně fyzických osob. Vycházejme z předpokladu, že daň z příjmu fyzických osob má několik daňových pásem, v nichž se výpočet provádí odlišně.
zvětšit

Do sloupce Základ daně vepisujte daňový základ. Ve sloupci Zákl. daně zaokr. je prováděno zaokrouhlení na celá sta dolů. Ve sloupci daň se provede výpočet daňové povinnosti . Zde umístěte buňkový kurzor na buňku C2. Vzorec, který vidíte provede najednou výpočet daně.

K tomu je však potřeba výpočet rozvětvit, protože na daních odvádíme různá procenta při různých daňových základech.

Funkce je zapsána takto:
=KDYŽ(B2<109200;B2*0,15;KDYŽ(B2<218400;16380+(B2-10920 0)*0,2;KDYŽ(B2<331200;38220+(B2-218400)*0,25;66420+(B2-3312 00)*0,32)))

Na první pohled to vypadá složitě, ale po vysvětlení to zcela jistě pochopíte. Funkce v tomto příkladu provede vyhodnocení podmínky B2Ano. Tím byl proveden výpočet daně jako 15 % z daňového základu.
Pokud je daňový základ vyšší, tzn. podmínka není v tomto případě splněna, funkce pokračuje na argument Ne. Ovšem na jeho místě je další funkce KDYŽ. Ta provede vyhodnocení podmínky B2<109200. Pokud je podmínka pravdivá, znamená to, že daňový základ je nižší než 109 200 Kč, a provede se výpočet v prvním daňovém pásmu. Vrátí tedy hodnotu B2*0,15 – to je vzorec na místě argumentu Ano. Tím byl proveden výpočet daně jako 15 % z daňového základu.

Pokud je daňový základ vyšší, tzn. podmínka není v tomto případě splněna, funkce pokračuje na argument Ne. Ovšem na jeho místě je další funkce KDYŽ. Ta provede vyhodnocení podmínky B2 <218400 – druhé daňové pásmo. Pokud je podmínka splněna, provede výpočet daně podle vzorce 16380+(B2-109200)*0,2. Tato hodnota je vrácena první funkci KDYŽ a ta ji vrátí do buňky jako výsledek. Pokud není splněna ani tato podmínka, tak funkce pokračuje na další funkci KDYŽ. A pokračuje dále stále stejným způsobem, dokud nevyhoví některé z podmínek zapsaných v dalších vnořených funkcích. Nastane-li varianta, že daňový základ přesahuje 331 200 Kč, nevyhoví žádné z podmínek a probíhá výpočet podle vzorce 66420 (B2-331200)*0,32. Tato hodnota je vrácena předchozím funkcím až k první funkci, jež ji vrátí jako výsledek.

Autor textu: Ing. Marek Laurenčík, společnost JUBELA, s.r.o.