Funkcia IF umožňuje vykonávanie logických porovnaní medzi hodnotou a tým, čo očakávate, prostredníctvom testovania podmienok a vrátenia výsledkov v podobe hodnôt True alebo False.
-
=IF(niečo má hodnotu True, potom niečo urobte, inak urobte niečo iné)
Preto príkaz IF môže mať dva výsledky. Prvým výsledkom je, či vaše porovnanie má hodnotu True, a druhým výsledkom je, či vaše porovnanie má hodnotu False.
Príkazy IF sú neuveriteľne výkonné a tvoria základ mnohých modelov tabuľkových hárkov, ale zároveň sú hlavnou príčinou mnohých problémov s tabuľkovými hárkami. V ideálnom prípade by sa príkaz IF mal vzťahovať na minimálne podmienky, ako napríklad Muž/Žena, Áno/Nie/Možno, aby sme ich vymenovali, ale niekedy môže byť potrebné vyhodnotiť zložitejšie scenáre, ktoré vyžadujú vnáranie* viac ako 3 funkcie IF dohromady.
* Vnorenie predstavuje spájanie viacerých funkcií dokopy do jedného vzorca.
Používanie funkcie IF, jednej z logických funkcií na vrátenie jednej hodnoty, ak je podmienka pravdivá a druhej hodnoty, ak je nepravdivá.
Syntax
IF(logický_test; hodnota_ak_pravda; [hodnota_ak_nepravda])
Príklad:
-
=IF(A2>B2;"Prekročený rozpočet";"OK")
-
=IF(A2=B2;B4-A4;"")
Názov argumentu |
Popis |
logický_test (povinné) |
Predstavuje podmienku, ktorá sa má testovať. |
hodnota_ak_pravda (povinné) |
Predstavuje hodnotu, ktorá sa má vrátiť, ak sa argument logický_test vyhodnotí ako TRUE. |
hodnota_ak_nepravda (voliteľné) |
Predstavuje hodnotu, ktorá sa má vrátiť, ak sa argument logický_test vyhodnotí ako FALSE. |
Poznámky
Hoci Excel vám umožní vnoriť až 64 rôznych funkcií IF, vôbec sa neodporúča tak urobiť. Prečo?
-
Viacero príkazov IF vyžaduje dobre si premyslieť, ako ich správne zostaviť a pamätať pritom na to, aby ich logika robila správne výpočty prostredníctvom každej podmienky až do konca. Ak ste nevnorili svoj vzorec na 100 % presne, potom možno bude fungovať na 75 %, ale vráti neočakávané výsledky v 25 % prípadov. Žiaľ, šanca, že zachytíte tých 25 %, je malá.
-
Spravovať viacnásobné príkazy IF môže byť neuveriteľne ťažké, najmä keď sa k nim vrátite neskôr a pokúšate sa zistiť, čo ste sa snažili urobiť, alebo, čo je ešte horšie, čo sa iní snažili urobiť.
Ak za vám zdá, že príkaz IF stále rastie a nikam nevedie, je načase dať si prestávku a popremýšľať nad ďalším postupom.
Poďme sa spoločne pozrieť na to, ako sa dá pomocou viacerých funkcií IF správnym spôsobom vytvoriť zložitý vnorený príkaz IF a kedy je lepšie použiť iný nástroj Excelu.
Príklady
Nižšie nájdete príklad relatívne bežného vnoreného príkazu IF, ktorý slúži na prevod výsledkov testov študentov na ich ekvivalentnú známku.
-
=IF(D2>89;"A";IF(D2>79;"B";IF(D2>69;"C";IF(D2>59;"D";"F"))))
Tento zložitý vnorený príkaz IF má jednoduchú logickú postupnosť:
-
Ak je výsledok testu (v bunke D2) väčší ako 89, študent dostane známku A.
-
Ak je výsledok testu väčší ako 79, študent dostane známku B.
-
Ak je výsledok testu väčší ako 69, študent dostane známku C.
-
Ak je výsledok testu väčší ako 59, študent dostane známku D.
-
V opačnom prípade dostane študent známku F.
Tento konkrétny príklad je relatívne nenáročný, pretože je nepravdepodobné, že by sa korelácia medzi výsledkami testov a známkami v budúcnosti zmenila, a preto nie je ani údržba tohto príkladu náročná. Čo však v prípade, ak chcete známku A ešte podrobnejšie rozlíšiť ako A+, A a A- (atď)? Štyri podmienky príkazu IF sa budú musieť rozšíriť na 12 podmienok. Váš vzorec bude vyzerať takto:
-
=IF(B2>97;"A+";IF(B2>93;"A";IF(B2>89;"A-";IF(B2>87;"B+";IF(B2>83;"B";IF(B2>79;"B-"; IF(B2>77;"C+";IF(B2>73;"C";IF(B2>69;"C-";IF(B2>57;"D+";IF(B2>53;"D";IF(B2>49;"D-";"F"))))))))))))
Príkaz je aj naďalej funkčne presný a bude fungovať podľa očakávaní, jeho zápis a otestovanie, či slúži na to, na čo má, však bude trvať dlhšie. Ďalším problémom je, že výsledky a príslušnú známku musíte zadávať manuálne. Aká je pravdepodobnosť výskytu neúmyselných preklepov? Predstavte si, že musíte tento krok zopakovať 64-krát s ešte zložitejšími podmienkami. Áno, dá sa to zvládnuť, ale naozaj chcete vynaložiť až také veľké úsilie a urobiť pritom aj pár chýb, ktoré je potom dosť ťažké vôbec zaregistrovať?
: V každej funkcii v Exceli musia byť ľavé aj pravé zátvorky (). Excel vám pomôže zistiť, kde treba čo zadať, a to farebným rozlíšením jednotlivých častí vzorca pri vykonávaní úprav. Ak chcete napríklad zmeniť vyššie uvedený vzorec a pri pohybe kurzorom prejdete za jednotlivé pravé zátvorky, príslušná ľavá zátvorka sa zmení na rovnakú farbu. Môže to byť užitočné, keď v zložitých vnorených vzorcoch chcete skontrolovať, či ste zadali všetky ľavé aj pravé zátvorky.
Ďalšie príklady
Uvádzame bežný príklad výpočtu provízie z predaja na základe úrovní dosiahnutého príjmu.
-
=IF(C9>15000;20%;IF(C9>12500;17,5%;IF(C9>10000;15%;IF(C9>7500;12,5%;IF(C9>5000;10%;0)))))
Tento vzorec znamená: IF(C9 je väčšie ako 15 000, potom sa vráti 20 %, IF(C9 je väčšie ako 12 500, potom sa vráti 17,5 %, atď...
Tento príklad je podobný tomu prechádzajúcemu so známkami, je to však najmä príklad toho, aké zložité môže byť udržiavanie dlhých príkazov IF – čo je potrebné urobiť, keď sa vaša organizácia rozhodne pridať nové úrovne kompenzácie, prípadne ako zmeniť použitý dolár na inú menu alebo percentuálne hodnoty. Mali by ste s tým veľmi veľa práce.
: Ak chcete, aby boli dlhé vzorce jednoduchšie čitateľné, môžete do riadka vzorcov vložiť zlomy riadkov. Pred textom, ktorý chcete zalomiť do nového riadka, stlačte jednoducho kombináciu klávesov ALT + ENTER.
Tu je príklad scenára s províziou v nesprávnom logickom poradí:
Vidíte, čo sa deje? Porovnajte poradie porovnaní výnosov s predchádzajúcim príkladom. Ktorým smerom to ide? To je pravda, ide to zdola nahor (5.000 dolárov na 15.000 dolárov), nie naopak. Ale prečo by to malo byť také veľké? Je to veľká vec, pretože vzorec nemôže odovzdať prvé vyhodnotenie pre žiadnu hodnotu nad 5 000 USD. Povedzme, že máte príjmy vo výške 12 500 EUR – príkaz IF vráti 10 %, pretože je väčší ako 5 000 EUR a zastaví sa tam. To môže byť neuveriteľne problematické, pretože v mnohých situáciách tieto typy chýb idú bez povšimnutia, kým som mal negatívny vplyv. Takže s vedomím, že tam sú niektoré vážne úskalia s komplexnými vnorenými príkazmi IF, čo môžete urobiť? Vo väčšine prípadov môžete použiť funkciu VLOOKUP namiesto vytvárania zložitého vzorca s funkciou IF. Pomocou funkcie VLOOKUP je najskôr potrebné vytvoriť referenčnú tabuľku:
-
=VLOOKUP(C2;C5:D17;2;TRUE)
Tento vzorec vyhľadá hodnotu z bunky C2 v rozsahu C5:C17. Ak sa hodnota nájde, vráti sa príslušná hodnota z rovnakého riadka do stĺpca D.
-
=VLOOKUP(B9;B2:C6;2;TRUE)
Tento vzorec podobne vyhľadá hodnotu z bunky B9 v rozsahu B2:B22. Ak sa hodnota nájde, vráti sa príslušná hodnota z rovnakého riadka do stĺpca C.
: Oba príkazy VLOOKUP použijú argument TRUE na konci vzorcov, čo znamená, že môžeme pomocou nich vyhľadávať približné zhody. Inými slovami – budú sa vyhľadávať zhody s presnými hodnotami vo vyhľadávacej tabuľke a tiež akékoľvek hodnoty, ktoré medzi ne spadajú. V tomto prípade musia byť vyhľadávacie tabuľky zoradené vzostupne od najmenšieho po najväčšie.
Funkcia VLOOKUP je tu podrobne popísaná, ale určite je omnoho jednoduchšia ako 12-levelový zložitý vnorený príkaz IF. Objavte aj ďalšie výhody, ktoré nie sú také zjavné:
-
Referenčné tabuľky funkcie VLOOKUP sa rýchlo otvárajú a jednoducho prezerajú.
-
Možno ich tiež jednoducho aktualizovať a v prípade zmien podmienok sa vzorca nemusíte ani dotknúť.
-
Ak nechcete, aby používatelia vašu referenčnú tabuľku videli alebo ju používali, vložte ju do iného hárka.
Viete, že?
V súčasnosti je k dispozícii funkcia IFS, pomocou ktorej môžete viaceré vnorené príkazy IF nahradiť jednou funkciou. Namiesto prvého príkladu so známkami, kde boli 4 vnorené funkcie IF:
-
=IF(D2>89;"A";IF(D2>79;"B";IF(D2>69;"C";IF(D2>59;"D";"F"))))
môžeme vzorec zjednodušiť pomocou funkcie IFS:
-
=IFS(D2>89;"A";D2>79;"B";D2>69;"C";D2>59;"D";TRUE;"F")
Používanie funkcie IFS je skvelé, pretože sa nemusíte zaoberať všetkými tými príkazmi IF a zátvorkami.
: Táto funkcia je k dispozícii len vtedy, ak máte predplatné na Microsoft 365. Ak ste predplatiteľom služieb Microsoft 365, uistite sa, že používate najnovšiu verziu balíka Office.Kúpiť alebo vyskúšať Microsoft 365
Potrebujete ďalšiu pomoc?
Vždy sa môžete opýtať odborníka v komunite Excel Tech Community alebo získať podporu v komunitách.
Súvisiace témy
Video: Rozšírené funkcie IFFunkcia IFS (Microsoft 365, Excel 2016 a novšie verzie)Funkcia COUNTIF spočíta hodnoty na základe jedného kritériaFunkcia COUNTIFS spočíta hodnoty na základe viacerých kritérií. Funkcia SUMIF sčíta hodnoty na základe jedného kritéria. Funkcia SUMIFS sčíta hodnoty na základe viacerých kritériía funkcieOR funkcieVLOOKUPPrehľad vzorcov v ExceliAko sa vyhnúť nefunkčným vzorcomZisťovanie chýb vo vzorcochLogické funkcieexcelových funkcií (podľa abecedy)Excelové funkcie (podľa kategórie)