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.13 | Hodnotilo: 38
 

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
user avatar Mirka
Odpovědět
Logické funkce 1 - funkce IF
1. 03. 2017, 11:42:11
Dobrý den,

potřebovala bych poradit jak vytvořit vzorec s upozorňováním o propadlém datumu, zda to lze?

Děkuji za pomoc
user avatar neutr
Odpovědět
Re:Logické funkce 1 - funkce IF
1. 03. 2017, 13:46:57
Pokud máte datum například v buňce A1 tak například v buňce B1 takto :
=IF(A1 KARTA ČÍSLA > Zde vyberete vzor s červeným písmem.
Tohle ale patří do fóra zejména proto že téma je z roku 2009 a moc lidí sem nechodí. Často se stane že se tazatel ptá na něco co je vývojem překonáno respektive to dnes chodí jinak.
user avatar neutr
Odpovědět
Re:Re:Logické funkce 1 - funkce IF
1. 03. 2017, 13:49:45
=IF(A1
user avatar neutr
Odpovědět
Re:Re:Re:Logické funkce 1 - funkce IF
1. 03. 2017, 13:53:01
Aha tak vzorce sem nelze psát asi to nesnáší operátory ještě se pokusím to upravit.
IF(A1
user avatar neutr
Odpovědět
Logické funkce 1 - funkce IF
1. 03. 2017, 13:54:13
Tak nic nejde - musíte do fóra a založit nové téma.
user avatar Mirka
Odpovědět
Re:Logické funkce 1 - funkce IF
1. 03. 2017, 15:16:55
Děkuji moc, založím nové téma
user avatar CharlesGF
Odpovědět
Logické funkce 1 - funkce IF
22. 09. 2018, 21:04:20
Zdravím, nevím jestli tu ještě někdo odpovídá, ale potřebuji nastavit na pravda Y, zelené podbarvení a na nepravda N, červené podbarvení. Ukazuje mě to jenom Y/N...
user avatar neutr
Odpovědět
Re:Logické funkce 1 - funkce IF
23. 09. 2018, 10:13:36
Toto by se zde už řešit nemělo. Je to bezmále 10 let staré téma. Máte pravdu - sem chodí málo lidí. Nedá se tady dobře odpovídat - nefunguje tady formátování, odkazovat se musí textově a podobně.


Obraťte se na FÓRUM - k tomu se musíte přihlásit jako uživatel a následně založit nové téma v sekci pro Calc.


Vám jde zřejmě o implementace funkcí CURRENT, STYLE, CELL, COLOR a podobně. Ovšem tyto metody se už používají zřejmě jen ojediněle. Standardně se používá podmíněné formátování.


V Libre Office je prakticky neomezené množství podmínek a tím pádem formátů. Dají se aplikovat ve specifické posloupnosti. V případě Apache Open Office existují pouze 3 řetězitelné podmínky. To více méně odůvodňovalo použití dodatečných možností formátů. Pro Libre Office už ale tento důvod neplatí.

To co popisujete vypadá na nesprávné zadání - vzorec nečte hodnotu, nebo je hodnota v nesprávném formátu a podobně. Tohle si ale ověřte opravdu raději v našem Fóru.
user avatar MRCHAL
Odpovědět
Logické funkce 1 - funkce IF
9. 10. 2019, 20:29:50
Dorbý den, potřeboval bych pomoci na nastavení.
Potřeboval bych, aby když mi vyjde číslo v buňce < 100, buňka zčervenala (nebo alespon číslo v ní) a pokud >= 100, aby zezelenala.
Je to prosím možné?
Děkuji
user avatar kamlan
Odpovědět
Re:Logické funkce 1 - funkce IF
9. 10. 2019, 21:23:18
v LO -> Formát/Podmíněný/Podmínka (v AOO podobně) -> pro každou barvu si akorát musíte vytvořit požadovaný styl.

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.

 
 
 
woo jaw demo hz