Excel Nested IF-útspraken - foarbylden, bêste praktiken en alternativen

  • Diel Dit
Michael Brown

De tutorial leit út hoe't jo de geneste IF-funksje yn Excel brûke kinne om meardere betingsten te kontrolearjen. Jo sille ek in pear oare funksjes leare dy't goede alternativen wêze kinne foar it brûken fan in geneste formule yn Excel.

Hoe ymplementearje jo gewoanlik in beslútfoarmingslogika yn jo Excel-wurkblêden? Yn 'e measte gefallen soene jo in IF-formule brûke om jo betingst te testen en ien wearde werom te jaan as de betingst foldien is, in oare wearde as de betingst net foldien is. Om mear as ien betingst te evaluearjen en ferskate wearden werom te jaan ôfhinklik fan de resultaten, nêste jo meardere IF's yn elkoar.

Hoewol tige populêr, is de geneste IF-ferklearring net de ienige manier om meardere betingsten yn Excel te kontrolearjen. Yn dizze tutorial fine jo in hantsjefol alternativen dy't perfoarst de muoite wurdich binne om te ferkennen.

    Excel geneste IF-ferklearring

    Hjir is de klassike Excel-nêste IF-formule yn in generike foarm :

    IF( betingst1, resultaat1, IF( betingst2, resultaat2, IF( betingst3, resultaat3, resultaat4)))

    Jo kinne sjen dat elke folgjende IF-funksje ynbêde is yn it value_if_false argumint fan 'e foarige funksje. Elke IF-funksje is ynsletten yn in eigen set haakjes, mar alle slutende haakjes steane oan 'e ein fan' e formule.

    Us generike nêste IF-formule evaluearret 3 betingsten, en jout 4 ferskillende resultaten werom (resultaat 4 wurdt weromjûn as gjin fan 'ewurkboek foar download

    Excel nested If statement - foarbylden (.xlsx triem)

    betingsten is TRUE). Oerset yn in minsklike taal, fertelt dizze geneste IF-statement Excel om it folgjende te dwaan:Test betingst1, as TRUE - werom resultaat1, as FALSE -

    test betingst2 , as TRUE - werom r resultaat2 , as FALSE -

    test betingst3 , as TRUE - werom resultaat3 , as FALSE -

    return resultaat4

    Litte wy as foarbyld kommisjes fine foar in oantal ferkeapers basearre op it bedrach fan ferkeap dat se hawwe makke:

    Kommisje Ferkeap
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Oer $150

    Yn wiskunde feroaret it feroarjen fan de folchoarder fan tafoegings de som net. Yn Excel feroaret de folchoarder fan IF-funksjes it resultaat. Wêrom? Om't in geneste IF-formule in wearde jout dy't oerienkomt mei de earste TRUE betingst . Dêrom, yn jo geneste IF-útspraken, is it heul wichtich om de betingsten yn 'e goede rjochting te regeljen - heech nei leech of leech oant heech, ôfhinklik fan de logika fan jo formule. Yn ús gefal kontrolearje wy earst de "heechste" betingst, dan de "twadde heechste", ensafuorthinne:

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

    As wy de betingsten yn 'e omkearde folchoarder, fan ûnderen nei boppen, de resultaten soe wêze allegear ferkeard omdat ús formule soe stopje nei de earste logyske test (B2 & GT; = 1) foar eltse wearde grutter as 1. Litte wy sizze, wy hawwe $ 100yn ferkeap - it is grutter dan 1, dus de formule soe gjin oare betingsten kontrolearje en 3% as resultaat weromkomme.

    As jo ​​de betingsten leaver regelje fan leech nei heech, brûk dan de "minder dan "-operator en evaluearje de "leechste" betingst earst, dan de "twadde leechste", ensafuorthinne:

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

    Sa't jo sjogge, nimt it nochal in soad gedachte om de logika te bouwen fan in geneste IF-ferklearring korrekt oant de ein. En hoewol Microsoft Excel tastean om oant 64 IF-funksjes yn ien formule te nesteljen, is it net iets dat jo wirklik wolle dwaan yn jo wurkblêden. Dus, as jo (of immen oars) nei jo Excel-nêste IF-formule sjogge om út te finen wat it eins docht, is it tiid om jo strategy opnij te besjen en wierskynlik in oar ark yn jo arsenal te kiezen.

    Foar mear ynformaasje . EN-funksje, nêst de funksjes binnen IF-útspraken, en nêst dan de IF-útspraken yn elkoar.

    Nêste IF yn Excel mei OR-útspraken

    Troch de OF-funksje te brûken kinne jo twa of mear kontrolearje ferskillende betingsten yn 'e logyske test fan elke IF-funksje en werom TRUE as ien (op syn minst ien) fan 'e OR-arguminten evaluearret nei TRUE. Om te sjen hoe't it eins wurket, nim dan beskôgje defolgjende foarbyld.

    Stel, jo hawwe twa kolommen fan ferkeap, sis jannewarisferkeap yn kolom B en febrewarisferkeap yn kolom C. Jo wolle de nûmers yn beide kolommen kontrolearje en de kommisje berekkenje op basis fan in heger nûmer. Mei oare wurden, jo bouwe in formule mei de folgjende logika: as de ferkeap fan Jan of Feb grutter is as $ 150, krijt de ferkeaper 10% kommisje, as de ferkeap fan Jan of Feb grutter is as of gelyk oan $ 101, krijt de ferkeaper 7% kommisje , ensafuorthinne.

    Om it dien te hawwen, skriuw in pear OF útspraken lykas OR(B2>150, C2>150) en nêst se yn 'e logyske tests fan' e IF-funksjes dy't hjirboppe besprutsen binne. As resultaat krije jo dizze formule:

    =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%, ""))))

    En hawwe de kommisje tawiisd op basis fan it hegere ferkeapbedrach:

    Foar mear formulefoarbylden, sjoch asjebleaft Excel IF OR statement.

    Nêst IF yn Excel mei EN-útspraken

    As jo ​​logyske tests meardere betingsten omfetsje, en al dy betingsten moatte evaluearje op TRUE, druk se dan út troch de EN-funksje te brûken.

    Om bygelyks de kommisjes op basis fan in leger oantal ferkeapen ta te jaan, nim dan de boppesteande formule en ferfange OR mei EN-útspraken. Om it oars te sizzen, jo fertelle Excel om allinich 10% werom te jaan as de ferkeap fan jannewaris en febrewaris grutter is as $150, 7% as de ferkeap fan jannewaris en febrewaris grutter is as of gelyk oan $101, ensfh.

    =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%, ""))))

    As resultaat berekkenet ús geneste IF-formule de kommisjebasearre op it legere nûmer yn de kolommen B en C. As ien fan de kolommen leech is, is der hielendal gjin kommisje, om't net ien fan 'e EN-betingsten foldien is:

    As jo' wol 0% werombringe ynstee fan lege sellen, ferfange in lege tekenrige (''") yn it lêste argumint mei 0%:

    =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%))))

    Mear ynformaasje is hjir te finen: Excel IF mei meardere EN/OF betingsten.

    VLOOKUP ynstee fan geneste IF yn Excel

    As jo ​​te krijen hawwe mei "skalen", dus trochgeande berikken fan numerike wearden dy't mei-inoar it hiele berik dekke, kinne jo yn 'e measte gefallen de VLOOKUP-funksje brûke ynstee fan nestede IF's.

    Om te begjinnen, meitsje in referinsjetabel lykas werjûn yn it skermôfbylding hjirûnder. En bouwe dan in Vlookup-formule mei approximately match , dus mei it range_lookup argumint ynsteld op TRUE.

    Troch oannommen dat de opsykwearde yn B2 is en de referinsjetabel F2:G5 is, giet de formule as folget :

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

    Tink derom dat wy de tabelarray reparearje mei absolute referinsjes ($F$2:$G$5) foar de formule om korrekt te kopiearjen nei oare sellen:

    Troch it lêste argumint fan jo Vlookup-formule op TRUE yn te stellen, fertel jo Excel om sykje nei de nichtste oerienkomst - as in krekte oerienkomst net fûn wurdt, jou de folgjende grutste wearde werom dy't lytser is as de opsykwearde. As resultaat sil jo formule net allinich oerienkomme mei de krekte wearden yn 'e opsyktabel, mar ek mei elkewearden dy't der tusken falle.

    Bygelyks is de opsykwearde yn B3 $95. Dit nûmer bestiet net yn 'e opsyktabel, en Vlookup mei eksakte oerienkomst soe yn dit gefal in #N/A-flater werombringe. Mar Vlookup mei ûngefear oerienkomst bliuwt sykjen oant it de tichtstbyste wearde fynt dy't minder is as de opsykwearde (dat is $50 yn ús foarbyld) en jout in wearde werom út 'e twadde kolom yn deselde rige (dat is 5%).

    Mar wat as de opsykwearde minder is dan it lytste getal yn de opsyktabel of as de opsyksel leech is? Yn dit gefal sil in Vlookup-formule de #N/A-flater weromjaan. As it net is wat jo eins wolle, nêst VLOOKUP binnen IFERROR en leverje de wearde foar útfier as de opsykwearde net fûn is. Bygelyks:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")

    Wichtige opmerking! Foar in Vlookup-formule mei likernôch oerienkomst om goed te wurkjen, moat de earste kolom yn 'e opsyktabel sortearre wurde yn oprinnende folchoarder , fan lyts nei grutste.

    Foar mear ynformaasje, sjoch asjebleaft Eksakt VLOOKUP vs approximate match VLOOKUP.

    IFS-ferklearring as alternatyf foar geneste IF-funksje

    Yn Excel 2016 en lettere ferzjes hat Microsoft in spesjale funksje yntrodusearre om meardere betingsten te evaluearjen - de IFS-funksje.

    In IFS-formule kin maksimaal 127 logical_test / value_if_true -pearen behannelje, en de earste logyske test dy't evaluearret op TRUE "wint":

    IFS(logical_test1,value_if_true1, [logical_test2, value_if_true2]...)

    Yn oerienstimming mei de boppesteande syntaksis kin ús geneste IF-formule op dizze manier rekonstruearre wurde:

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

    Let op dat de IFS-funksje jout de #N/A-flater werom as net ien fan 'e opjûne betingsten foldien wurdt. Om dit foar te kommen, kinne jo noch ien logyske_test / wearde_as_wier tafoegje oan it ein fan jo formule dy't 0 of lege tekenrige ("") werombringt of hokker wearde jo wolle as gjin fan 'e foarige logyske tests is TRUE:

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

    As resultaat sil ús formule in lege tekenrige (lege sel) weromjaan ynstee fan de #N/A-flater as in oerienkommende sel yn kolom B is leech of befettet tekst of negatyf nûmer.

    Opmerking. Lykas geneste IF, jout de IFS-funksje fan Excel in wearde werom dy't oerienkomt mei de earste betingst dy't evaluearret nei TRUE, dat is de reden wêrom't de folchoarder fan logyske tests yn in IFS-formule fan belang is.

    Foar mear ynformaasje, sjoch ynstee Excel IFS-funksje fan geneste IF.

    KIES yn stee fan geneste IF-formule yn Excel

    In oare manier om meardere betingsten binnen ien formule yn Excel te testen is it brûken fan de KIES-funksje, dy't ûntworpen is om in wearde werom te jaan fan de list basearre op in posysje fan dy wearde.

    Tapassing op ús stekproefdataset nimt de formule de folgjende foarm oan:

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

    Yn it earste argumint ( index_num ), jo evaluearje alle betingsten en addearje de resultaten. Givendat TRUE is lyk oan 1 en FALSE oan 0, op dizze manier berekkenje jo de posysje fan de werom te jaan wearde.

    Bygelyks is de wearde yn B2 $150. Foar dizze wearde is de earste 3 betingsten TRUE en de lêste (B2 & GT; 150) is FALSE. Dus, index_num is lyk oan 3, wat betsjut dat de 3e wearde wurdt weromjûn, dat is 7%.

    Tip. As gjin fan 'e logyske tests TRUE is, is index_num lyk oan 0, en de formule jout de #VALUE! fersin. In maklike oplossing is it ynpakken fan CHOOSE yn 'e IFERROR-funksje sa:

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

    Sjoch foar mear ynformaasje Excel CHOOSE-funksje mei formulefoarbylden.

    SWITCH-funksje as in beknopte foarm fan nestele IF yn Excel

    Yn situaasjes as jo te krijen hawwe mei in fêste set fan foarôf definieare wearden, net skalen, kin de SWITCH-funksje in kompakt alternatyf wêze foar kompleks geneste IF-útspraken:

    SWITCH(ekspresje, wearde1, resultaat1, wearde2, resultaat2, …, [standert])

    De SWITCH-funksje evaluearret ekspresje tsjin in list mei wearden en jout it resultaat werom dat oerienkomt mei de earste fûn wedstriid.

    Yn it gefal dat jo de kommisje wolle berekkenje op basis fan de folgjende rangen, ynstee fan ferkeapbedragen, kinne jo dizze kompakte brûke ferzje fan geneste IF-formule yn Excel:

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

    Of jo kinne in referinsjetabel meitsje lykas werjûn yn 'e skermôfbylding hjirûnder en selferwizings brûke ynstee fan hurdkodearre wearden:

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

    Asjeblyftmerk op dat wy alle ferwizings beskoattelje útsein de earste mei it $ teken om foar te kommen dat se feroarje by it kopiearjen fan de formule nei oare sellen:

    Opmerking. De SWITCH-funksje is allinnich beskikber yn Excel 2016 en heger.

    Sjoch foar mear ynformaasje SWITCH-funksje - de kompakte foarm fan nestede IF-ferklearring.

    Mearde IF-funksjes gearfoegje yn Excel

    Lykas neamd yn it foarige foarbyld, waard de SWITCH-funksje allinich yntrodusearre yn Excel 2016. Om ferlykbere taken yn âldere Excel-ferzjes te behanneljen, kinne jo twa of mear IF-útspraken kombinearje mei de operator Concatenate (&) of de CONCATENATE-funksje .

    Bygelyks:

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

    Of

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

    As jo ​​miskien hawwe opfallen, wy fermannichfâldigje it resultaat mei 1 yn beide formules. It wurdt dien om in tekenrige dy't weromjûn wurdt troch de Concatenate-formule te konvertearjen nei in nûmer. As jo ​​ferwachte útfier tekst is, dan is de fermannichfâldigje operaasje net nedich.

    Foar mear ynformaasje, sjoch asjebleaft CONCATENATE-funksje yn Excel.

    Jo kinne sjen dat Microsoft Excel in hantsjefol goede alternativen biedt nei geneste IF-formules, en hooplik hat dizze tutorial jo wat oanwizings jûn oer hoe't jo se kinne brûke yn jo wurkblêden. Om de foarbylden dy't yn dizze tutorial besprutsen binne tichterby te besjen, binne jo wolkom om ús foarbyldwurkboek hjirûnder te downloaden. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!

    Oefenje

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.