Excel beágyazott IF utasítások - példák, legjobb gyakorlatok és alternatívák

  • Ossza Meg Ezt
Michael Brown

A bemutató elmagyarázza, hogyan használhatja a beágyazott IF függvényt az Excelben több feltétel ellenőrzésére. Megtanulhat néhány más függvényt is, amelyek jó alternatívái lehetnek a beágyazott képlet használatának az Excelben.

Hogyan szokott egy döntési logikát megvalósítani az Excel munkalapjain? A legtöbb esetben egy IF-formulát használ a feltétel tesztelésére, és egy értéket ad vissza, ha a feltétel teljesül, egy másik értéket, ha a feltétel nem teljesül. Több feltétel kiértékeléséhez és az eredménytől függően különböző értékek visszaadásához több IF-et fészkel egymásba.

Bár nagyon népszerű, a beágyazott IF utasítás nem az egyetlen módja annak, hogy több feltételt ellenőrizzen az Excelben. Ebben a bemutatóban talál egy maroknyi alternatívát, amelyeket mindenképpen érdemes felfedezni.

    Excel beágyazott IF utasítás

    Íme a klasszikus Excel beágyazott IF-képlet általános formában:

    IF( feltétel1 , result1 , IF( feltétel2 , result2 , IF( feltétel3 , result3 , result4 )))

    Láthatjuk, hogy minden egyes következő IF függvény be van ágyazva a value_if_false Minden IF függvényt saját zárójelek vesznek körül, de a záró zárójelek a képlet végén vannak.

    Az általános, egymásba ágyazott IF-képletünk 3 feltételt értékel ki, és 4 különböző eredményt ad vissza (a 4. eredményt akkor kapjuk vissza, ha egyik feltétel sem TRUE). Emberi nyelvre lefordítva ez az egymásba ágyazott IF utasítás a következőket mondja az Excelnek:

    Teszt feltétel1 , ha TRUE - visszatérés result1 , ha FALSE -

    teszt feltétel2 , ha TRUE - visszatérés r esult2 , ha FALSE -

    teszt feltétel3 , ha TRUE - visszatérés result3 , ha FALSE -

    return result4

    Példaként keressük meg néhány eladó jutalékát az általuk végzett eladások alapján:

    Bizottság Értékesítés
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Több mint 150 dollár

    A matematikában az összeadás sorrendjének megváltoztatása nem változtatja meg az összeget. Az Excelben az IF függvények sorrendjének megváltoztatása megváltoztatja az eredményt. Miért? Mert egy egymásba ágyazott IF formula egy olyan értéket ad vissza, amely megfelel az IF függvény sorrendjének. első TRUE feltétel Ezért az egymásba ágyazott IF utasításokban nagyon fontos, hogy a feltételeket a megfelelő irányba rendezzük - magasról alacsonyra vagy alacsonyról magasra, a képlet logikájától függően. A mi esetünkben először a "legmagasabb" feltételt ellenőrizzük, majd a "második legmagasabbat", és így tovább:

    =IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))"".

    Ha a feltételeket fordított sorrendben, alulról felfelé helyeznénk el, az eredmények nem lennének megfelelőek, mert a képletünk az első logikai teszt (B2>=1) után megállna minden 1-nél nagyobb érték esetén. Mondjuk, 100 dollár az értékesítésünk - ez nagyobb, mint 1, így a képlet nem vizsgálná a többi feltételt, és 3%-ot adna vissza eredményként.

    Ha inkább az alacsonytól a magas felé szeretné rendezni a feltételeket, akkor használja a "kisebb, mint" operátort, és először a "legalacsonyabb" feltételt értékelje ki, majd a "második legalacsonyabbat", és így tovább:

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Amint látja, elég sok gondolkodásra van szükség ahhoz, hogy egy egymásba ágyazott IF utasítás logikáját helyesen építsük fel egészen a végéig. És bár a Microsoft Excel lehetővé teszi akár 64 IF függvény egymásba ágyazását egy képletben, ez nem olyasmi, amit igazán szeretne a munkalapjain. Tehát, ha Ön (vagy valaki más) az Excel egymásba ágyazott IF képletét bámulja, és próbálja kitalálni, hogy mit is csinál valójában, itt az ideje, hogyátgondolja a stratégiáját, és valószínűleg egy másik eszközt választ az arzenáljából.

    További információért lásd: Excel beágyazott IF utasítás.

    Beágyazott IF OR/AND feltételekkel

    Ha több különböző feltételkészletet kell kiértékelnie, akkor ezeket a feltételeket kifejezheti a VAGY és az ÉS függvények használatával, a függvényeket az IF utasításokba fészkelheti, majd az IF utasításokat egymásba fészkelheti.

    Beágyazott IF az Excelben OR utasításokkal

    A VAGY függvény használatával két vagy több különböző feltételt ellenőrizhetünk az egyes IF függvények logikai tesztjében, és TRUE-t adunk vissza, ha a VAGY argumentumok bármelyike (legalább az egyik) TRUE-t ad. Hogy lássuk, hogyan is működik ez valójában, nézzük meg a következő példát.

    Tegyük fel, hogy két oszlopban vannak az eladások, mondjuk a januári eladások a B oszlopban és a februári eladások a C oszlopban. Mindkét oszlopban lévő számokat szeretné ellenőrizni, és a jutalékot a magasabb szám alapján kiszámítani. Más szóval, egy képletet állít össze a következő logikával: ha a januári vagy a februári eladás nagyobb, mint 150 dollár, az eladó 10% jutalékot kap, ha a januári vagy a februári eladás nagyobb, mint vagy egyenlő a$101, az eladó 7% jutalékot kap, és így tovább.

    Ehhez írjunk néhány OF utasítást, például OR(B2>150, C2>150), és fészkeljük be őket a fentebb tárgyalt IF függvények logikai tesztjeibe. Eredményként ezt a képletet kapjuk:

    =IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, "" ))))

    És a jutalékot a magasabb értékesítési összeg alapján rendelje hozzá:

    További képletpéldákért lásd az Excel IF OR utasítást.

    Beágyazott IF az Excelben AND utasításokkal

    Ha a logikai tesztek több feltételt tartalmaznak, és mindegyik feltételnek TRUE értéket kell adnia, akkor az AND függvény használatával fejezze ki őket.

    Például, ha a jutalékokat alacsonyabb eladási szám alapján szeretné hozzárendelni, vegye a fenti képletet, és a VAGY helyett használja az ÉS utasításokat. Másképp fogalmazva, azt mondja az Excelnek, hogy csak akkor adja vissza a 10%-ot, ha a január és február havi eladások összege nagyobb, mint 150 dollár, 7%-ot, ha a január és február havi eladások összege nagyobb vagy egyenlő, mint 101 dollár, és így tovább.

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))

    Ennek eredményeképpen az egymásba ágyazott IF-képletünk a B és C oszlopok alacsonyabb száma alapján számítja ki a jutalékot. Ha bármelyik oszlop üres, akkor egyáltalán nincs jutalék, mert egyik ÉS feltétel sem teljesül:

    Ha üres cellák helyett 0%-ot szeretne visszaadni, akkor az utolsó argumentumban az üres karakterláncot ('''") helyettesítse 0%-ra:

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%)))).

    További információ itt található: Excel IF több ÉS/VAGY feltételekkel.

    VLOOKUP a beágyazott IF helyett az Excelben

    Ha "skálákkal", azaz a teljes tartományt együttesen lefedő, folytonos számértéktartományokkal van dolgunk, a legtöbb esetben a VLOOKUP funkciót használhatjuk a beágyazott IF-ek helyett.

    Kezdetnek készítsen egy referenciatáblát, ahogy az alábbi képernyőképen látható. Majd hozzon létre egy Vlookup képletet a következővel hozzávetőleges egyezés , azaz a range_lookup argumentum TRUE értékre van állítva.

    Feltételezve, hogy a keresési érték a B2-ben van, és a referenciatábla az F2:G5, a képlet a következőképpen néz ki:

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Kérjük, vegye figyelembe, hogy javítjuk a table_array abszolút hivatkozásokkal ($F$2:$G$5), hogy a képlet helyesen másolódjon más cellákba:

    Ha a Vlookup-képlet utolsó argumentumát TRUE értékre állítja, akkor azt mondja az Excelnek, hogy keresse meg a legközelebbi egyezés - ha nem talál pontos egyezést, akkor a következő legnagyobb értéket adja vissza, amely kisebb, mint a keresési érték. Ennek eredményeképpen a képlet nem csak a keresési táblázatban szereplő pontos értékeknek felel meg, hanem a kettő közötti értékeknek is.

    Például a keresési érték a B3-ban $95. Ez a szám nem létezik a keresési táblázatban, és a Vlookup pontos egyezéssel ebben az esetben #N/A hibát adna vissza. A Vlookup közelítő egyezéssel azonban addig keres, amíg meg nem találja a legközelebbi értéket, amely kisebb, mint a keresési érték (ami példánkban $50), és egy értéket ad vissza ugyanannak a sornak a második oszlopából (ami 5%).

    De mi van akkor, ha a keresési érték kisebb, mint a legkisebb szám a keresési táblázatban, vagy a keresési cella üres? Ebben az esetben a Vlookup képlet a #N/A hibát fogja visszaadni. Ha ez nem az, amit valójában akar, fészkelje be a VLOOKUP-ot az IFERROR-ba, és adja meg a kimeneti értéket, ha a keresési érték nem található. Például:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Tartományon kívül")

    Fontos megjegyzés! Ahhoz, hogy egy közelítő egyezéssel rendelkező Vlookup formula helyesen működjön, a keresési táblázat első oszlopának a következő sorrendbe kell lennie növekvő sorrendben a legkisebbtől a legnagyobbig.

    További információért lásd: Pontos egyezés VLOOKUP vs. hozzávetőleges egyezés VLOOKUP.

    IFS utasítás a beágyazott IF függvény alternatívájaként

    Az Excel 2016 és későbbi verziókban a Microsoft bevezetett egy speciális funkciót a több feltétel kiértékelésére - az IFS funkciót.

    Egy IFS-képlet legfeljebb 127 logikai_teszt / value_if_true párokat, és az első logikai teszt, amelyik TRUE értéket ad, "nyer":

    IFS(logikai_teszt1, érték_ha_igaz1, [logikai_teszt2, érték_ha_igaz2]...)

    A fenti szintaxisnak megfelelően az egymásba ágyazott IF-képletünk így rekonstruálható:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Kérjük, figyeljen arra, hogy az IFS függvény #N/A hibát ad vissza, ha a megadott feltételek egyike sem teljesül. Ennek elkerülése érdekében adhat még egy további logikai_teszt / value_if_true a képlet végére, amely 0-t vagy üres karakterláncot ("") vagy bármilyen kívánt értéket ad vissza, ha az előző logikai tesztek egyike sem TRUE:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Ennek eredményeként a képletünk a #N/A hiba helyett egy üres karakterláncot (üres cellát) fog visszaadni, ha a B oszlop megfelelő cellája üres vagy szöveget vagy negatív számot tartalmaz.

    Megjegyzés: A beágyazott IF-hez hasonlóan az Excel IFS funkciója is az első olyan feltételnek megfelelő értéket adja vissza, amely TRUE értéket ad, ezért fontos a logikai tesztek sorrendje az IFS-képletben.

    További információért lásd: Excel IFS funkció a beágyazott IF helyett.

    CHOOSE a beágyazott IF-képlet helyett az Excelben

    Egy másik módja a több feltétel tesztelésének egyetlen képleten belül az Excelben a CHOOSE függvény használata, amelynek célja, hogy az adott érték pozíciója alapján visszaadjon egy értéket a listából.

    A mintaadatkészletünkre alkalmazva a képlet a következő formát ölti:

    =CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    Az első argumentumban ( index_num ), kiértékeled az összes feltételt, és összeadod az eredményeket. Tekintettel arra, hogy a TRUE egyenlő 1, a FALSE pedig 0, így kiszámítod a visszaadandó érték pozícióját.

    Például a B2-ben szereplő érték 150 $. Erre az értékre az első 3 feltétel TRUE, az utolsó (B2> 150) pedig FALSE. Tehát, index_num egyenlő 3-mal, ami azt jelenti, hogy a 3. értéket kapjuk vissza, ami 7%.

    Tipp: Ha a logikai tesztek egyike sem TRUE, index_num egyenlő 0-val, és a képlet a #VALUE! hibát adja vissza. Egyszerű megoldás a CHOOSE beillesztése az IFERROR függvénybe, így:

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")

    További információért lásd az Excel CHOOSE funkció és képletpéldák.

    SWITCH függvény, mint az egymásba ágyazott IF tömör formája az Excelben

    Azokban a helyzetekben, amikor előre meghatározott értékek rögzített halmazával, nem pedig skálákkal van dolgunk, a SWITCH függvény kompakt alternatívája lehet a bonyolult, egymásba ágyazott IF utasításoknak:

    SWITCH(kifejezés, érték1, eredmény1, érték2, eredmény2, ..., [alapértelmezett])

    A SWITCH funkció kiértékeli kifejezés egy listával szemben értékek és visszaadja a eredmény az első talált egyezésnek megfelelően.

    Abban az esetben, ha a jutalékot nem az eladási összegek, hanem a következő osztályzatok alapján szeretné kiszámítani, akkor használhatja az Excelben az egymásba ágyazott IF-képlet kompakt változatát:

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    Vagy készíthet egy hivatkozási táblázatot, mint az alábbi képernyőképen látható, és a kemény kódolt értékek helyett cellahivatkozásokat használhat:

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")

    Vegye észre, hogy az első $ jelű hivatkozás kivételével minden hivatkozást zároltunk, hogy megakadályozzuk, hogy a képlet más cellákba történő másolásakor megváltozzon:

    Megjegyzés: A SWITCH funkció csak az Excel 2016 és újabb verziókban érhető el.

    További információért lásd: SWITCH funkció - a beágyazott IF utasítás kompakt formája.

    Több IF függvény összekapcsolása Excelben

    Amint az előző példában említettük, a SWITCH funkciót csak az Excel 2016-ban vezették be. A régebbi Excel-verziókban hasonló feladatok kezelésére két vagy több IF utasítást kombinálhat az Összekapcsolás operátor (&) vagy a CONCATENATE függvény használatával.

    Például:

    =(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Vagy

    =CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Mint észrevehette, mindkét képletben megszorozzuk az eredményt 1-gyel. Ez azért történik, hogy a Concatenate képlet által visszaadott karakterláncot számmá alakítsuk. Ha a várt kimenet szöveg, akkor a szorzási műveletre nincs szükség.

    További információért lásd: CONCATENATE funkció az Excelben.

    Láthatja, hogy a Microsoft Excel egy maroknyi jó alternatívát kínál a beágyazott IF képletekre, és remélhetőleg ez a bemutató adott néhány támpontot ahhoz, hogyan használhatja ki őket a munkalapjain. Ha közelebbről meg szeretné nézni a bemutatóban tárgyalt példákat, szívesen látjuk, ha letölti az alábbi minta munkafüzetünket. Köszönöm, hogy elolvasta, és remélem, jövő héten találkozunk a blogunkon!

    Gyakorlati munkafüzet letölthető

    Excel beágyazott If utasítás - példák (.xlsx fájl)

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.