Excel ugniježđene IF izjave - primjeri, najbolje prakse i alternative

  • Podijeli Ovo
Michael Brown

Udžbenik objašnjava kako koristiti ugniježđenu funkciju IF u programu Excel za provjeru više uvjeta. Također ćete naučiti nekoliko drugih funkcija koje bi mogle biti dobra alternativa korištenju ugniježđene formule u Excelu.

Kako obično implementirate logiku donošenja odluka u svojim Excel radnim listovima? U većini slučajeva upotrijebili biste formulu IF da biste testirali svoj uvjet i vratili jednu vrijednost ako je uvjet ispunjen, drugu vrijednost ako uvjet nije ispunjen. Da biste procijenili više od jednog uvjeta i vratili različite vrijednosti ovisno o rezultatima, ugniježdite više IF-ova jedan u drugi.

Iako vrlo popularan, ugniježđeni IF iskaz nije jedini način za provjeru više uvjeta u Excelu. U ovom vodiču pronaći ćete pregršt alternativa koje svakako vrijedi istražiti.

    Excel ugniježđena IF izjava

    Ovdje je klasična Excel ugniježđena IF formula u generičkom obliku :

    IF( uvjet1, rezultat1, IF( uvjet2, rezultat2, IF( uvjet3, rezultat3, rezultat4)))

    Možete vidjeti da je svaka sljedeća IF funkcija ugrađena u argument value_if_false prethodne funkcije. Svaka funkcija IF zatvorena je u vlastitom skupu zagrada, ali sve su zagrade koje se zatvaraju na kraju formule.

    Naša generička ugniježđena formula IF procjenjuje 3 uvjeta i vraća 4 različita rezultata (vraća se rezultat 4 ako ništa odradna knjiga za preuzimanje

    Excel ugniježđena If izjava - primjeri (.xlsx datoteka)

    uvjeti su TRUE). Prevedeno na ljudski jezik, ova ugniježđena IF izjava govori Excelu da učini sljedeće:Testiraj uvjet1, ako je TRUE - vrati rezultat1, ako je FALSE -

    testiraj uvjet2 , ako je TRUE - vrati r rezultat2 , ako je FALSE -

    testiraj uvjet3 , ako je TRUE - vrati rezultat3 , ako FALSE -

    return result4

    Kao primjer, saznajmo provizije za određeni broj prodavača na temelju količine prodaje koju su ostvarili:

    Provizija Prodaja
    3% 1$ - 50$
    5% 51 USD - 100 USD
    7% 101 USD - 150 USD
    10% Preko 150 USD

    U matematici, promjena redoslijeda pribrojnika ne mijenja zbroj. U Excelu promjena redoslijeda funkcija IF mijenja rezultat. Zašto? Budući da ugniježđena IF formula vraća vrijednost koja odgovara prvom TRUE uvjetu . Stoga je u vašim ugniježđenim IF izjavama vrlo važno rasporediti uvjete u pravom smjeru - od visokog prema niskom ili od niskog prema visokom, ovisno o logici vaše formule. U našem slučaju, prvo provjeravamo "najviši" uvjet, zatim "drugi najviši", i tako dalje:

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

    Ako smo postavili uvjetima obrnutim redoslijedom, odozdo prema gore, rezultati bi bili pogrešni jer bi naša formula stala nakon prvog logičkog testa (B2>=1) za bilo koju vrijednost veću od 1. Recimo, imamo 100 USDu prodaji - veći je od 1, tako da formula ne bi provjeravala druge uvjete i vratila 3% kao rezultat.

    Ako biste radije rasporedili uvjete od niskih prema visokim, upotrijebite "manje od " i prvo procijenite "najniži" uvjet, zatim "drugi najniži", i tako dalje:

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

    Kao što vidite, potrebno je dosta razmišljanja da se izgradi logika ugniježđene IF naredbe ispravno sve do kraja. I premda Microsoft Excel dopušta ugniježđivanje do 64 IF funkcije u jednu formulu, to nije nešto što biste stvarno željeli raditi u svojim radnim listovima. Dakle, ako vi (ili netko drugi) gledate svoju Excel ugniježđenu IF formulu pokušavajući shvatiti što ona zapravo radi, vrijeme je da preispitate svoju strategiju i vjerojatno odaberete neki drugi alat u svom arsenalu.

    Za više informacija , pogledajte Excel ugniježđenu IF naredbu.

    Ugniježđeni IF s uvjetima ILI/I

    U slučaju da trebate procijeniti nekoliko skupova različitih uvjeta, te uvjete možete izraziti pomoću ILI kao i I funkcija, ugniježdite funkcije unutar IF naredbi, a zatim ugniježdite IF naredbe jednu u drugu.

    Ugniježđeni IF u Excelu s ILI naredbama

    Upotrebom funkcije OR možete provjeriti dva ili više različite uvjete u logičkom testu svake funkcije IF i vraća TRUE ako bilo koji (barem jedan) argument ILI da vrijednost TRUE. Da biste vidjeli kako to zapravo radi, razmotritesljedeći primjer.

    Pretpostavimo da imate dva stupca prodaje, recimo prodaju u siječnju u stupcu B i prodaju u veljači u stupcu C. Želite provjeriti brojeve u oba stupca i izračunati proviziju na temelju većeg broja. Drugim riječima, gradite formulu sa sljedećom logikom: ako je prodaja u siječnju ili veljači veća od 150 USD, prodavač dobiva 10% provizije, ako je prodaja u siječnju ili veljači veća ili jednaka 101 USD, prodavač dobiva 7% provizije , i tako dalje.

    Da biste to učinili, napišite nekoliko OF iskaza kao što je OR(B2>150, C2>150) i ugniježdite ih u logičke testove funkcija IF o kojima smo govorili gore. Kao rezultat, dobivate ovu formulu:

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

    I dodijelite proviziju na temelju većeg iznosa prodaje:

    Za više primjera formula, pogledajte izjavu Excel IF OR.

    Ugniježđeni IF u Excelu s izjavama AND

    Ako vaši logički testovi uključuju više uvjeta, a svi bi ti uvjeti trebali procijeniti TRUE, izrazite ih pomoću funkcije AND.

    Na primjer, da biste dodijelili provizije na temelju nižeg broja prodaja, uzmite gornju formulu i zamijenite ILI naredbama AND. Drugim riječima, kažete Excelu da vrati 10% samo ako je prodaja u siječnju i veljači veća od 150 USD, 7% ako je prodaja u siječnju i veljači veća ili jednaka 101 USD, i tako dalje.

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

    Kao rezultat, naša ugniježđena IF formula izračunava provizijuna temelju nižeg broja u stupcima B i C. Ako je bilo koji stupac prazan, provizije uopće nema jer nijedan od uvjeta I nije ispunjen:

    Ako želite vratiti 0% umjesto praznih ćelija, zamijenite prazan niz (''") u zadnjem argumentu s 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%))))

    Više informacija možete pronaći ovdje: Excel IF s više I/ILI uvjeta.

    VLOOKUP umjesto ugniježđenog IF-a u Excelu

    Kada imate posla s "ljestvicama", tj. kontinuiranim rasponima numeričkih vrijednosti koji zajedno pokrivaju cijeli raspon, u većini slučajeva možete koristiti funkciju VLOOKUP umjesto ugniježđenih IF-ova.

    Za početak, napravite referentnu tablicu kao što je prikazano na snimci zaslona u nastavku. A zatim izgradite Vlookup formulu s približno podudaranje , tj. s argumentom range_lookup postavljenim na TRUE.

    Pod pretpostavkom da je vrijednost traženja u B2, a referentna tablica F2:G5, formula ide kako slijedi :

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

    Napominjemo da popravljamo table_array s apsolutnim referencama ($F$2:$G$5) kako bi se formula ispravno kopirala u druge ćelije:

    Postavljanjem posljednjeg argumenta vaše Vlookup formule na TRUE, govorite Excelu da traženje najbližeg podudaranja - ako nije pronađeno točno podudaranje, vrati sljedeću najveću vrijednost koja je manja od tražene vrijednosti. Kao rezultat toga, vaša formula će odgovarati ne samo točnim vrijednostima u tablici pretraživanja, već i bilo kojojvrijednosti koje su između.

    Na primjer, vrijednost pretraživanja u B3 je 95 USD. Ovaj broj ne postoji u tablici pretraživanja, a Vlookup s točnim podudaranjem bi u ovom slučaju vratio pogrešku #N/A. Ali Vlookup s približnim podudaranjem nastavlja tražiti sve dok ne pronađe najbližu vrijednost koja je manja od vrijednosti traženja (koja je 50 USD u našem primjeru) i vraća vrijednost iz drugog stupca u istom retku (što je 5%).

    Ali što ako je vrijednost pretraživanja manja od najmanjeg broja u tablici pretraživanja ili je ćelija za pretraživanje prazna? U tom će slučaju Vlookup formula vratiti pogrešku #N/A. Ako to nije ono što zapravo želite, ugniježdite VLOOKUP unutar IFERROR i navedite vrijednost za izlaz kada se vrijednost pretraživanja ne pronađe. Na primjer:

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

    Važna napomena! Da bi Vlookup formula s približnim podudaranjem radila ispravno, prvi stupac u tablici pretraživanja mora biti poredan uzlaznim redoslijedom , od najmanjeg prema najvećem.

    Za više informacija pogledajte Točno podudaranje VLOOKUP u odnosu na VLOOKUP s približnim podudaranjem.

    IFS izjava kao alternativa ugniježđenoj IF funkciji

    U Excelu 2016 i novijim verzijama, Microsoft je uveo posebnu funkciju za procjenu višestrukih uvjeta - IFS funkciju.

    IFS formula može obraditi do 127 parova logical_test / value_if_true , a prvi logički test koji daje vrijednost TRUE "pobjeđuje":

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

    U skladu s gornjom sintaksom, naša ugniježđena IF formula može se rekonstruirati na ovaj način:

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

    Molimo obratite pozornost da IFS funkcija vraća pogrešku #N/A ako nijedan od navedenih uvjeta nije ispunjen. Da biste to izbjegli, možete dodati još jedan logical_test / value_if_true na kraj vaše formule koja će vratiti 0 ili prazan niz ("") ili bilo koju vrijednost koju želite ako nijedna od prethodni logički testovi su TRUE:

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

    Kao rezultat, naša će formula vratiti prazan niz (prazna ćelija) umjesto pogreške #N/A ako je odgovarajuća ćelija u stupcu B prazno ili sadrži tekst ili negativan broj.

    Napomena. Poput ugniježđenog IF-a, Excelova IFS funkcija vraća vrijednost koja odgovara prvom uvjetu koji se procjenjuje na TRUE, zbog čega je bitan redoslijed logičkih testova u IFS formuli.

    Za više informacija, umjesto toga pogledajte Excel IFS funkciju ugniježđenog IF.

    CHOOSE umjesto ugniježđene IF formule u Excelu

    Još jedan način testiranja više uvjeta unutar jedne formule u Excelu je korištenje funkcije CHOOSE koja je dizajnirana za vraćanje vrijednosti iz popis na temelju pozicije te vrijednosti.

    Primijenjena na naš ogledni skup podataka, formula ima sljedeći oblik:

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

    U prvom argumentu ( index_num ), procjenjujete sve uvjete i zbrajate rezultate. S obziromda je TRUE jednako 1, a FALSE 0, na ovaj način izračunavate poziciju vrijednosti koju treba vratiti.

    Na primjer, vrijednost u B2 je 150 USD. Za ovu vrijednost, prva 3 uvjeta su TRUE, a posljednji (B2 > 150) je FALSE. Dakle, index_num jednako je 3, što znači da se vraća treća vrijednost, a to je 7%.

    Savjet. Ako nijedan od logičkih testova nije TRUE, index_num je jednak 0, a formula vraća #VALUE! greška. Jednostavan popravak je omatanje CHOOSE u funkciji IFERROR ovako:

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

    Za više informacija pogledajte Excel funkciju CHOOSE s primjerima formula.

    Funkcija SWITCH kao sažeti oblik ugniježđenog IF-a u Excelu

    U situacijama kada imate posla s fiksnim skupom unaprijed definiranih vrijednosti, a ne s ljestvicama, funkcija SWITCH može biti kompaktna alternativa složenim ugniježđene IF izjave:

    SWITCH(izraz, vrijednost1, rezultat1, vrijednost2, rezultat2, …, [zadano])

    Funkcija SWITCH procjenjuje izraz prema popisu vrijednosti i vraća rezultat koji odgovara prvom pronađenom podudaranju.

    U slučaju da želite izračunati proviziju na temelju sljedećih ocjena, a ne iznosa prodaje, možete koristiti ovaj kompaktni verzija ugniježđene IF formule u Excelu:

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

    Ili, možete napraviti referentnu tablicu kao što je prikazano na snimci zaslona u nastavku i koristiti reference ćelija umjesto tvrdo kodiranih vrijednosti:

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

    Molim vasprimijetite da zaključavamo sve reference osim prve sa znakom $ kako bismo spriječili njihovu promjenu prilikom kopiranja formule u druge ćelije:

    Napomena. Funkcija SWITCH dostupna je samo u programu Excel 2016 i novijim verzijama.

    Za više informacija pogledajte funkciju SWITCH - kompaktni oblik ugniježđene izjave IF.

    Spajanje više funkcija IF u programu Excel

    Kao što je spomenuto u prethodnom primjeru, funkcija SWITCH uvedena je samo u Excelu 2016. Za rješavanje sličnih zadataka u starijim verzijama Excela, možete kombinirati dvije ili više IF naredbi pomoću operatora Concatenate (&) ili funkcije CONCATENATE .

    Na primjer:

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

    Ili

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

    Kako možda imate primijetili, množimo rezultat s 1 u obje formule. To se radi za pretvaranje niza vraćenog formulom Concatenate u broj. Ako je vaš očekivani izlaz tekst, tada operacija množenja nije potrebna.

    Za više informacija pogledajte funkciju CONCATENATE u Excelu.

    Možete vidjeti da Microsoft Excel nudi pregršt dobrih alternativa na ugniježđene IF formule i nadamo se da vam je ovaj vodič dao neke naznake o tome kako ih iskoristiti u svojim radnim listovima. Da biste pobliže pogledali primjere o kojima se govori u ovom vodiču, slobodno možete preuzeti naš primjer radne knjige u nastavku. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!

    Vježbajte

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.