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 odkazuje na spájanie viacerých funkcií 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 nevnoríte vzorec na 100 % presne, potom môže fungovať na 75 % času, ale vráti neočakávané výsledky o 25 % času. Ž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 sa ocitnete s príkazom IF, ktorý jednoducho zdá sa, že stále rastie bez konca v nedohľadne, je čas, aby sa myš a prehodnotiť svoju stratégiu.
Poďme sa pozrieť na to, ako správne vytvoriť zložitý vnorený príkaz IF pomocou viacerých súborov IFs a kedy rozpoznať, že je čas použiť iný nástroj vo svojom excelovom arzenáli.
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 bezpečný, pretože nie je pravdepodobné, že sa korelácia medzi výsledkami testov a známkami písmen zmení, takže nebude vyžadovať veľkú údržbu. Ale tu je myšlienka – čo ak potrebujete segmentovať klasifikáciu medzi A+, A a A- (a tak ďalej)? Štyri podmienky príkazu IF sa budú musieť rozšíriť na 12 podmienok. Vzorec bude teraz 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"))))))))))))
Je stále funkčne presná a bude fungovať podľa očakávaní, ale písanie trvá dlho a kým sa otestuje, či robí to, čo chcete. Ďalším do očí bijúce problém je, že ste museli zadať skóre a ekvivalentné písmeno známky ručne. Aká je pravdepodobnosť, že omylom budete mať preklep? Predstavte si, že musíte tento krok zopakovať 64-krát s ešte zložitejšími podmienkami. Iste, je to možné, ale naozaj chcete podrobiť sa tomuto druhu úsilia a pravdepodobné chyby, ktoré bude naozaj ťažké na mieste?
Tip: V každej funkcii v Exceli musia byť ľavé aj pravé zátvorky (). Excel sa vám pokúsi pomôcť zistiť, kde sa nachádzate, a to tak, že pri úprave vyfarbí rôzne časti vzorca. Ak by ste napríklad upravili vyššie uvedený vzorec, po premiestnení kurzora za jednotlivé koncové zátvorky ")" sa príslušná ľavá zátvorka zmení na rovnakú farbu. Môže to byť užitočné najmä v zložitých vnorených vzorcoch, keď sa pokúšate zistiť, či máte dostatok zodpovedajúcich zátvoriek.
Ď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ď...
Hoci je pozoruhodne podobný predchádzajúcemu príkladu klasifikácie, tento vzorec je skvelým príkladom toho, aké zložité môže byť udržiavanie veľkých príkazov IF – čo by ste mali urobiť, ak by sa vaša organizácia rozhodla pridať nové úrovne kompenzácie a prípadne dokonca zmeniť existujúce hodnoty dolára alebo percentuálne hodnoty? Mali by ste veľa práce na rukách!
Tip: 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.
Poznámka: 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 ľudia vašu referenčnú tabuľku videli alebo do nej zasahovali, jednoducho ju umiestnite 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")
Funkcia IFS je skvelá, pretože sa nemusíte starať o všetky tieto príkazy IF a zátvorky.
Poznámka: 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
funkcia IFS (Microsoft 365, Excel 2016 a novšie verzie) Funkcia COUNTIF spočíta hodnoty na základe jedného kritéria . Funkcia COUNTIFS spočíta hodnoty na základe viacerých kritérií . Funkcia SUMIF sčíta hodnoty na základe jedného kritéria The SUMIFS funkcia sčíta hodnoty na základe viacerých kritérií a funkcie OR funkcie VLOOKUP Prehľad vzorcov v Exceli Ako sa vyhnúť nefunkčným vzorcom Zisťovanie chýb vo vzorcoch Logické funkcie excelových funkcií (abecedné)excelové funkcie (podľa kategórie)