Obsah
V tomto článku se dozvíte, jak sestavit příkaz IF aplikace Excel pro různé typy hodnot a jak vytvořit více příkazů IF.
IF je jednou z nejoblíbenějších a nejužitečnějších funkcí v Excelu. Obecně se příkaz IF používá k testování podmínky a k vrácení jedné hodnoty, pokud je podmínka splněna, a jiné hodnoty, pokud podmínka splněna není.
V tomto kurzu se seznámíme se syntaxí a běžným použitím funkce IF aplikace Excel a poté se blíže podíváme na příklady vzorců, které snad budou užitečné jak pro začátečníky, tak pro zkušené uživatele.
Funkce IF v aplikaci Excel
IF je jedna z logických funkcí, která vyhodnocuje určitou podmínku a vrací jednu hodnotu, pokud je podmínka TRUE, a druhou hodnotu, pokud je podmínka FALSE.
Syntaxe funkce IF je následující:
IF(logical_test, [value_if_true], [value_if_false])Jak vidíte, IF přijímá celkem 3 argumenty, ale pouze první z nich je povinný, ostatní dva jsou nepovinné.
Logical_test (povinné) - testovaná podmínka. Může být vyhodnocena jako TRUE nebo FALSE.
Value_if_true (nepovinné) - hodnota, která se vrátí, pokud logický test vyhodnotí jako TRUE, tj. podmínka je splněna. Pokud je vynechána, bude hodnota value_if_false musí být definován argument.
Value_if_false (nepovinné) - hodnota, která se vrátí, pokud logický test vyhodnotí jako FALSE, tj. podmínka není splněna. Pokud je vynechána, vrátí se hodnota value_if_true musí být nastaven argument.
Základní vzorec IF v aplikaci Excel
Vytvoření jednoduchého Pokud tedy v Excelu, je třeba provést následující kroky:
- Pro logical_test , napište výraz, který vrátí buď TRUE, nebo FALSE. K tomu byste obvykle použili některý z logických operátorů.
- Pro value_if_true , určete, co se má vrátit, když logický test vyhodnotí jako TRUE.
- Pro value_if_false , určete, co se má vrátit, když logický test vyhodnotí hodnotu FALSE. Ačkoli je tento argument nepovinný, doporučujeme jej vždy nastavit, abyste se vyhnuli neočekávaným výsledkům. Podrobný výklad najdete v části Excel IF: věci, které je třeba znát.
Jako příklad si napíšeme velmi jednoduchý vzorec IF, který zkontroluje hodnotu v buňce A2 a vrátí "Good", pokud je hodnota větší než 80, a "Bad" v opačném případě:
=IF(B2>80, "Good", "Bad")
Tento vzorec přejde do C2 a poté se zkopíruje dolů do C7:
Pokud chcete vrátit hodnotu pouze v případě, že je splněna (nebo není splněna) podmínka, jinak nic, pak použijte prázdný řetězec ("") pro argument "undefined". Například:
=IF(B2>80, "Good", "")
Tento vzorec vrátí hodnotu "Good", pokud je hodnota v A2 větší než 80, v opačném případě je buňka prázdná:
Vzorec aplikace Excel If then: co je třeba vědět
Ačkoli jsou poslední dva parametry funkce IF nepovinné, může váš vzorec přinést neočekávané výsledky, pokud neznáte základní logiku.
Pokud je hodnota_if_true vynechána
Pokud vynecháte 2. argument vzorce IF aplikace Excel (tj. za logickým testem jsou dvě po sobě jdoucí čárky), dostanete při splnění podmínky nulu (0), což ve většině případů nedává smysl. Zde je příklad takového vzorce:
=IF(B2>80, , "Špatný")
Chcete-li místo toho vrátit prázdnou buňku, zadejte jako druhý parametr prázdný řetězec (""), například takto:
=IF(B2>80, "", "Bad")
Následující snímek obrazovky ukazuje rozdíl:
Pokud je hodnota_if_false vynechána
Vynechání 3. parametru IF povede k následujícím výsledkům, když logický test vyhodnotí jako FALSE.
Pokud je za závorkou value_if_true , funkce IF vrátí logickou hodnotu FALSE. Docela nečekané, že? Zde je příklad takového vzorce:
=IF(B2>80, "Dobrý")
Zadání čárky za value_if_true donutí Excel vrátit 0, což také nedává smysl:
=IF(B2>80, "Dobrý",)
Nejrozumnějším přístupem je použití řetězce nulové délky (""), aby se při nesplnění podmínky zobrazila prázdná buňka:
=IF(B2>80, "Good", "")
Tip. Chcete-li vrátit logickou hodnotu, když je splněna nebo není splněna zadaná podmínka, zadejte TRUE do pole value_if_true a FALSE pro value_if_false . Aby byly výsledky logickými hodnotami, které mohou rozpoznat další funkce aplikace Excel, neuzavírejte hodnoty TRUE a FALSE do dvojitých uvozovek, protože se tím změní na normální textové hodnoty.
Použití funkce IF v aplikaci Excel - příklady vzorců
Nyní, když jste se seznámili se syntaxí funkce IF, se podíváme na několik příkladů vzorců a naučíme se je používat. Pokud tedy výroky v reálných scénářích.
Funkce IF aplikace Excel s čísly
Chcete-li sestavit příkaz IF pro čísla, použijte logické operátory, jako jsou:
- Rovná se (=)
- Není rovno ()
- Větší než (>)
- Větší nebo rovno (>=)
- Méně než (<)
- Menší nebo rovno (<=)
Výše jste již viděli příklad takového vzorce, který kontroluje, zda je číslo větší než zadané číslo.
A zde je vzorec, který kontroluje, zda buňka obsahuje znak záporné číslo :
=IF(B2<0, "Invalid", "")
Pro záporná čísla (která jsou menší než 0) vzorec vrátí "Neplatný"; pro nuly a kladná čísla - prázdnou buňku.
Funkce Excel IF s textem
Běžně se pro textové hodnoty píše příkaz IF s použitím operátoru "rovná se" nebo "nerovná se".
Následující vzorec například kontroluje Stav dodávky v B2, aby bylo možné určit, zda je akce nutná, či nikoli:
=IF(B2="dodáno", "Ne", "Ano")
Přeloženo do češtiny, vzorec říká: vrátit "Ne", pokud se B2 rovná "doručeno", "Ano" v opačném případě.
Jiný způsob, jak dosáhnout stejného výsledku, je použít operátor "not equal to" a prohodit operátor value_if_true a value_if_false hodnoty:
=IF(C2 "doručeno", "Ano", "Ne")
Poznámky:
- Pokud používáte textové hodnoty pro parametry IF, nezapomeňte je vždy uzavřít do tvaru dvojité uvozovky .
- Stejně jako většina ostatních funkcí aplikace Excel, IF ve výchozím nastavení nerozlišuje velká a malá písmena Ve výše uvedeném příkladu se nerozlišuje mezi "doručeno", "doručeno" a "DORUČENO".
Příkaz IF pro textové hodnoty rozlišující malá a velká písmena
Chcete-li velká a malá písmena považovat za různé znaky, použijte IF v kombinaci s funkcí EXACT, která rozlišuje malá a velká písmena.
Chcete-li například vrátit hodnotu "Ne" pouze v případě, že B2 obsahuje "DELIVERED" (velká písmena), použijte tento vzorec:
=IF(EXACT(B2, "DORUČENO"), "Ne", "Ano")
Pokud buňka obsahuje částečný text
V situaci, kdy chcete podmínku založit na částečná shoda namísto přesné shody, napadne nás okamžitě řešení pomocí zástupných znaků v logickém testu. Tento jednoduchý a zřejmý přístup však nebude fungovat. Mnoho funkcí zástupné znaky akceptuje, ale IF mezi ně bohužel nepatří.
Fungujícím řešením je použití IF v kombinaci s ISNUMBER a SEARCH (nerozlišuje velká a malá písmena) nebo FIND (rozlišuje velká a malá písmena).
Například v případě, že je požadována akce "Ne" jak pro položky "Dodáno", tak pro položky "K dodání", bude fungovat následující vzorec:
=IF(ISNUMBER(SEARCH("deliv", B2)), "Ne", "Ano")
Další informace naleznete na adrese:
- Příkaz IF aplikace Excel pro částečnou shodu textu
- Pokud buňka obsahuje, pak
Příkaz IF aplikace Excel s daty
Na první pohled se může zdát, že vzorce IF pro data jsou podobné příkazům IF pro číselné a textové hodnoty. Bohužel tomu tak není. Na rozdíl od mnoha jiných funkcí funkce IF data v logických testech nerozpoznává a interpretuje je jako pouhé textové řetězce. Jinými slovy, nemůžete zadat datum ve tvaru "1/1/2020" nebo ">1/1/2020". Aby funkce IF datum rozpoznala, musíte jej zabalit do příkazufunkce DATEVALUE.
Například takto můžete zkontrolovat, zda je dané datum větší než jiné datum:
=IF(B2>DATEVALUE("7/18/2022"), "Coming soon", "Completed")
Tento vzorec vyhodnotí data ve sloupci B a vrátí hodnotu "Coming soon", pokud je hra naplánována na 18. července 2022 nebo později, a hodnotu "Completed" pro dřívější datum.
Nic vám samozřejmě nebrání zadat cílové datum do předem definované buňky (například E2) a odkazovat na ni. Jen nezapomeňte adresu buňky zamknout znakem $, aby se jednalo o absolutní odkaz. Například:
=IF(B2>$E$2, "Coming soon", "Completed")
Porovnání data s aktuální datum , použijte funkci TODAY(). Například:
=IF(B2>TODAY(), "Coming soon", "Completed")
Příkaz IF aplikace Excel pro prázdná a nevyplněná místa
Pokud chcete nějakým způsobem označit data na základě toho, zda je určitá buňka (buňky) prázdná (prázdné) nebo ne, můžete buď:
- Použijte funkci IF spolu s ISBLANK nebo
- Použijte logické výrazy (rovná se prázdné) nebo "" (nerovná se prázdné).
Následující tabulka vysvětluje rozdíl mezi těmito dvěma přístupy na příkladech vzorců.
Logický test | Popis | Příklad vzorce | |
Prázdné buňky | ="" | Vyhodnotí se jako TRUE, pokud je buňka vizuálně prázdná, i když obsahuje položku řetězec nulové délky . V opačném případě se vyhodnotí jako FALSE. | =IF(A1="", 0, 1) |
Vrací 0, pokud je A1 vizuálně prázdný. V opačném případě vrací 1.
Pokud A1 obsahuje prázdný řetězec (""), vzorec vrátí 0.
Vyhodnotí se jako TRUE, pokud buňka obsahuje naprosto nic - žádné vzorce, žádné mezery, žádné prázdné řetězce.
V opačném případě se vyhodnotí jako FALSE.
Vrací 0, pokud je A1 absolutně prázdný, jinak 1.
Pokud A1 obsahuje prázdný řetězec (""), vzorec vrátí 1.
Buňky s řetězce nulové délky jsou považovány za prázdné stránky .
Vrací 1, pokud A1 není prázdný; jinak 0.
Pokud A1 obsahuje prázdný řetězec, vzorec vrátí 0.
Buňky s řetězce nulové délky jsou považovány za neprázdný .
Funguje stejně jako výše uvedený vzorec, ale vrací 1, pokud A1 obsahuje prázdný řetězec.
A nyní se podívejme na prázdné a neprázdné příkazy IF v akci. Předpokládejme, že ve sloupci B je datum pouze v případě, že již byla odehrána nějaká hra. Pro označení odehraných her použijte jeden z těchto vzorců:
=IF(B2="", "", "Dokončeno")
=IF(ISBLANK(B2), "", "Dokončeno")
=IF($B2"", "Dokončeno", "")
=IF(ISBLANK($B2)=FALSE, "Dokončeno", "")
V případě, že testované buňky neobsahují řetězce nulové délky, všechny vzorce vrátí naprosto stejné výsledky:
Kontrola, zda jsou dvě buňky stejné
Chcete-li vytvořit vzorec, který kontroluje, zda se dvě buňky shodují, porovnejte buňky pomocí znaménka rovnosti (=) v logickém testu IF. Například:
=IF(B2=C2, "Stejné skóre", "")
Chcete-li zkontrolovat, zda obě buňky obsahují stejný text včetně velikosti písmen, nastavte vzorec IF tak, aby rozlišoval velikost písmen pomocí funkce EXACT.
Například pro porovnání hesel v A2 a B2 a vrácení "Shoda", pokud jsou oba řetězce naprosto stejné, "Neshoda" v opačném případě je vzorec následující:
=IF(EXACT(A2, B2), "Shoda", "Neshoda")
IF pak vzorec pro spuštění dalšího vzorce
Ve všech předchozích příkladech vracel příkaz IF aplikace Excel hodnoty. Může však také provést určitý výpočet nebo spustit jiný vzorec, když je splněna nebo nesplněna určitá podmínka. Za tímto účelem vložte do příkazu IF jinou funkci nebo aritmetický výraz. value_if_true a/nebo value_if_false argumenty.
Například pokud je B2 větší než 80, vynásobíme ji 7 %, v opačném případě 3 %:
=IF(B2>80, B2*7%, B2*3%)
Více příkazů IF v aplikaci Excel
V podstatě existují dva způsoby, jak v aplikaci Excel zapsat více příkazů IF:
- Vnoření několika funkcí IF do sebe
- Použití funkce AND nebo OR v logickém testu
Vnořený příkaz IF
Vnořené funkce IF umožňují umístit do jedné buňky více příkazů IF, tj. testovat více podmínek v rámci jednoho vzorce a v závislosti na výsledcích těchto testů vracet různé hodnoty.
Předpokládejme, že vaším cílem je přidělovat různé bonusy na základě skóre:
- Nad 90 let - 10%
- 90 až 81 - 7%
- 80 až 70 - 5%
- Méně než 70 % - 3 %
Úkolu dosáhnete tak, že napíšete 3 samostatné funkce IF a vnoříte je do sebe takto:
=IF(B2>90, 10%, IF(B2>=81, 7%, IF(B2>=70, 5%, 3%)))
Další příklady vzorců naleznete na:
- Vnořený vzorec IF aplikace Excel
- Vnořená funkce IF: příklady, osvědčené postupy a alternativy
Příkaz IF aplikace Excel s více podmínkami
Chcete-li vyhodnotit několik podmínek pomocí logiky AND nebo OR, vložte do logického testu odpovídající funkci:
- AND - vrátí hodnotu TRUE, pokud všechny jsou splněny podmínky.
- NEBO - vrátí hodnotu TRUE, pokud jakýkoli je splněna některá z podmínek.
Například pro vrácení výsledku "vyhověl", pokud jsou oba výsledky vbodech B2 a C2 vyšší než 80, se použije následující vzorec:
=IF(AND(B2>80, C2>80), "vyhověl", "nevyhověl")
Pokud je některý z těchto bodů vyšší než 80, získáte "vyhověl" podle následujícího vzorce:
=IF(OR(B2>80, C2>80), "vyhověl", "nevyhověl")
Podrobné informace naleznete na adrese:
- Vzorec IF AND v aplikaci Excel
- Funkce IF OR v aplikaci Excel s příklady vzorců
Pokud je chyba v aplikaci Excel
Od aplikace Excel 2007 máme k dispozici speciální funkci IFERROR, která slouží ke kontrole vzorců na výskyt chyb. V aplikaci Excel 2013 a vyšších je k dispozici také funkce IFNA, která se zabývá chybami #N/A.
A přesto mohou nastat okolnosti, kdy je použití funkce IF spolu s funkcí ISERROR nebo ISNA lepším řešením. V podstatě platí, že IF ISERROR je vzorec, který použijete, když chcete vrátit něco, pokud je chyba, a něco jiného, pokud chyba není. To funkce IFERROR neumí, protože vždy vrací výsledek hlavního vzorce, pokud to není chyba.
Chcete-li například porovnat každé skóre ve sloupci B se třemi nejlepšími skóre v E2:E4 a vrátit "Ano", pokud je nalezena shoda, a "Ne" v opačném případě, zadejte tento vzorec do C2 a poté jej zkopírujte dolů do C7:
=IF(ISERROR(MATCH(B2, $E$2:$E$4, 0)), "Ne", "Ano" )
Další informace naleznete v části Vzorec IF ISERROR v aplikaci Excel.
Doufám, že vám naše příklady pomohly pochopit základy IF v Excelu. Děkuji vám za přečtení a doufám, že se uvidíme na našem blogu příští týden!
Cvičebnice
Příkaz IF aplikace Excel - příklady vzorců (.xlsx soubor)