Logické funkce 1 - funkce IF

calc.png Logické funkce v Calcu můžete použít všude tam, kde chcete zabránit zobrazování chybových hlášek, zbytečných výsledků výpočtů nebo potřebujete převést číselnou řadu na textové popisky. Jedná se tedy o zlepšení dojmu při prvním pohledu na vytvořenou tabulku a zvýšení srozumitelnosti a přehlednosti.  

Tabulka bez ošetření chybového stavu vypadá následovně.

0

Ve sloupci Výsledek používáme vzorec:

=A2/B2
=A3/B3
  • V řádku 2: Zápis dělení bez ošetření chybového stavu s uvedenou číslicí 0 na místě dělitele.
  • V řádku 3: Zápis dělení bez ošetření chybového stavu s prázdnou buňkou na místě dělitele.

Tabulka s ošetřením chybového stavu za pomocí funkce pak vzhled vylepšuje.

1

Ve sloupci Výsledek používáme vzorec:

=IF(B2=0;"";A2/B2)
=IF(B3=0;"nelze dělit nulou";A3/B3)
  • V řádku 2: Jestliže je B2 rovno 0, pole C2 zůstane prázdné, jinak vyděl A2/B2.
  • V řádku 3: Jestliže je B3 rovno 0, zapiš do pole C3 řetězec "nelze dělit nulou", jinak vyděl A3/B3.

Logická funkce IF

Funkce má následující syntaxi:

=IF(podmínka;ano;ne)

Funkce vyhodnotí podmínku a je-li podmínka splněna, vrátí argument ANO. Pokud podmínka splněna není, vrátí argument NE.

Využití funkce je vhodné v těchto situacích:

  1. Nepřejete si zobrazit chybové hlášení.
  2. Nepřejete si zobrazit zbytečné výsledky výpočtů, popř. chybová hlášení.
  3. Přechod mezi různými soustavami.
  4. Transformace mezi výpočty.

Logická proměnná se v Calcu vyhodnotí jako PRAVDA, pokud se jejím vyhodnocením získá libovolné nenulové číslo, které může být kladné i záporné.

Podmínka je nepravdivá, pokud se jejím vyhodnocením získá nula, nebo je odkazovaná buňka prázdná.

V zápise podmínky se používají operátory =, <, >, <>, >=, <=. Pomocí aritmetických proměnných a relačních operátorů nejsnadněji získáme logické proměnné.

Argument ANO i NE může být číslo, text, odkaz na jinou buňku, funkce nebo vzorec. Vzorec, odkaz na buňku a funkce se píší bez rovnítka a nedávají se do uvozovek.

2

Pokud je argument ANO vynechán, vrátí funkce argument NE. Pokud je argument NE vynechán a je-li na konci středník, vrátí funkce hodnotu CHYBA:511, tzn. chybí proměnná - funkce vyžaduje více proměnných, než je zadáno.

3

Je-li středník vynechán, vrátí funkce logickou hodnotu NEPRAVDA.

4

Argument může obsahovat další vnořené funkce, které se již zapisují bez rovnítka.

Nepřejete si zobrazit chybové hlášení

Jako příklad uvedeme dělení nulou.

Při dělení dvou nenulových čísel je vše v pořádku – výsledek vrátí podíl těchto čísel. Když však v děliteli bude 0 nebo prázdná buňka, vrátí Calc ve výsledku hodnotu #DIV/0! - dělení nulou samozřejmě není možné.

5

Aby k této situaci nedocházelo, tj. nezobrazovala se chybová hodnota #DIV/0!, použijte logickou funkci IF. Podmínkou ve funkci je zjištění dělitele. Existují dvě možnosti:

  • zjistěte, zda buňka obsahuje číslici 0 nebo je prázdná:
  • =IF(B2=0;"";A2/B2)
    =IF(B3=0;"nelze dělit nulou";A3/B3)

6

    V tomto příkladě vrátí funkce prázdný řetězec znaků, když se dělitel B2 rovná 0. Jinak se příklad vypočte. Prázdný řetězec lze nahradit větou "nelze dělit nulou".

  • zjistěte, zda je v buňce jiné číslo než číslo nula
  • =IF(B2<>0;A2/B2;"")
    =IF(B3<>0; A3/B3;"nelze dělit nulou")

7

    V tomto příkladě zjišťujete, zda je hodnota v buňce B2 různá od nuly; pokud tomu tak je, funkce se vypočte. Jestliže tomu tak není, zobrazí se prázdný řetězec, nebo místo něj můžete zobrazit textový řetězec "nelze dělit nulou".

Nepřejete si zobrazit zbytečné výsledky výpočtů, popř. chybová hlášení

Na obrázku vidíte běžně používaný způsob tvorby tabulek. Od řádku 5 je ve sloupci D – Celkem zbytečně uveden součet zboží, jelikož kolonka Zboží nebyla vyplněna.

8

Za použití funkce IF lze zcela snadno dosáhnout již na první pohled úhledné tabulky a zamezit tak zobrazení zbytečných výsledků.

9

