Excel Instrucțiuni IF imbricate - exemple, cele mai bune practici și alternative

  • Imparte Asta
Michael Brown

Tutorialul explică cum să utilizați funcția IF imbricate în Excel pentru a verifica mai multe condiții. Veți învăța, de asemenea, câteva alte funcții care ar putea fi alternative bune la utilizarea unei formule imbricate în Excel.

Cum implementați, de obicei, o logică decizională în foile de lucru Excel? În majoritatea cazurilor, veți utiliza o formulă IF pentru a testa condiția și a returna o valoare dacă condiția este îndeplinită, o altă valoare dacă condiția nu este îndeplinită. Pentru a evalua mai multe condiții și a returna valori diferite în funcție de rezultate, trebuie să aninați mai multe formule IF una în interiorul celeilalte.

Deși foarte populară, instrucțiunea IF imbricate nu este singura modalitate de a verifica mai multe condiții în Excel. În acest tutorial, veți găsi o mână de alternative care merită cu siguranță explorate.

    Instrucțiunea IF imbricate în Excel

    Iată formula clasică de tip IF imbricate din Excel într-o formă generică:

    IF( condiție1 , rezultat1 , IF( condiție2 , rezultat2 , IF( condiție3 , rezultat3 , rezultat4 )))

    Puteți vedea că fiecare funcție IF ulterioară este încorporată în value_if_false Fiecare funcție IF este închisă în propriul set de paranteze, dar toate parantezele de închidere se află la sfârșitul formulei.

    Formula noastră generică de tip IF imbricate evaluează 3 condiții și returnează 4 rezultate diferite (rezultatul 4 este returnat dacă niciuna dintre condiții nu este TRUE). Tradusă într-un limbaj uman, această instrucțiune IF imbricate îi spune lui Excel să facă următoarele:

    Test condiție1 , dacă TRUE - return rezultat1 , dacă FALSE -

    test condiție2 , dacă TRUE - returnează r esult2 , dacă FALSE -

    test condiție3 , dacă TRUE - return rezultat3 , dacă FALSE -

    return rezultat4

    Ca exemplu, să aflăm comisioanele pentru un număr de vânzători pe baza numărului de vânzări pe care le-au realizat:

    Comisia Vânzări
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Peste 150 de dolari

    În matematică, schimbarea ordinii adunărilor nu schimbă suma. În Excel, schimbarea ordinii funcțiilor IF schimbă rezultatul. De ce? Pentru că o formulă IF imbricata returnează o valoare corespunzătoare funcției prima condiție TRUE Prin urmare, în declarațiile IF imbricate, este foarte important să aranjați condițiile în direcția corectă - de la mare la mic sau de la mic la mare, în funcție de logica formulei dvs. În cazul nostru, verificăm mai întâi condiția "cea mai mare", apoi "a doua cea mai mare" și așa mai departe:

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

    Dacă am plasa condițiile în ordinea inversă, de jos în sus, rezultatele ar fi toate greșite, deoarece formula noastră s-ar opri după primul test logic (B2>=1) pentru orice valoare mai mare decât 1. Să spunem că avem vânzări de 100 de dolari - este mai mare decât 1, astfel încât formula nu ar verifica alte condiții și ar returna 3% ca rezultat.

    Dacă preferați să aranjați condițiile de la cel mai mic la cel mai mare, atunci utilizați operatorul "less than" și evaluați mai întâi condiția "cea mai mică", apoi "a doua cea mai mică" și așa mai departe:

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

    După cum vedeți, este nevoie de destul de multă gândire pentru a construi corect logica unei declarații IF imbricate până la capăt. Și, deși Microsoft Excel permite să aninzi până la 64 de funcții IF într-o singură formulă, nu este ceva ce ați dori cu adevărat să faceți în foile de calcul. Așadar, dacă dumneavoastră (sau altcineva) vă uitați la formula IF imbricata din Excel încercând să vă dați seama ce face de fapt, este timpul săsă vă reconsiderați strategia și, probabil, să alegeți un alt instrument din arsenalul dumneavoastră.

    Pentru mai multe informații, consultați Excel Nested IF statement.

    IF imbricate cu condiții OR/AND

    În cazul în care aveți nevoie să evaluați câteva seturi de condiții diferite, puteți exprima aceste condiții folosind funcțiile OR și AND, puteți anina funcțiile în cadrul instrucțiunilor IF și apoi puteți anina instrucțiunile IF una în alta.

    IF imbricate în Excel cu declarații OR

    Prin utilizarea funcției OR puteți verifica două sau mai multe condiții diferite în testul logic al fiecărei funcții IF și să returnați TRUE dacă oricare (cel puțin unul) dintre argumentele OR este evaluat la TRUE. Pentru a vedea cum funcționează efectiv, vă rugăm să luați în considerare următorul exemplu.

    Să presupunem că aveți două coloane de vânzări, de exemplu, vânzările din ianuarie în coloana B și vânzările din februarie în coloana C. Doriți să verificați cifrele din ambele coloane și să calculați comisionul pe baza unui număr mai mare. Cu alte cuvinte, construiți o formulă cu următoarea logică: dacă vânzările din ianuarie sau februarie sunt mai mari de 150 de dolari, vânzătorul primește un comision de 10%, dacă vânzările din ianuarie sau februarie sunt mai mari sau egale cu101 dolari, vânzătorul primește un comision de 7% și așa mai departe.

    Pentru a face acest lucru, scrieți câteva declarații OF, cum ar fi OR(B2>150, C2>150) și aninați-le în testele logice ale funcțiilor IF discutate mai sus. Ca rezultat, veți obține această formulă:

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

    Iar comisionul să fie atribuit pe baza valorii mai mari a vânzărilor:

    Pentru mai multe exemple de formule, vă rugăm să consultați Excel IF OR statement.

    IF imbricate în Excel cu declarații AND

    În cazul în care testele logice includ mai multe condiții și toate aceste condiții ar trebui să fie evaluate la TRUE, exprimați-le prin utilizarea funcției AND.

    De exemplu, pentru a atribui comisioanele pe baza unui număr mai mic de vânzări, luați formula de mai sus și înlocuiți OR cu declarațiile AND. Altfel spus, îi spuneți lui Excel să returneze 10% numai dacă vânzările din ianuarie și februarie sunt mai mari de 150 de dolari, 7% dacă vânzările din ianuarie și februarie sunt mai mari sau egale cu 101 dolari și așa mai departe.

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

    Ca rezultat, formula noastră IF imbricata calculează comisionul pe baza numărului cel mai mic din coloanele B și C. Dacă una dintre coloane este goală, nu există niciun comision, deoarece nu este îndeplinită niciuna dintre condițiile AND:

    Dacă doriți să returnați 0% în loc de celule goale, înlocuiți șirul gol (''") din ultimul argument cu 0%:

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

    Mai multe informații pot fi găsite aici: Excel IF cu mai multe condiții AND/OR.

    VLOOKUP în loc de IF imbricate în Excel

    Atunci când aveți de-a face cu "scale", adică intervale continue de valori numerice care împreună acoperă întregul interval, în majoritatea cazurilor puteți utiliza funcția VLOOKUP în loc de IF-uri imbricate.

    Pentru început, creați un tabel de referință, așa cum se arată în captura de ecran de mai jos. Apoi, construiți o formulă Vlookup cu potrivire aproximativă , adică cu range_lookup setat la TRUE.

    Presupunând că valoarea de căutare este în B2 și că tabelul de referință este F2:G5, formula este următoarea:

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

    Vă rugăm să observați că am fixat tabel_array cu referințe absolute ($F$2:$G$5) pentru ca formula să fie copiată corect în alte celule:

    Prin setarea ultimului argument al formulei Vlookup la TRUE, îi spuneți lui Excel să caute cea mai apropiată potrivire - în cazul în care nu se găsește o potrivire exactă, returnează următoarea cea mai mare valoare care este mai mică decât valoarea din tabelul de căutare. Ca rezultat, formula dvs. va corespunde nu numai valorilor exacte din tabelul de căutare, ci și oricăror valori care se află între ele.

    De exemplu, valoarea de căutare din B3 este $95. Acest număr nu există în tabelul de căutare, iar Vlookup cu potrivire exactă ar returna o eroare #N/A în acest caz. Dar Vlookup cu potrivire aproximativă continuă căutarea până când găsește cea mai apropiată valoare care este mai mică decât valoarea de căutare (care este $50 în exemplul nostru) și returnează o valoare din a doua coloană din același rând (care este 5%).

    Dar ce se întâmplă dacă valoarea de căutare este mai mică decât cel mai mic număr din tabelul de căutare sau dacă celula de căutare este goală? În acest caz, o formulă Vlookup va returna eroarea #N/A. Dacă nu este ceea ce doriți de fapt, aninați VLOOKUP în IFERROR și furnizați valoarea de ieșire atunci când valoarea de căutare nu este găsită. De exemplu:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "În afara intervalului")

    Notă importantă! Pentru ca o formulă Vlookup cu potrivire aproximativă să funcționeze corect, prima coloană din tabelul de căutare trebuie să fie sortată în ordine crescătoare , de la cel mai mic la cel mai mare.

    Pentru mai multe informații, consultați VLOOKUP cu potrivire exactă vs. VLOOKUP cu potrivire aproximativă.

    Instrucțiunea IFS ca alternativă la funcția IF imbricate

    În Excel 2016 și în versiunile ulterioare, Microsoft a introdus o funcție specială pentru a evalua mai multe condiții - funcția IFS.

    O formulă IFS poate gestiona până la 127 test_logic / value_if_true iar primul test logic care se evaluează la TRUE "câștigă":

    IFS(test_logic1, valoare_dacă_este_adevărat1, [test_logic2, valoare_dacă_este_adevărat2]...)

    În conformitate cu sintaxa de mai sus, formula noastră de tip IF imbricate poate fi reconstruită în felul următor:

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

    Vă rugăm să fiți atenți la faptul că funcția IFS returnează eroarea #N/A dacă nu este îndeplinită niciuna dintre condițiile specificate. Pentru a evita acest lucru, puteți adăuga încă o funcție test_logic / value_if_true la sfârșitul formulei, care va returna 0 sau un șir gol ("") sau orice altă valoare dorită dacă niciunul dintre testele logice anterioare nu este adevărat:

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

    Ca rezultat, formula noastră va returna un șir gol (celulă goală) în loc de eroarea #N/A dacă o celulă corespunzătoare din coloana B este goală sau conține text sau un număr negativ.

    Notă: La fel ca și în cazul funcției IF imbricate, funcția IFS din Excel returnează o valoare corespunzătoare primei condiții care este evaluată la TRUE, motiv pentru care ordinea testelor logice dintr-o formulă IFS este importantă.

    Pentru mai multe informații, consultați funcția Excel IFS în loc de IF imbricate.

    ALEGE în loc de formula IF imbricate în Excel

    O altă modalitate de a testa mai multe condiții în cadrul unei singure formule în Excel este utilizarea funcției CHOOSE, care este concepută pentru a returna o valoare din listă pe baza unei poziții a acelei valori.

    Aplicată la eșantionul nostru de date, formula are următoarea formă:

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

    În primul argument ( index_num ), se evaluează toate condițiile și se adună rezultatele. Având în vedere că TRUE este egal cu 1 și FALSE cu 0, în acest fel se calculează poziția valorii care trebuie returnată.

    De exemplu, valoarea din B2 este $150. Pentru această valoare, primele 3 condiții sunt ADEVĂRATE, iar ultima (B2> 150) este FALSE. Deci, index_num este egal cu 3, ceea ce înseamnă că este returnată a treia valoare, care este 7%.

    Sfat: Dacă niciunul dintre testele logice nu este ADEVĂRAT, index_num este egal cu 0, iar formula returnează eroarea #VALUE! O soluție simplă este includerea CHOOSE în funcția IFERROR astfel:

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

    Pentru mai multe informații, consultați funcția Excel CHOOSE cu exemple de formule.

    Funcția SWITCH ca o formă concisă de IF imbricate în Excel

    În situațiile în care aveți de-a face cu un set fix de valori predefinite, nu cu scale, funcția SWITCH poate fi o alternativă compactă la instrucțiunile complexe IF imbricate:

    SWITCH(expresie, valoare1, rezultat1, valoare2, rezultat2, ..., [implicit])

    Funcția SWITCH evaluează expresie față de o listă de valori și returnează rezultat corespunzătoare primei corespondențe găsite.

    În cazul în care doriți să calculați comisionul pe baza următoarelor note, mai degrabă decât pe baza valorii vânzărilor, puteți utiliza această versiune compactă a formulei IF imbricate în Excel:

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

    Sau puteți crea un tabel de referință, așa cum se arată în imaginea de mai jos și puteți utiliza referințe de celule în loc de valori codificate:

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

    Vă rugăm să observați că blocăm toate referințele, cu excepția primei referințe cu semnul $, pentru a preveni schimbarea lor la copierea formulei în alte celule:

    Notă. Funcția SWITCH este disponibilă numai în Excel 2016 și versiunile ulterioare.

    Pentru mai multe informații, consultați funcția SWITCH - forma compactă a instrucțiunii IF imbricate.

    Concatenarea mai multor funcții IF în Excel

    După cum s-a menționat în exemplul anterior, funcția SWITCH a fost introdusă doar în Excel 2016. Pentru a gestiona sarcini similare în versiunile mai vechi de Excel, puteți combina două sau mai multe instrucțiuni IF utilizând operatorul Concatenate (&) sau funcția CONCATENATE.

    De exemplu:

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

    Sau

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

    După cum probabil ați observat, în ambele formule înmulțim rezultatul cu 1. Acest lucru se face pentru a converti un șir de caractere returnat de formula Concatenate într-un număr. Dacă rezultatul așteptat este un text, atunci operația de înmulțire nu este necesară.

    Pentru mai multe informații, consultați funcția CONCATENATE în Excel.

    Puteți vedea că Microsoft Excel oferă o mână de alternative bune la formulele IF imbricate și sperăm că acest tutorial v-a oferit câteva indicii despre cum să le valorificați în foile dvs. de lucru. Pentru a vedea mai îndeaproape exemplele discutate în acest tutorial, vă invităm să descărcați exemplul nostru de registru de lucru de mai jos. Vă mulțumesc pentru lectură și sper să ne vedem pe blogul nostru săptămâna viitoare!

    Caietul de practică pentru descărcare

    Instrucțiune If imbricata în Excel - exemple (.xlsx file)

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.