Excel Вгнездени IF изјави - примери, најдобри практики и алтернативи

  • Споделете Го Ова
Michael Brown

Упатството објаснува како да се користи вгнездената функција IF во Excel за проверка на повеќе услови. Ќе научите и неколку други функции кои би можеле да бидат добри алтернативи за користење на вгнездена формула во Excel.

Како обично ја имплементирате логиката на одлучување во вашите работни листови на Excel? Во повеќето случаи, би користеле формула IF за да ја тестирате вашата состојба и да вратите една вредност ако условот е исполнет, друга вредност ако условот не е исполнет. За да оцените повеќе од еден услов и да вратите различни вредности во зависност од резултатите, вгнездувате повеќе IF-а едни во други.

Иако многу популарна, вгнездената изјава IF не е единствениот начин за проверка на повеќе услови во Excel. Во ова упатство, ќе најдете неколку алтернативи кои дефинитивно вреди да се истражат.

    Excel вгнездена изјава IF

    Еве ја класичната формула Excel вгнездена IF во генеричка форма :

    IF( услов1, резултат1, IF( услов2, резултат2, IF( услов3, резултат3, резултат4)))

    Можете да видите дека секоја следна функција IF е вградена во аргументот value_if_false од претходната функција. Секоја IF функција е затворена во сопствен сет на загради, но сите загради за затворање се на крајот од формулата.

    Нашата генеричка вгнездена формула IF проценува 3 услови и враќа 4 различни резултати (резултатот 4 се враќа ако ниту еден одработна книга за преземање

    Excel вгнездена изјава If - примери (датотека .xlsx)

    условите е ВИСТИНА). Преведена на човечки јазик, оваа вгнездена изјава IF му кажува на Excel да го направи следново:Тест услов1, ако е TRUE - врати резултат1, ако FALSE -

    тест услов2 , ако ТОЧНО - врати r резултат2 , ако НЕТОЧНО -

    тест услов3 , ако ТОЧНО - врати резултат3 , ако НЕТОЧНО -

    врати резултат4

    Како пример, ајде да дознаеме провизии за одреден број продавачи врз основа на износот на продажбата што ја направиле:

    Провизија Продажба
    3% $1 - $50
    5% 51$ - 100$
    7% 101$ - 150$
    10% Над $150

    Во математиката, менувањето на редоследот на додавања не ја менува сумата. Во Excel, менувањето на редоследот на функциите IF го менува резултатот. Зошто? Бидејќи вгнездената формула IF враќа вредност што одговара на првиот TRUE услов . Затоа, во вашите вгнездени изјави IF, многу е важно условите да се подредат во вистинската насока - високо кон ниско или ниско до високо, во зависност од логиката на вашата формула. Во нашиот случај, прво го проверуваме условот „највисок“, потоа „вториот највисок“ и така натаму:

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

    Ако го поставивме услови во обратен редослед, од дното нагоре, резултатите би биле сите погрешни затоа што нашата формула би запрела по првиот логички тест (B2>=1) за која било вредност поголема од 1. Да речеме, имаме 100 долариво продажба - таа е поголема од 1, така што формулата нема да ги провери другите услови и да врати 3% како резултат.

    Ако сакате да ги распоредите условите од ниско до високо, тогаш користете го „помалку од " оператор и проценете го прво условот „најниска“, потоа „втората најниска“, и така натаму:

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

    Како што гледате, потребно е многу размислување за да се изгради логиката на вгнездена изјава IF правилно сè до крајот. И иако Microsoft Excel дозволува вгнездување до 64 IF функции во една формула, тоа не е нешто што навистина би сакале да го правите во вашите работни листови. Значи, ако вие (или некој друг) гледате во вашата формула IF вгнездена во Excel обидувајќи се да откриете што всушност прави, време е да ја преиспитате вашата стратегија и веројатно да изберете друга алатка во вашиот арсенал.

    За повеќе информации , погледнете ја изјавата на Excel вгнездено IF.

    Вгнездено IF со ИЛИ/И услови

    Во случај да треба да оцените неколку групи на различни услови, можете да ги изразите тие услови користејќи ИЛИ како и Функција AND, вгнездувајте ги функциите во наредбите IF, а потоа вгнездувајте ги изјавите IF еден во друг.

    Вгнездени IF во Excel со OR изјави

    Со користење на функцијата ИЛИ можете да проверите две или повеќе различни услови во логичкиот тест на секоја IF функција и вратете TRUE доколку некој (барем еден) од OR аргументите се вреднува како TRUE. За да видите како всушност функционира, ве молиме разгледајте госледниот пример.

    Да се ​​претпостави дека имате две колони на продажба, да речеме продажбата во јануари во колоната Б и продажбата во февруари во колоната В. Сакате да ги проверите бројките во двете колони и да ја пресметате провизијата врз основа на поголем број. Со други зборови, градите формула со следнава логика: ако продажбата во јануари или февруари е поголема од 150 долари, продавачот добива 10% провизија, ако продажбата во јануари или февруари е поголема или еднаква на 101 долари, продавачот добива 7% провизија. , и така натаму.

    За да го направите тоа, напишете неколку OF изјави како OR(B2>150, C2>150) и вгнездувајте ги во логичките тестови на IF функциите дискутирани погоре. Како резултат на тоа, ја добивате оваа формула:

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

    И дали провизијата е доделена врз основа на повисокиот износ на продажба:

    За повеќе примери на формула, погледнете ја изјавата на Excel IF OR.

    Вгнездени IF во Excel со AND изјави

    Ако вашите логички тестови вклучуваат повеќе услови и сите тие услови треба да се оценат како TRUE, изразете ги со користење на функцијата И.

    На пример, за да ги доделите провизиите врз основа на помал број на продажби, земете ја горната формула и заменете го ИЛИ со изјавите И. Поинаку кажано, му кажувате на Excel да врати 10% само ако продажбата во јануари и февруари е поголема од 150 долари, 7% ако продажбата во јануари и февруари е поголема или еднаква на 101 долари, и така натаму.

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

    Како резултат, нашата вгнездена формула IF ја пресметува провизијатаврз основа на помалиот број во колоните Б и В. Ако било која колона е празна, воопшто нема провизија бидејќи ниту еден од условите И не е исполнет:

    Ако сте' d сакал да врати 0% наместо празни ќелии, замени празна низа (''") во последниот аргумент со 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%))))

    Повеќе информации може да најдете овде: Excel IF со повеќе И/ИЛИ услови.

    VLOOKUP наместо вгнездено IF во Excel

    Кога се занимавате со „скали“, т.е. континуирани опсези на нумерички вредности кои заедно го покриваат целиот опсег, во повеќето случаи можете да ја користите функцијата VLOOKUP наместо вгнездени IF.

    За почеток, направете референтна табела како што е прикажана на сликата подолу. А потоа, изградете формула Vlookup со приближно совпаѓање , т.е. со аргументот range_lookup поставен на TRUE.

    Претпоставувајќи дека вредноста за пребарување е во B2 и референтната табела е F2:G5, формулата оди како што следува :

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

    Забележете дека ја поправавме табелата_низа со апсолутни референци ($F$2:$G$5) за формулата да се копира правилно во други ќелии:

    Со поставување на последниот аргумент од формулата Vlookup на TRUE, му кажувате на Excel да пребарајте го најблиското совпаѓање - ако не се најде точно совпаѓање, вратете ја следната најголема вредност што е помала од вредноста за пребарување. Како резултат на тоа, вашата формула ќе одговара не само со точните вредности во табелата за пребарување, туку и со која биловредности кои спаѓаат помеѓу.

    На пример, вредноста за пребарување во B3 е 95 $. Овој број не постои во табелата за пребарување, а Vlookup со точно совпаѓање би вратил #N/A грешка во овој случај. Но, Vlookup со приближно совпаѓање продолжува со пребарувањето додека не ја најде најблиската вредност што е помала од вредноста за пребарување (што е 50 $ во нашиот пример) и враќа вредност од втората колона во истиот ред (што е 5%).

    Но, што ако вредноста за пребарување е помала од најмалиот број во табелата за пребарување или ќелијата за пребарување е празна? Во овој случај, формулата Vlookup ќе ја врати грешката #N/A. Ако не е она што всушност го сакате, вметнете го VLOOKUP во IFERROR и внесете ја вредноста на излез кога не е пронајдена вредноста за пребарување. На пример:

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

    Важна забелешка! За формулата Vlookup со приближно совпаѓање да работи правилно, првата колона во табелата за пребарување мора да биде подредена по растечки редослед , од најмал до најголем.

    За повеќе информации, погледнете го Точното совпаѓање VLOOKUP наспроти приближно совпаѓање VLOOKUP.

    Изјава IFS како алтернатива на вгнездената функција IF

    Во Excel 2016 и подоцнежните верзии, Microsoft воведе специјална функција за проценка на повеќе услови - функцијата IFS.

    Формулата IFS може да опфати до 127 парови логички_тест / value_if_true , а првиот логички тест што се оценува на TRUE „победи“:

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

    Во согласност со горната синтакса, нашата вгнездена формула IF може да се реконструира на овој начин:

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

    Ве молиме обрнете внимание дека Функцијата IFS ја враќа грешката #N/A доколку ниту еден од наведените услови не е исполнет. За да го избегнете ова, можете да додадете уште еден логички_тест / value_if_true на крајот од формулата што ќе врати 0 или празна низа („“) или која било вредност што ја сакате, ако ниту една од претходните логички тестови се ТОЧНИ:

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

    Како резултат, нашата формула ќе врати празна низа (празна ќелија) наместо грешката #N/A ако соодветната ќелија во колоната Б е празен или содржи текст или негативен број.

    Забелешка. Како и вгнезденото IF, функцијата IFS на Excel враќа вредност што одговара на првиот услов што се проценува на TRUE, поради што е важен редоследот на логичките тестови во формулата IFS.

    За повеќе информации, наместо тоа, погледнете ја функцијата Excel IFS на вгнездено IF.

    CHOOSE наместо вгнездена формула IF во Excel

    Друг начин за тестирање на повеќе услови во една формула во Excel е користење на функцијата CHOOSE, која е дизајнирана да враќа вредност од списокот заснован на позиција со таа вредност.

    Применета на нашата база на податоци, формулата го добива следниов облик:

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

    Во првиот аргумент ( index_num ), ги оценувате сите услови и ги собирате резултатите. Со оглед надека TRUE е еднакво на 1 и FALSE со 0, на овој начин ја пресметувате позицијата на вредноста што треба да се врати.

    На пример, вредноста во B2 е 150 $. За оваа вредност, првите 3 услови се ТОЧНИ, а последниот (B2 > 150) е НЕТОЧЕН. Значи, index_num е еднакво на 3, што значи дека се враќа третата вредност, што е 7%.

    Совет. Ако ниту еден од логичките тестови не е ТОЧЕН, index_num е еднаков на 0, а формулата ја враќа #VALUE! грешка. Лесна поправка е завиткување на CHOOSE во функцијата IFERROR вака:

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

    За повеќе информации, погледнете ја функцијата CHOOSE Excel со примери на формула.

    SWITCH функција како концизен облик на вгнездени IF во Excel

    Во ситуации кога имате работа со фиксен сет на предефинирани вредности, а не со скали, функцијата SWITCH може да биде компактна алтернатива на сложените вгнездени IF искази:

    SWITCH(израз, вредност1, резултат1, вредност2, резултат2, ..., [стандардно])

    Функцијата SWITCH го оценува изразот во однос на листа на вредности и го враќа резултатот што одговара на првото пронајдено совпаѓање.

    Во случај да сакате да ја пресметате провизијата врз основа на следните оценки, наместо на износите на продажба, можете да го користите овој компактен верзија на вгнездената формула IF во Excel:

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

    Или, можете да направите референтна табела како што е прикажана на сликата подолу и да користите референци на ќелиите наместо тврдокодирани вредности:

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

    Ве моламзабележи дека ги заклучуваме сите референци освен првата со знакот $ за да ги спречиме да се менуваат при копирање на формулата во други ќелии:

    Забелешка. Функцијата SWITCH е достапна само во Excel 2016 и понова верзија.

    За повеќе информации, погледнете ја функцијата SWITCH - компактна форма на вгнездена изјава IF.

    Спојување на повеќе функции IF во Excel

    Како што беше споменато во претходниот пример, функцијата SWITCH беше воведена само во Excel 2016. За да се справите со слични задачи во постарите верзии на Excel, можете да комбинирате две или повеќе IF изјави со користење на операторот Concatenate (&) или функцијата CONCATENATE .

    На пример:

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

    Или

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

    Како што можеби имате забележавме, го множиме резултатот со 1 во двете формули. Се прави за да се конвертира низа вратена од формулата Concatenate во број. Ако очекуваниот излез е текст, тогаш операцијата за множење не е потребна.

    За повеќе информации, погледнете ја функцијата CONCATENATE во Excel.

    Можете да видите дека Microsoft Excel обезбедува неколку добри алтернативи на вгнездените формули IF, и се надеваме дека ова упатство ви даде неколку индиции за тоа како да ги искористите во вашите работни листови. За да ги погледнете одблизу примерите дискутирани во ова упатство, добредојдени сте да ја преземете нашата примерок работна книга подолу. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

    Вежбајте

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.