Vzorec kontroluje, zda je hodnota v buňce A2 různá od nuly, pokud tomu tak je, funkce se vypočte, jestliže tomu tak není, zobrazí se prázdný řetězec.

Přechod mezi různými soustavami

Velmi často je třeba vysvětlit význam číselného kódu textem. Využívá se to v různých výpočetních modelech, kde slovní vyjádření výsledku slouží ke snadnější orientaci.

Příklad: Ve škole je zavedeno hodnocení studentů na bodové stupnici 1-100. Výsledná známka se odvíjí od počtu dosažených bodů dle první tabulky.

10

Druhý obrázek zobrazuje jednotlivé studenty, dosažené body a jejich výslednou známku.

11

Vzorce, který slouží k výpočtům, jsou následující. Oba vzorce používají vnořenou funkci IF. V prvním případě je v argumentu ANO obsažen textový řetězec výsledné známky.

=IF(C11=0;"Neklasifikován";IF(C11<=37;"Nedostatečný";IF(C11<=56;"Dostatečný";IF(C11<=76;"Dobrý";IF(C11<=88;"Chvalitebný";IF(C11<=100;"Výborný";""))))))

Ve druhém případě je v argumentu ANO uveden odkaz na buňku B z první tabulky. Argument NE obsahuje prázdný řetězec "".

=IF(C11=0;B7;IF(C11<=37;B6;IF(C11<=56;B5;IF(C11<=76;B4;IF(C11<=88;B3;IF(C11<=100;B2;""))))))

Transformace mezi výpočty

Čtvrtou oblastí použití funkce je zajištění vstupního můstku mezi návaznými výpočty. Jeden blok výpočtů vrátí hodnotu, která vstupuje do dalšího bloku výpočtů. Hodnota z prvního bloku však nemůže vstoupit přímo do druhého bloku, neboť dochází k transformaci.

12

V bloku výpočtů 1 dojde k výsledku (buňka D9). Podmínka je: Jestliže výsledek v buňce D9 bude větší nebo rovný 0 a zároveň menší nebo rovný 10, předej do Bloku výpočtů 2 hodnotu 2 (buňka G4), jestliže bude výsledek menší než 0, předej hodnotu -10 (buňka G5), jinak předej hodnotu 10 (buňka G6). Vzorec:

=IF(AND(D9>=0;D9<=10);G4;IF(D9<0;G5;G6))

Ve vzorci je použita další logická funkce AND, která znamená, že musí platit obě podmínky, aby výsledek vrátil kladnou hodnotu.

Funkce AND a funkce OR bude námětem dalšího pokračování seriálu o funkcích.

(Jako ve škole) Průměr: 2,19 | Hodnotilo: 36
 

Komentáře

user avatar Tereza
Odpovědět
Logické funkce 1 - funkce IF
20. 02. 2014, 19:20:56
Nenašel by se někdo kdo rozumí funkcím a dokázal by mi spočítat jeden příklad jde především o funkci if.
user avatar Michal Vašut
Odpovědět
Re:Logické funkce 1 - funkce IF
20. 02. 2014, 22:17:24
Pokusit se můžu, o co jde?
user avatar Tereza
Odpovědět
Re:Re:Logické funkce 1 - funkce IF
22. 02. 2014, 08:47:17
jde o jeden soubor s funkcemi a já tomu vůbec nerozumím kdyby jste mi nechal tady svůj email určitě bych vám to poslala
user avatar Michal Vašut
Odpovědět
Re:Re:Re:Logické funkce 1 - funkce IF
22. 02. 2014, 11:27:27
xvasutm(zavinac)gmail(tecka)com
user avatar Tereza
Odpovědět
Re:Re:Re:Re:Logické funkce 1 - funkce IF
23. 02. 2014, 15:59:02
děkuju. email už jsem poslala
user avatar Tomáš
Odpovědět
Logické funkce 1 - funkce IF
18. 03. 2014, 22:41:16
Dobrý den,

mám v calcu na jednom listu seznam knih, které mám barevně odlišené formou, vlastním, přečteno, budu číst, koupím, nebudu číst / kupovat. V druhém listu veškeré knihy s určitou tématikou (Historie, horror, fantasy) které vyjdou, nebo vychází na pokračováních (komiksy). Potřeboval bych pomoci, aby se mi v seznamu na druhém listu ukázalo zda již je kniha v seznamu na prvním listu nebo není. Například pod A mám 20 knih, vyjde nebo na pokračování vychází 10 knih s A jako prvním písmenem v názvu. Takže pokud se buňka A1 listu "vyjdou" rovná některé z buněk A1:A20 z listu "seznam" dostanu hodnotu 1, jinak 0, vzorec pak zkopírovat pro všech deset knih, které vyjdou. V buňce B1 listu "vyjdou" tedy by byl vzorec nějak takto =IF('seznam'.$A$1:$A$20=A1;1;0). Potřeboval bych správný vzorec pro tento problém neboť mi buňka neustále vyhazuje #value nebo chybu 509. Mám sbírku nejen knih ale i komiksů a potřebuji už mít lepší přehled. :)

Děkuji za pomoc

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
IZIO
Martin Charvát

Martin Charvát

 
 
 
woo jaw demo hz