Funkce IF aplikace Excel s více podmínkami

  • Sdílet Toto
Michael Brown

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)

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.