Excel Nested IF statements - прыклады, лепшыя практыкі і альтэрнатывы

  • Падзяліцца Гэтым
Michael Brown

У падручніку тлумачыцца, як выкарыстоўваць укладзеную функцыю IF у Excel для праверкі некалькіх умоў. Вы таксама даведаецеся некалькі іншых функцый, якія могуць стаць добрай альтэрнатывай выкарыстанню ўкладзенай формулы ў Excel.

Як вы звычайна рэалізуеце логіку прыняцця рашэнняў у сваіх лістах Excel? У большасці выпадкаў вы выкарыстоўваеце формулу КАЛІ для праверкі ўмовы і вяртаеце адно значэнне, калі ўмова выконваецца, і іншае значэнне, калі ўмова не выконваецца. Каб ацаніць больш чым адну ўмову і вярнуць розныя значэнні ў залежнасці ад вынікаў, вы ўкладваеце некалькі IF адзін у адзін.

Хоць і вельмі папулярны, укладзены IF не з'яўляецца адзіным спосабам праверыць некалькі ўмоў у Excel. У гэтым уроку вы знойдзеце некалькі альтэрнатыў, якія, безумоўна, варта вывучыць.

    Укладзены аператар Excel IF

    Вось класічная формула ўкладзенага IF Excel у агульнай форме :

    КАЛІ( умова1, вынік1, КАЛІ( умова2, вынік2, КАЛІ( умова3, вынік3, вынік4)))

    Вы бачыце, што кожная наступная функцыя IF убудоўваецца ў аргумент value_if_false папярэдняй функцыі. Кожная функцыя КАЛІ заключана ў свой уласны набор дужак, але ўсе закрывальныя дужкі знаходзяцца ў канцы формулы.

    Наша агульная ўкладзеная формула КАЛІ ацэньвае 3 умовы і вяртае 4 розныя вынікі (вяртаецца вынік 4 калі ні адзін зпрацоўны сшытак для загрузкі

    Укладзеная аператар Excel If - прыклады (.xlsx файл)

    ўмовы праўдзівыя). У перакладзе на чалавечую мову гэты ўкладзены аператар IF загадвае Excel зрабіць наступнае:Тэст умова1, калі ПРАЎДА - вяртае вынік1, калі ХЛУСНЯ -

    тэст умова2 , калі TRUE - вяртае r result2 , калі FALSE -

    test condition3 , калі TRUE - вяртае result3 , калі ХЛУСНЯ -

    вяртанне вынік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 Excel, спрабуючы высветліць, што яна насамрэч робіць, прыйшоў час перагледзець сваю стратэгію і, верагодна, выбраць іншы інструмент у вашым арсенале.

    Для атрымання дадатковай інфармацыі , глядзіце ўкладзены аператар IF Excel.

    Укладзены IF з умовамі АБО/І

    Калі вам трэба ацаніць некалькі набораў розных умоў, вы можаце выказаць гэтыя ўмовы з дапамогай АБО, а таксама як Функцыя І, укладзіце функцыі ў аператары КАЛІ, а затым укладзіце аператары КАЛІ адна ў адну.

    Укладзеная КАЛІ ў Excel з аператарамі АБО

    Выкарыстоўваючы функцыю АБО, вы можаце праверыць два ці больш розныя ўмовы ў лагічным тэсце кожнай функцыі КАЛІ і вяртаюць TRUE, калі любы (прынамсі адзін) з аргументаў АБО дае значэнне TRUE. Каб убачыць, як гэта сапраўды працуе, разгледзьценаступны прыклад.

    Выкажам здагадку, у вас ёсць два слупкі продажаў, скажам, продажы ў студзені ў слупку B і продажы ў лютым у слупку C. Вы жадаеце праверыць лічбы ў абодвух слупках і вылічыць камісію на аснове большага ліку. Іншымі словамі, вы будуеце формулу з наступнай логікай: калі продажы ў студзені або лютым перавышаюць 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.

    Укладзены КАЛІ ў 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 разлічвае камісіюзаснавана на меншай лічбе ў слупках B і C. Калі любы з слупкоў пусты, камісія наогул не спаганяецца, таму што ні адна з умоў І не выканана:

    Калі вы' хацеў бы вярнуць 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 з некалькімі ўмовамі AND/OR.

    VLOOKUP замест укладзенага IF у Excel

    Калі вы маеце справу з "шкаламі", г.зн. бесперапыннымі дыяпазонамі лікавых значэнняў якія разам ахопліваюць увесь дыяпазон, у большасці выпадкаў вы можаце выкарыстоўваць функцыю VLOOKUP замест укладзеных IF.

    Для пачатку зрабіце даведачную табліцу, як паказана на скрыншоце ніжэй. А потым пабудуйце формулу VLOOKUP з прыблізнае супадзенне , г.зн. з аргументам range_lookup , усталяваным у TRUE.

    Калі выказаць здагадку, што пошукавае значэнне знаходзіцца ў B2, а даведачная табліца F2:G5, формула выглядае наступным чынам :

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

    Звярніце ўвагу, што мы выпраўляем table_array з абсалютнымі спасылкамі ($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 пар logical_test / 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, калі не выконваецца ні адна з указаных умоў. Каб пазбегнуць гэтага, вы можаце дадаць яшчэ адзін logical_test / value_if_true у канец вашай формулы, якая будзе вяртаць 0 або пусты радок ("") або любое значэнне, якое вы хочаце, калі ні адно з папярэднія лагічныя тэсты TRUE:

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

    У выніку наша формула верне пусты радок (пустую ячэйку) замест памылкі #N/A, калі адпаведная ячэйка ў слупку B пусты або змяшчае тэкст або адмоўны лік.

    Заўвага. Як і ўкладзеная IF, функцыя IFS Excel вяртае значэнне, адпаведнае першай умове, якая мае значэнне TRUE, таму парадак лагічных праверак у формуле IFS мае значэнне.

    Для атрымання дадатковай інфармацыі, калі ласка, глядзіце функцыю Excel IFS. укладзеных КАЛІ.

    ВЫБРАЦЬ замест укладзеных КАЛІ формул у Excel

    Іншым спосабам праверыць некалькі ўмоў у адной формуле ў Excel з'яўляецца выкарыстанне функцыі ВЫБРАЦЬ, якая прызначана для вяртання значэння з спіс, заснаваны на пазіцыі гэтага значэння.

    Ужываючы да нашага ўзору даных, формула прымае наступную форму:

    =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, што азначае, што вяртаецца 3-е значэнне, якое складае 7%.

    Падказка. Калі ні адзін з лагічных тэстаў не з'яўляецца TRUE, index_num роўны 0, і формула вяртае #VALUE! памылка. Лёгкае выпраўленне - абгарнуць ВЫБРАЦЬ у функцыю КАЛІПАМЫЛКА наступным чынам:

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

    Для атрымання дадатковай інфармацыі, калі ласка, азнаёмцеся з функцыяй ВЫБАР 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. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.