Obsah
Výukový program ukazuje, jak v Excelu vytvořit více příkazů IF s logikou AND i OR. Také se dozvíte, jak používat IF společně s dalšími funkcemi Excelu.
V první části našeho výukového programu Excel IF jsme se podívali na to, jak sestavit jednoduchý příkaz IF s jednou podmínkou pro text, čísla, data, prázdná místa a neprázdná místa. Pro výkonnou analýzu dat však můžete často potřebovat vyhodnotit více podmínek najednou. Níže uvedené příklady vzorců vám ukáží nejefektivnější způsoby, jak to udělat.
Jak používat funkci IF s více podmínkami
V podstatě existují dva typy Vzorec IF s více kritérii na základě logiky AND / OR . V logickém testu vzorce IF byste tedy měli použít jednu z těchto funkcí:
- Funkce AND - vrací TRUE, pokud všechny podmínky jsou splněny; jinak FALSE.
- Funkce OR - vrací TRUE, pokud jakákoli jednotlivá podmínka je splněna; jinak FALSE.
Pro lepší ilustraci prozkoumejme několik příkladů vzorců z reálného života.
Příkaz IF aplikace Excel s více podmínkami (logika AND)
Obecný vzorec aplikace Excel IF se dvěma nebo více podmínkami je následující:
IF(AND( podmínka1 , podmínka2 , ...), value_if_true, value_if_false)Přeloženo do lidského jazyka, vzorec říká: Pokud je podmínka 1 pravdivá A podmínka 2 pravdivá, vraťte. value_if_true ; jinak return value_if_false .
Předpokládejme, že máte tabulku, ve které jsou uvedeny výsledky dvou testů ve sloupcích B a C. Aby student úspěšně složil závěrečnou zkoušku, musí mít oba výsledky vyšší než 50.
Pro logický test použijete následující příkaz AND: AND(B2>50, C2>50).
Pokud jsou obě podmínky pravdivé, vzorec vrátí hodnotu "vyhověl"; pokud je některá z podmínek nepravdivá, vrátí hodnotu "nevyhověl".
=IF(AND(B2>50, B2>50), "vyhověl", "nevyhověl")
Snadné, že? Níže uvedený snímek obrazovky dokazuje, že náš vzorec IF /AND v aplikaci Excel funguje správně:
Podobným způsobem můžete použít funkci IF aplikace Excel s více položkami. textové podmínky .
Například pro výstup "Dobrý", pokud jsou hodnoty B2 i C2 větší než 50, a "Špatný" v opačném případě je vzorec následující:
=IF(AND(B2="vyhověl", C2="vyhověl"), "Dobrý!", "Špatný")
Důležitá poznámka! Funkce AND kontroluje všechny podmínky , a to i v případě, že již testovaná podmínka (podmínky) vyhodnotila jako FALSE. Takové chování je poněkud neobvyklé, protože ve většině programovacích jazyků se následné podmínky netestují, pokud některý z předchozích testů vrátil FALSE.
V praxi může zdánlivě správný příkaz IF kvůli této specifičnosti vést k chybě. Například níže uvedený vzorec by vrátil #DIV/0! (chyba "dělení nulou"), pokud by se buňka A2 rovnala 0:
=IF(AND(A20, (1/A2)>0.5), "Dobrý", "Špatný")
Abyste se tomu vyhnuli, měli byste použít vnořenou funkci IF:
=IF(A20, IF((1/A2)>0.5, "Dobrý", "Špatný"), "Špatný")
Další informace naleznete v části Vzorec IF AND v aplikaci Excel.
Funkce IF aplikace Excel s více podmínkami (logika OR)
Udělat jednu věc, pokud jakákoli podmínka je splněna, v opačném případě proveďte něco jiného, použijte tuto kombinaci funkcí IF a OR:
IF(OR( podmínka1 , podmínka2 , ...), value_if_true, value_if_false)Rozdíl oproti výše popsanému vzorci IF / AND je v tom, že Excel vrací hodnotu TRUE, pokud je některá ze zadaných podmínek pravdivá.
Pokud tedy v předchozím vzorci použijeme OR místo AND:
=IF(OR(B2>50, B2>50), "vyhověl", "nevyhověl")
Pak každý, kdo má v obou zkouškách více než 50 bodů, dostane ve sloupci D označení "vyhověl". Za těchto podmínek mají naši studenti větší šanci složit závěrečnou zkoušku (Yvette má obzvlášť velkou smůlu, když neuspěje o pouhý 1 bod :).
Tip. V případě, že vytváříte vícenásobný příkaz IF s textem a testování hodnoty v jedné buňce pomocí logiky OR (tj. buňka může být "to" nebo "to"), pak můžete sestavit kompaktnější vzorec pomocí konstanty pole.
Například pro označení prodeje jako "uzavřeného", pokud je v buňce B2 hodnota "dodáno" nebo "zaplaceno", se použije vzorec:
=IF(OR(B2={"doručeno", "zaplaceno"}), "Uzavřeno", "")
Další příklady vzorců najdete v aplikaci Excel ve funkci IF OR.
IF s více příkazy AND & OR
Pokud vaše úloha vyžaduje vyhodnocení několika sad více podmínek, budete muset použít obě funkce AND & OR najednou.
Předpokládejme, že v naší vzorové tabulce máte následující kritéria pro kontrolu výsledků zkoušky:
- Podmínka 1: zkouška1>50 a zkouška2>50
- Podmínka 2: zkouška1>40 a zkouška2>60
Pokud je splněna některá z těchto podmínek, je závěrečná zkouška považována za úspěšně složenou.
Na první pohled se vzorec zdá být trochu složitý, ale ve skutečnosti tomu tak není! Stačí vyjádřit každou z výše uvedených podmínek jako příkaz AND a vložit je do funkce OR (protože není nutné splnit obě podmínky, postačí jedna z nich):
OR(AND(B2>50, C2>50), AND(B2>40, C2>60)
Poté použijte funkci OR pro logický test IF a zadejte požadovanou hodnotu value_if_true a value_if_false Výsledkem je následující vzorec IF s více podmínkami AND / OR:
=IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "vyhověl", "nevyhověl")
Níže uvedený snímek obrazovky ukazuje, že jsme vzorec sestavili správně:
Samozřejmě nejste omezeni na použití pouze dvou funkcí AND/OR ve vzorcích IF. Můžete jich použít tolik, kolik vyžaduje vaše obchodní logika, pokud:
- V aplikaci Excel 2007 a vyšších verzích máte k dispozici maximálně 255 argumentů a celková délka vzorce IF nepřesahuje 8 192 znaků.
- V aplikaci Excel 2003 a nižších verzích nesmí být více než 30 argumentů a celková délka vzorce IF nesmí překročit 1 024 znaků.
Vložený příkaz IF pro kontrolu více logických testů
Pokud chcete vyhodnotit více logických testů v rámci jednoho vzorce, můžete do sebe vnořit několik funkcí. Takové funkce se nazývají vnořené funkce IF . Jsou užitečné zejména tehdy, když chcete vrátit různé hodnoty v závislosti na výsledcích logických testů.
Zde je typický příklad: předpokládejme, že chcete kvalifikovat úspěchy studentů jako " Dobrý ", " Vyhovující " a " Špatný " na základě následujících bodů:
- Dobrý: 60 nebo více (>=60)
- Uspokojivé: mezi 40 a 60 (>40 a <60)
- Špatný: 40 nebo méně (<=40)
Před psaním vzorce zvažte pořadí funkcí, které do něj vnoříte. Excel vyhodnotí logické testy v pořadí, v jakém se ve vzorci objevují. Jakmile se podmínka vyhodnotí jako TRUE, další podmínky se netestují, což znamená, že vzorec se zastaví za prvním výsledkem TRUE.
V našem případě jsou funkce seřazeny od největší po nejmenší:
=IF(B2>=60, "Dobrý", IF(B2>40, "Uspokojivý", "Špatný"))
V případě potřeby můžete samozřejmě vnořit více funkcí (v moderních verzích až 64).
Další informace naleznete v části Jak používat více vnořených příkazů IF v aplikaci Excel.
Vzorec pole IF aplikace Excel s více podmínkami
Dalším způsobem, jak v aplikaci Excel IF testovat více podmínek, je použití vzorce pole.
Chcete-li vyhodnotit podmínky pomocí logiky AND, použijte hvězdičku:
IF( podmínka1 ) * ( podmínka2 ) * ..., value_if_true, value_if_false)Chcete-li testovat podmínky pomocí logiky OR, použijte znaménko plus:
IF( podmínka1 ) + ( podmínka2 ) + ..., value_if_true, value_if_false)Chcete-li správně dokončit vzorec pole, stiskněte společně klávesy Ctrl + Shift + Enter. V aplikacích Excel 365 a Excel 2021 to funguje také jako běžný vzorec díky podpoře dynamických polí.
Například pro získání hodnoty "vyhověl", pokud jsou hodnoty B2 i C2 větší než 50, je vzorec následující:
=IF((B2>50) * (C2>50), "vyhověl", "nevyhověl")
V mém Excelu 365 funguje normální vzorec bez problémů (jak vidíte na snímcích obrazovky výše). V Excelu 2019 a nižších verzích nezapomeňte vytvořit vzorec pole pomocí klávesové zkratky Ctrl + Shift + Enter.
Pro vyhodnocení více podmínek pomocí logiky OR je vzorec následující:
=IF((B2>50) + (C2>50), "vyhověl", "nevyhověl")
Použití IF spolu s dalšími funkcemi
V této části je vysvětleno, jak používat IF v kombinaci s dalšími funkcemi aplikace Excel a jaké výhody vám to přináší.
Příklad 1. Pokud je ve VLOOKUP chyba #N/A
Když VLOOKUP nebo jiná vyhledávací funkce nemůže něco najít, vrátí chybu #N/A. Aby vaše tabulky vypadaly hezčeji, můžete v případě #N/A vrátit nulu, prázdné místo nebo konkrétní text. K tomu použijte tento obecný vzorec:
IF(ISNA(VLOOKUP(...)), value_if_na , VLOOKUP(...))Například:
Pokud #N/A, vrátí se 0:
Pokud není hodnota vyhledávání v E1 nalezena, vzorec vrátí nulu.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), 0, VLOOKUP(E1, A2:B10, 2, FALSE))
Pokud #N/A, vrátí se prázdné:
Pokud není hodnota vyhledávání nalezena, vzorec nevrátí nic (prázdný řetězec).
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "", VLOOKUP(E1, A2:B10, 2, FALSE))
Pokud #N/A, vrátí určitý text:
Pokud není hodnota vyhledávání nalezena, vzorec vrátí konkrétní text.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "Nenalezeno", VLOOKUP(E1, A2:B10, 2, FALSE))
Další příklady vzorců naleznete v části VLOOKUP s příkazem IF v aplikaci Excel.
Příklad 2. IF s funkcemi SUM, AVERAGE, MIN a MAX
Pro sčítání hodnot buněk na základě určitých kritérií nabízí Excel funkce SUMIF a SUMIFS.
V některých situacích může vaše obchodní logika vyžadovat zahrnutí funkce SUMA do logického testu IF. Například pro vrácení různých textových popisků v závislosti na součtu hodnot v B2 a C2 je vzorec následující:
=IF(SUM(B2:C2)>130, "Dobrý", IF(SUM(B2:C2)>110, "Uspokojivý", "Špatný"))
Pokud je součet vyšší než 130, je výsledek "dobrý"; pokud je vyšší než 110 - "uspokojivý", pokud je 110 nebo nižší - "špatný".
Podobným způsobem můžete funkci AVERAGE vložit do logického testu IF a vracet různé štítky na základě průměrného skóre:
=IF(AVERAGE(B2:C2)>65, "Dobrý", IF(AVERAGE(B2:C2)>55, "Uspokojivý", "Špatný"))
Za předpokladu, že celkové skóre je ve sloupci D, můžete určit nejvyšší a nejnižší hodnotu pomocí funkcí MAX a MIN:
=IF(D2=MAX($D$2:$D$10), "Nejlepší výsledek", "")
=IF(D2=MAX($D$2:$D$10), "Nejlepší výsledek", "")
Chcete-li mít oba štítky v jednom sloupci, vnořte výše uvedené funkce jednu do druhé:
=IF(D2=MAX($D$2:$D$10), "Nejlepší výsledek", IF(D2=MIN($D$2:$D$10), "Nejhorší výsledek", ""))
Stejně tak můžete použít IF společně s vlastními funkcemi. Můžete jej například zkombinovat s funkcí GetCellColor nebo GetCellFontColor a vrátit tak různé výsledky na základě barvy buňky.
Kromě toho Excel poskytuje řadu funkcí pro výpočet dat na základě podmínek. Podrobné příklady vzorců naleznete v následujících výukových materiálech:
- COUNTIF - spočítá buňky, které splňují podmínku
- COUNTIFS - počítání buněk s více kritérii
- SUMIF - podmíněný součet buněk
- SUMIFS - součet buněk s více kritérii
Příklad 3. IF s ISNUMBER, ISTEXT a ISBLANK
K identifikaci textu, čísel a prázdných buněk nabízí Microsoft Excel speciální funkce, jako jsou ISTEXT, ISNUMBER a ISBLANK. Jejich umístěním do logických testů tří vnořených příkazů IF můžete identifikovat všechny různé typy dat najednou:
=IF(ISTEXT(A2), "Text", IF(ISNUMBER(A2), "Číslo", IF(ISBLANK(A2), "Prázdný", "")))
Příklad 4. IF a CONCATENATE
Chcete-li vypsat výsledek funkce IF a nějaký text do jedné buňky, použijte společně funkce CONCATENATE nebo CONCAT (v aplikaci Excel 2016 - 365) a IF. Například:
=CONCATENATE("Předvedl jste ", IF(B1>100, "fantastický!", IF(B1>50, "dobře", "špatně")))
=CONCAT("Předvedl jsi ", IF(B1>100, "fantastický!", IF(B1>50, "dobře", "špatný")))
Při pohledu na snímek obrazovky níže nebudete potřebovat žádné vysvětlení, co vzorec dělá:
Vzorec IF ISERROR / ISNA v aplikaci Excel
Moderní verze aplikace Excel mají speciální funkce pro zachycení chyb a jejich nahrazení jiným výpočtem nebo předdefinovanou hodnotou - IFERROR (v aplikaci Excel 2007 a novější) a IFNA (v aplikaci Excel 2013 a novější). V dřívějších verzích aplikace Excel můžete místo toho použít kombinace IF ISERROR a IF ISNA.
Rozdíl je v tom, že IFERROR a ISERROR zpracovávají všechny možné chyby Excelu, včetně #VALUE!, #N/A, #NAME?, #REF!, #NUM!, #DIV/0! a #NULL!. Zatímco IFNA a ISNA se specializují pouze na chyby #N/A.
Chcete-li například nahradit chybu "děleno nulou" (#DIV/0!) vlastním textem, můžete použít následující vzorec:
=IF(ISERROR(A2/B2), "N/A", A2/B2)
A to je vše, co jsem vám chtěl říct o používání funkce 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 ke stažení
Excel IF více kritérií - příklady (.xlsx soubor)