Excelove vgnezdene izjave IF - primeri, najboljše prakse in alternative

  • Deliti To
Michael Brown

V učbeniku je razloženo, kako v Excelu uporabiti vgnezdeno funkcijo IF za preverjanje več pogojev. Spoznali boste tudi nekaj drugih funkcij, ki so lahko dobra alternativa uporabi vgnezdene formule v Excelu.

Kako običajno izvajate logiko odločanja v delovnih listih programa Excel? V večini primerov uporabite formulo IF za preverjanje pogoja in vrnete eno vrednost, če je pogoj izpolnjen, in drugo vrednost, če pogoj ni izpolnjen. Če želite oceniti več kot en pogoj in vrniti različne vrednosti glede na rezultate, uporabite več formul IF znotraj sebe.

Čeprav je vgnezdeni stavek IF zelo priljubljen, ni edini način za preverjanje več pogojev v Excelu. V tem vodniku boste našli nekaj alternativ, ki jih je vsekakor vredno raziskati.

    Excelova vgnezdena izjava IF

    Tukaj je klasična Excelova vgnezdena formula IF v splošni obliki:

    IF( pogoj1 , rezultat1 , IF( pogoj2 , rezultat2 , IF( pogoj3 , rezultat3 , rezultat4 )))

    Vidite, da je vsaka naslednja funkcija IF vgrajena v value_if_false Vsaka funkcija IF je zaprta v svoj niz oklepajev, vendar so vsi zaključni oklepaji na koncu formule.

    Naša splošna vgnezdena formula IF ovrednoti 3 pogoje in vrne 4 različne rezultate (rezultat 4 se vrne, če nobeden od pogojev ni TRUE). Prevedeno v človeški jezik, ta vgnezdena izjava IF Excelu sporoča, naj naredi naslednje:

    Test pogoj1 , če je TRUE - vrnitev rezultat1 , če FALSE -

    test pogoj2 , če je TRUE - vrnite r esult2 , če FALSE -

    test pogoj3 , če je TRUE - vrnitev rezultat3 , če FALSE -

    vrniti rezultat4

    Kot primer poiščimo provizije za več prodajalcev glede na število opravljenih prodaj:

    Komisija Prodaja
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Več kot 150 dolarjev

    V matematiki spreminjanje vrstnega reda seštevkov ne spremeni vsote, v Excelu pa spreminjanje vrstnega reda funkcij IF spremeni rezultat. Zakaj? Ker vgnezdena formula IF vrne vrednost, ki ustreza prvi pogoj TRUE Zato je zelo pomembno, da v vnešenih stavkih IF pogoje razvrstite v pravo smer - od najvišjega k najnižjemu ali od najnižjega k najvišjemu, odvisno od logike vaše formule. V našem primeru najprej preverimo "najvišji" pogoj, nato "drugi najvišji" in tako naprej:

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

    Če bi pogoje postavili v obratnem vrstnem redu, od spodaj navzgor, bi bili rezultati napačni, saj bi se naša formula ustavila po prvem logičnem preizkusu (B2>=1) za vsako vrednost, večjo od 1. Recimo, da imamo 100 USD prodaje - ta je večja od 1, zato formula ne bi preverila drugih pogojev in bi kot rezultat vrnila 3 %.

    Če želite pogoje razvrstiti od najnižjega do najvišjega, uporabite operator "manj kot" in najprej ovrednotite najnižji pogoj, nato drugega najnižjega in tako naprej:

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

    Kot vidite, je potrebnega precej razmišljanja, da bi logiko vgnezdene izjave IF pravilno zgradili do konca. In čeprav Microsoft Excel omogoča vgnezditev do 64 funkcij IF v eno formulo, to ni nekaj, kar bi v svojih delovnih listih resnično želeli početi. Če torej vi (ali kdo drug) strmite v svojo Excelovo vgnezdeno formulo IF in poskušate ugotoviti, kaj dejansko počne, je čas, da serazmislite o svoji strategiji in verjetno izberite drugo orodje iz svojega arzenala.

    Za več informacij glejte Excelov vgnezdeni stavek IF.

    Vgnezdeni IF s pogoji OR/AND

    Če morate ovrednotiti več nizov različnih pogojev, lahko te pogoje izrazite s funkcijami OR in AND, jih vgradite v izjave IF in nato izjave IF vgradite drugo v drugo.

    Vgnezdeni IF v Excelu z izjavami OR

    Z uporabo funkcije OR lahko v logičnem testu vsake funkcije IF preverite dva ali več različnih pogojev in vrnete TRUE, če je kateri koli (vsaj eden) od argumentov OR ovrednoten kot TRUE. Če želite videti, kako to dejansko deluje, si oglejte naslednji primer.

    Predpostavljajte, da imate dva stolpca prodaje, na primer januarsko prodajo v stolpcu B in februarsko prodajo v stolpcu C. Želite preveriti številke v obeh stolpcih in izračunati provizijo na podlagi višje številke. Z drugimi besedami, sestavite formulo z naslednjo logiko: če je januarska ali februarska prodaja večja od 150 USD, prodajalec dobi 10 % provizije, če je januarska ali februarska prodaja večja ali enaka101 dolar, prodajalec dobi 7-odstotno provizijo in tako naprej.

    Če želite to narediti, napišite nekaj stavkov OF, na primer OR(B2>150, C2>150), in jih vstavite v logične teste funkcij IF, ki smo jih obravnavali zgoraj. Kot rezultat dobite to formulo:

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

    Provizija je dodeljena na podlagi višjega zneska prodaje:

    Za več primerov formul si oglejte Excelov stavek IF OR.

    Vgnezdeni IF v Excelu z izjavami AND

    Če logični testi vključujejo več pogojev in morajo biti vsi ti pogoji ovrednoteni kot TRUE, jih izrazite s funkcijo AND.

    Na primer, če želite provizije dodeliti na podlagi manjšega števila prodaj, vzemite zgornjo formulo in zamenjajte OR z AND. Drugače povedano, Excelu naročite, naj vrne 10 % samo, če je januarska in februarska prodaja večja od 150 USD, 7 %, če je januarska in februarska prodaja večja ali enaka 101 USD, in tako naprej.

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

    Tako naša vgnezdena formula IF izračuna provizijo na podlagi nižjega števila v stolpcih B in C. Če je kateri od stolpcev prazen, provizije sploh ni, ker ni izpolnjen noben od pogojev AND:

    Če želite namesto praznih celic vrniti 0 %, v zadnjem argumentu zamenjajte prazen niz ('''") z 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%))))

    Več informacij najdete tukaj: Excel IF z več pogoji AND/OR.

    VLOOKUP namesto vgnezdenega IF v Excelu

    Kadar imate opravka z "lestvicami", tj. neprekinjenimi razponi številčnih vrednosti, ki skupaj pokrivajo celoten razpon, lahko v večini primerov namesto vnešenih IF-ov uporabite funkcijo VLOOKUP.

    Za začetek naredite referenčno tabelo, kot je prikazano na spodnji sliki zaslona. Nato sestavite formulo Vlookup z približno ujemanje , tj. z range_lookup argument je nastavljen na TRUE.

    Ob predpostavki, da je iskalna vrednost v B2 in referenčna tabela v F2:G5, je formula naslednja:

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

    Upoštevajte, da smo popravili table_array z absolutnimi referencami ($F$2:$G$5), da se formula pravilno kopira v druge celice:

    Z nastavitvijo zadnjega argumenta formule Vlookup na TRUE Excelu poveste, naj poišče najbližje ujemanje - če natančnega ujemanja ne najdete, vrnite naslednjo največjo vrednost, ki je manjša od vrednosti iskanja. Rezultat je, da se vaša formula ne bo ujemala le z natančnimi vrednostmi v preglednici iskanja, temveč tudi z vsemi vrednostmi, ki so vmes.

    Na primer, vrednost iskanja v B3 je $95. Ta številka ne obstaja v preglednici iskanja in Vlookup s točnim ujemanjem bi v tem primeru vrnil napako #N/A. Toda Vlookup s približnim ujemanjem nadaljuje iskanje, dokler ne najde najbližje vrednosti, ki je manjša od vrednosti iskanja (v našem primeru je to $50), in vrne vrednost iz drugega stolpca v isti vrstici (ki je 5%).

    Kaj pa, če je vrednost iskanja manjša od najmanjšega števila v tabeli iskanja ali če je celica iskanja prazna? V tem primeru bo formula VLOOKUP vrnila napako #N/A. Če to ni tisto, kar dejansko želite, vstavite VLOOKUP v IFERROR in navedite vrednost, ki se izpiše, ko vrednost iskanja ni najdena. Na primer:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Zunaj območja")

    Pomembna opomba! Da bi formula Vlookup s približnim ujemanjem delovala pravilno, mora biti prvi stolpec v preglednici za iskanje razvrščen v naraščajoči vrstni red od najmanjšega do največjega.

    Za več informacij glejte Točno ujemanje VLOOKUP proti približnemu ujemanju VLOOKUP.

    Izjava IFS kot alternativa vgnezdeni funkciji IF

    V Excelu 2016 in poznejših različicah je Microsoft uvedel posebno funkcijo za ocenjevanje več pogojev - funkcijo IFS.

    Formula IFS lahko vsebuje do 127 logični_test / value_if_true parov, pri čemer zmaga prvi logični test, ki je ovrednoten kot TRUE:

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

    V skladu z zgornjo sintakso lahko našo vgnezdeno formulo IF rekonstruiramo na ta način:

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

    Bodite pozorni, da funkcija IFS vrne napako #N/A, če ni izpolnjen noben od navedenih pogojev. Da bi se temu izognili, lahko dodate še eno logični_test / value_if_true na konec formule, ki bo vrnila 0 ali prazen niz ("") ali katero koli želeno vrednost, če nobeden od prejšnjih logičnih testov ni TRUE:

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

    Če je ustrezna celica v stolpcu B prazna ali vsebuje besedilo ali negativno število, bo naša formula namesto napake #N/A vrnila prazen niz (prazno celico).

    Opomba: Excelova funkcija IFS tako kot vgnezdena funkcija IF vrne vrednost, ki ustreza prvemu pogoju, ki je ovrednoten kot TRUE, zato je vrstni red logičnih testov v formuli IFS pomemben.

    Za več informacij glejte Excelova funkcija IFS namesto vgnezdenega IF.

    Izbira namesto vgnezdene formule IF v Excelu

    Drug način za preverjanje več pogojev v eni sami formuli v Excelu je uporaba funkcije CHOOSE, ki je zasnovana tako, da vrne vrednost s seznama na podlagi položaja te vrednosti.

    Če formulo uporabimo za naš nabor vzorčnih podatkov, dobimo naslednjo obliko:

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

    V prvem argumentu ( index_num ), ocenite vse pogoje in seštejte rezultate. Glede na to, da je TRUE enako 1, FALSE pa 0, na ta način izračunate položaj vrednosti, ki jo je treba vrniti.

    Na primer, vrednost v polju B2 je 150 USD. Za to vrednost so prvi trije pogoji TRUE, zadnji (B2> 150) pa FALSE, index_num enaka 3, kar pomeni, da se vrne tretja vrednost, ki je 7%.

    Nasvet. Če nobeden od logičnih testov ni TRUE, index_num je enak 0 in formula vrne napako #VALUE!. Enostavna rešitev je, da funkcijo CHOOSE zavijemo v funkcijo IFERROR na naslednji način:

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

    Za več informacij glejte Excelovo funkcijo CHOOSE s primeri formul.

    Funkcija SWITCH kot kratka oblika vgnezdenega IF v Excelu

    V primerih, ko imate opravka s fiksnim naborom vnaprej določenih vrednosti in ne z lestvicami, je lahko funkcija SWITCH kompaktna alternativa zapletenim vgnezdenim stavkom IF:

    SWITCH(izraz, vrednost1, rezultat1, vrednost2, rezultat2, ..., [privzeto])

    Funkcija SWITCH ovrednoti izraz proti seznamu vrednosti in vrne rezultat ki ustreza prvemu najdenemu ujemanju.

    Če želite provizijo izračunati na podlagi naslednjih razredov in ne na podlagi zneskov prodaje, lahko uporabite to kompaktno različico vgnezdene formule IF v Excelu:

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

    Lahko pa ustvarite referenčno tabelo, kot je prikazano na spodnji sliki zaslona, in namesto trdno zakodiranih vrednosti uporabite reference celic:

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

    Opazite, da smo vse reference, razen prve, zaklenili z znakom $, da bi preprečili njihovo spreminjanje pri kopiranju formule v druge celice:

    Opomba: Funkcija SWITCH je na voljo samo v Excelu 2016 in novejših različicah.

    Za več informacij glejte funkcijo SWITCH - kompaktna oblika vgnezdenega stavka IF.

    Povezovanje več funkcij IF v Excelu

    Kot je navedeno v prejšnjem primeru, je bila funkcija SWITCH uvedena šele v Excelu 2016. Za reševanje podobnih nalog v starejših različicah Excela lahko združite dva ali več stavkov IF z uporabo operatorja Concatenate (&) ali funkcije CONCATENATE.

    Na primer:

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

    Ali

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

    Kot ste morda opazili, v obeh formulah rezultat pomnožimo z 1. To je storjeno zaradi pretvorbe niza, ki ga vrne formula Concatenate, v število. Če je vaš pričakovani rezultat besedilo, operacija pomnoževanja ni potrebna.

    Za več informacij glejte funkcijo CONCATENATE v Excelu.

    Vidite, da Microsoft Excel ponuja nekaj dobrih alternativ za vgnezdene formule IF, in upam, da vam je to vodilo dalo nekaj namigov, kako jih uporabiti v svojih delovnih listih. Če si želite podrobneje ogledati primere, obravnavane v tem vodilu, lahko prenesete naš vzorčni delovni zvezek spodaj. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!

    Praktični delovni zvezek za prenos

    Excelova vgnezdena izjava If - primeri (.xlsx datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.