Екцел угнежђене ИФ изјаве – примери, најбоље праксе и алтернативе

  • Деле Ово
Michael Brown

Водич објашњава како да користите угнежђену функцију ИФ у Екцел-у да бисте проверили више услова. Такође ћете научити неколико других функција које би могле бити добра алтернатива коришћењу угнежђене формуле у Екцел-у.

Како обично имплементирате логику доношења одлука у своје Екцел радне листове? У већини случајева, користили бисте формулу ИФ да бисте тестирали свој услов и вратили једну вредност ако је услов испуњен, другу вредност ако услов није испуњен. Да бисте проценили више од једног услова и вратили различите вредности у зависности од резултата, угнездите више ИФ-ова један у други.

Иако веома популаран, угнежђени ИФ израз није једини начин за проверу више услова у Екцел-у. У овом водичу ћете пронаћи прегршт алтернатива које свакако вреди истражити.

    Екцел угнежђена ИФ изјава

    Ево класичне Екцел угнежђене ИФ формуле у генеричком облику :

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

    Можете видети да је свака следећа ИФ функција уграђена у аргумент валуе_иф_фалсе претходне функције. Свака ИФ функција је затворена у свој скуп заграда, али све заграде су на крају формуле.

    Наша генеричка угнежђена ИФ формула процењује 3 услова и враћа 4 различита резултата (враћа се резултат 4 ако ниједно одрадна свеска за преузимање

    Екцел угнежђена Иф изјава - примери (.клск датотека)

    услови је ТАЧНО). Преведено на људски језик, ова угнежђена ИФ изјава говори Екцел-у да уради следеће:Тест услов1, ако је ТРУЕ - врати резултат1, ако је ФАЛСЕ -

    тест услов2 , ако је ТРУЕ - врати р резултат2 , ако је ФАЛСЕ -

    тест услов3 , ако је ТРУЕ - врати резултат3 , ако ФАЛСЕ -

    ретурн ресулт4

    Као пример, хајде да сазнамо провизије за одређени број продаваца на основу количине продаје коју су остварили:

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

    У математици, промена редоследа сабирака не мења збир. У Екцел-у, промена редоследа ИФ функција мења резултат. Зашто? Зато што угнежђена ИФ формула враћа вредност која одговара првом ТРУЕ услову . Због тога је у вашим угнежђеним ИФ изјавама веома важно да распоредите услове у правом смеру – од високог ка ниском или од ниског ка високом, у зависности од логике ваше формуле. У нашем случају прво проверавамо „највиши“ услов, затим „други највиши“, и тако даље:

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

    Ако смо поставили услови у обрнутом редоследу, одоздо према горе, резултати би били погрешни јер би наша формула престала после првог логичког теста (Б2>=1) за било коју вредност већу од 1. Рецимо, имамо 100 доларау продаји – већи је од 1, тако да формула не би проверавала друге услове и вратила 3% као резултат.

    Ако бисте радије организовали услове од ниског ка високом, онда користите „мање од " оператор и прво процени "најнижи" услов, затим "други најнижи" и тако даље:

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

    Као што видите, потребно је доста размишљања да се изгради логика угнежђеног ИФ исказа исправно све до краја. И иако Мицрософт Екцел дозвољава угнежђивање до 64 ИФ функције у једну формулу, то није нешто што бисте заиста желели да радите у својим радним листовима. Дакле, ако ви (или неко други) гледате у своју угнежђену ИФ формулу у Екцел-у покушавајући да схватите шта она заправо ради, време је да преиспитате своју стратегију и вероватно изаберете другу алатку у свом арсеналу.

    За више информација , погледајте Екцел наредбу угнежђено ИФ.

    Угнежђено ИФ са ИЛИ/И условима

    У случају да треба да процените неколико скупова различитих услова, те услове можете изразити користећи ОР као и АНД функција, угнездите функције унутар ИФ наредби, а затим угнездите ИФ изјаве једну у другу.

    Угнежђено ИФ у Екцелу са ОР наредбама

    Употребом функције ОР можете проверити две или више различите услове у логичком тесту сваке ИФ функције и врати ТРУЕ ако било који (бар један) од ОР аргумента процењује вредност ТРУЕ. Да бисте видели како то заправо функционише, размотритеследећи пример.

    Претпоставимо да имате две колоне продаје, рецимо јануарска продаја у колони Б и фебруарска продаја у колони Ц. Желите да проверите бројеве у обе колоне и израчунате провизију на основу већег броја. Другим речима, градите формулу са следећом логиком: ако је продаја у јануару или фебруару већа од 150 долара, продавац добија 10% провизије, ако је продаја у јануару или фебруару већа или једнака 101 долара, продавац добија 7% провизије , и тако даље.

    Да бисте то урадили, напишите неколико ОФ наредби као што је ОР(Б2>150, Ц2>150) и угнездите их у логичке тестове ИФ функција о којима смо горе говорили. Као резултат, добијате ову формулу:

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

    И добијате провизију која се додељује на основу већег износа продаје:

    За више примера формула, погледајте Екцел наредбу ИФ ОР.

    Угнежђено ИФ у Екцелу са АНД наредбама

    Ако ваши логички тестови укључују више услова и сви ти услови треба да буду ТРУЕ, изразите их коришћењем функције И.

    На пример, да бисте доделили провизије на основу мањег броја продаја, узмите горњу формулу и замените ОР са АНД изјавама. Другачије речено, кажете Екцел-у да врати 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%, ""))))

    Као резултат, наша угнежђена ИФ формула израчунава провизијуна основу доњег броја у колонама Б и Ц. Ако је било која колона празна, уопште нема провизије јер ниједан од услова И није испуњен:

    Ако сте желим да вратим 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%))))

    Више информација можете пронаћи овде: Екцел ИФ са више И/ИЛИ услова.

    ВЛООКУП уместо угнежђеног ИФ у Екцел-у

    Када имате посла са „скалама“, тј. непрекидним опсезима нумеричких вредности који заједно покривају цео опсег, у већини случајева можете користити функцију ВЛООКУП уместо угнежђених ИФ-ова.

    За почетак, направите референтну табелу као што је приказано на снимку екрана испод. А затим направите Влоокуп формулу са приближно подударање , тј. са аргументом ранге_лоокуп постављеним на ТРУЕ.

    Под претпоставком да је вредност тражења у Б2 и референтна табела Ф2:Г5, формула иде на следећи начин :

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

    Обратите пажњу да поправљамо табле_арраи са апсолутним референцама ($Ф$2:$Г$5) да би се формула исправно копирала у друге ћелије:

    Постављањем последњег аргумента ваше Влоокуп формуле на ТРУЕ, кажете Екцел-у да потражите најближе подударање - ако се не пронађе тачно подударање, вратите следећу највећу вредност која је мања од вредности тражења. Као резултат, ваша формула ће одговарати не само тачним вредностима у табели за тражење, већ и било којојвредности које се налазе између.

    На пример, вредност тражења у Б3 је 95 УСД. Овај број не постоји у табели за тражење, а Влоокуп са тачним подударањем би у овом случају вратио грешку #Н/А. Али Влоокуп са приближним подударањем наставља претрагу док не пронађе најближу вредност која је мања од вредности за тражење (која је 50 УСД у нашем примеру) и врати вредност из друге колоне у истом реду (која је 5%).

    Али шта ако је вредност тражења мања од најмањег броја у табели за тражење или је ћелија за тражење празна? У овом случају, Влоокуп формула ће вратити грешку #Н/А. Ако то није оно што заправо желите, угнездите ВЛООКУП унутар ИФЕРРОР и доставите вредност за излаз када вредност за тражење није пронађена. На пример:

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

    Важна напомена! Да би Влоокуп формула са приближним подударањем функционисала исправно, прва колона у табели за тражење мора бити сортирана у узлазном редоследу , од најмањег до највећег.

    За више информација погледајте Тачно подударање ВЛООКУП наспрам приближног подударања ВЛООКУП.

    ИФС израз као алтернатива угнежђеној ИФ функцији

    У Екцел 2016 и новијим верзијама, Мицрософт је увео специјалну функцију за процену више услова – функцију ИФС.

    ИФС формула може да обради до 127 логички_тест / валуе_иф_труе парова, а први логички тест који процењује ТРУЕ „побеђује“:

    ИФС(логички_тест1,валуе_иф_труе1, [логицал_тест2, валуе_иф_труе2]...)

    У складу са горњом синтаксом, наша угнежђена ИФ формула се може реконструисати на овај начин:

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

    Обратите пажњу да ИФС функција враћа грешку #Н/А ако ниједан од наведених услова није испуњен. Да бисте ово избегли, можете додати још један логицал_тест / валуе_иф_труе на крај ваше формуле која ће вратити 0 или празан стринг ("") или било коју вредност коју желите ако ништа од претходни логички тестови су ТРУЕ:

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

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

    Напомена. Као и угнежђени ИФ, Екцел-ова ИФС функција враћа вредност која одговара првом услову који се вреднује као ТРУЕ, због чега је важан редослед логичких тестова у ИФС формули.

    За више информација погледајте Екцел ИФС функцију уместо тога од угнежђеног ИФ.

    ЦХООСЕ уместо угнежђене ИФ формуле у Екцел-у

    Други начин тестирања више услова у оквиру једне формуле у Екцел-у је коришћење функције ЦХООСЕ, која је дизајнирана да врати вредност из листа заснована на позицији те вредности.

    Примењена на наш пример скупа података, формула има следећи облик:

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

    У првом аргументу ( индек_нум ), процењујете све услове и сабирате резултате. Датода је ТРУЕ једнако 1, а ФАЛСЕ 0, на овај начин израчунавате позицију вредности коју желите да вратите.

    На пример, вредност у Б2 је 150 УСД. За ову вредност, прва 3 услова су ТРУЕ, а последњи (Б2> 150) је ФАЛСЕ. Дакле, индекс_нум је једнако 3, што значи да је враћена трећа вредност, што је 7%.

    Савет. Ако ниједан од логичких тестова није ТРУЕ, број_индекса је једнак 0, а формула враћа #ВРЕДНОСТ! грешка. Једноставна поправка је умотавање ЦХООСЕ у функцију ИФЕРРОР на следећи начин:

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

    За више информација, погледајте Екцел функцију ЦХООСЕ са примерима формуле.

    СВИТЦХ функција као сажети облик угнежђеног ИФ у Екцел-у

    У ситуацијама када имате посла са фиксним скупом унапред дефинисаних вредности, а не скалама, функција СВИТЦХ може бити компактна алтернатива сложеним угнежђене ИФ изјаве:

    СВИТЦХ(израз, вредност1, резултат1, вредност2, резултат2, …, [подразумевано])

    Функција СВИТЦХ процењује израз према листи вредности и враћа резултат који одговара првом пронађеном подударању.

    У случају да желите да израчунате провизију на основу следећих оцена, а не износа продаје, можете користити овај компакт верзија угнежђене ИФ формуле у Екцел-у:

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

    Молимприметите да закључавамо све референце осим прве са знаком $ да бисмо спречили да се промене приликом копирања формуле у друге ћелије:

    Напомена. Функција СВИТЦХ доступна је само у програму Екцел 2016 и новијим верзијама.

    За више информација погледајте функцију СВИТЦХ – компактни облик угнежђеног ИФ исказа.

    Конкатенација вишеструких ИФ функција у Екцел-у

    Као што је поменуто у претходном примеру, функција СВИТЦХ уведена је само у Екцел 2016. Да бисте се бавили сличним задацима у старијим верзијама Екцел-а, можете комбиновати два или више ИФ исказа користећи оператор Цонцатенате (&амп;) или ЦОНЦАТЕНАТЕ функцију .

    На пример:

    =(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 у обе формуле. То се ради да би се стринг који враћа формула конкатенације претворио у број. Ако је ваш очекивани излаз текст, онда операција множења није потребна.

    За више информација погледајте функцију ЦОНЦАТЕНАТЕ у Екцел-у.

    Можете видети да Мицрософт Екцел пружа прегршт добрих алтернатива на угнежђене ИФ формуле, и надамо се да вам је овај водич дао неке назнаке о томе како да их искористите у својим радним листовима. Да бисте ближе погледали примере о којима се говори у овом водичу, можете преузети наш пример радне свеске испод. Захваљујем вам на читању и надам се да ћемо се следеће недеље видети на нашем блогу!

    Вежбајте

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.