Вкладені оператори IF в Excel - приклади, кращі практики та альтернативи

  • Поділитися Цим
Michael Brown

У цьому уроці пояснюється, як використовувати вкладену функцію ЕСЛИ в Excel для перевірки декількох умов. Ви також дізнаєтеся про деякі інші функції, які можуть бути гарною альтернативою використанню вкладеної формули в Excel.

Як ви зазвичай реалізуєте логіку прийняття рішень у своїх таблицях Excel? У більшості випадків ви використовуєте формулу ЯКЩО для перевірки умови і повертаєте одне значення, якщо умова виконується, і інше значення, якщо умова не виконується. Щоб оцінити більш ніж одну умову і повернути різні значення залежно від результатів, ви вкладаєте кілька функцій ЯКЩО одна в іншу.

Хоча вкладений оператор IF дуже популярний, він не є єдиним способом перевірки декількох умов в Excel. У цьому уроці ви знайдете кілька альтернативних варіантів, які, безумовно, варто вивчити.

    Вкладений оператор IF в Excel

    Ось класична вкладена формула ЕСЛИ в Excel в загальному вигляді:

    ЯКЩО( умова1 , результат1 , IF( умова2 , результат2 , IF( умова3 , результат3 , результат4 )))

    Видно, що кожна наступна функція IF вбудовується в value_if_false Кожна функція ЯКЩО укладається в свій власний набір круглих дужок, але всі закриваючі дужки знаходяться в кінці формули.

    Наша загальна вкладена формула IF обчислює 3 умови і повертає 4 різні результати (результат 4 повертається, якщо жодна з умов не має значення ІСТИНА). У перекладі на людську мову цей вкладений оператор IF вказує Excel зробити наступне:

    Тест умова1 якщо TRUE - повернути результат1 якщо FALSE - то

    випробування умова2 якщо TRUE - повернути r esult2 якщо FALSE - то

    випробування умова3 якщо TRUE - повернути результат3 якщо FALSE - то

    повернення результат4

    Для прикладу, з'ясуємо комісійні для низки продавців, виходячи з обсягу здійснених ними продажів:

    Комісія Продажі
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Понад $150

    У математиці зміна порядку доданків не змінює суму. В Excel зміна порядку функцій ЕСЛИ змінює результат. Чому? Тому що вкладена формула ЕСЛИ повертає значення, що відповідає перша ПРАВИЛЬНА умова Тому у вкладених операторах 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, намагаючись зрозуміти, що вона насправді робить, прийшов часпереглянути свою стратегію і, можливо, обрати інший інструмент у своєму арсеналі.

    Для більш детальної інформації див. Вкладений оператор IF в Excel.

    Вкладений IF з умовами OR/AND

    У випадку, якщо вам потрібно обчислити декілька наборів різних умов, ви можете виразити ці умови за допомогою функції АБО, а також функції І, вкласти функції в оператори IF, а потім вкласти оператори IF один в одного.

    Вкладені оператори IF в Excel з операторами АБО

    За допомогою функції АБО можна перевірити дві або більше різних умов в логічному тесті кожної функції IF і повернути значення ІСТИНА, якщо будь-який (хоча б один) з аргументів АБО набуває значення ІСТИНА. Щоб побачити, як це працює насправді, розглянемо наступний приклад.

    Припустимо, у вас є два стовпчики продажів, скажімо, січневі продажі в стовпчику B і лютневі в стовпчику C. Ви хочете перевірити цифри в обох стовпчиках і розрахувати комісію на основі більшого числа. Іншими словами, ви будуєте формулу з наступною логікою: якщо продажі за січень або лютий перевищують $150, продавець отримує 10% комісії, якщо продажі за січень або лютий перевищують або дорівнюють101 долар, продавець отримує 7% комісійних і так далі.

    Для цього потрібно написати декілька операторів типу 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%, ""))))

    І щоб комісія призначалася виходячи з більшого обсягу продажів:

    Для отримання додаткових прикладів формул, будь ласка, дивіться оператор IF OR в Excel.

    Вкладені оператори IF в Excel з операторами AND

    Якщо ваші логічні тести включають декілька умов, і всі ці умови повинні мати значення ІСТИНА, виражайте їх за допомогою функції AND.

    Наприклад, щоб призначити комісійні на основі меншої кількості продажів, візьміть наведену вище формулу і замініть оператори АБО на оператори І. Іншими словами, ви вказуєте 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%, ""))))

    В результаті, наша вкладена формула ЯКЩО обчислює комісію на основі меншого числа в стовпчиках 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 ЕСЛИ з декількома умовами І/АБО.

    VLOOKUP замість вкладеного IF в Excel

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

    Для початку створіть довідкову таблицю, як показано на скріншоті нижче. А потім створіть формулу 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), "За межами діапазону")

    Для коректної роботи формули Vlookup з наближеним збігом перший стовпець в таблиці пошуку повинен бути відсортований по за зростанням від найменшого до найбільшого.

    Для отримання додаткової інформації, будь ласка, дивіться Точний збіг VLOOKUP проти приблизного збігу VLOOKUP.

    Оператор IFS як альтернатива вкладеним функціям IF

    В Excel 2016 і більш пізніх версіях Microsoft представила спеціальну функцію для оцінки декількох умов - функцію СРЗНАЧ - IFS.

    Формула IFS може обробляти до 127 логічний_тест / value_if_true пар, і перший логічний тест, який оцінює до ІСТИНИ "перемагає":

    IFS(логічний_тест1, значення_якщо_істина1, [логічний_тест2, значення_якщо_істина2]...)

    Відповідно до наведеного вище синтаксису, нашу вкладену формулу ЯКЩО можна реконструювати таким чином:

    =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, якщо відповідна комірка в стовпчику B пуста або містить текст чи від'ємне число.

    Примітка. Як і вкладена функція ЕСЛИ, функція ИСТИНА в Excel повертає значення, що відповідає першій умові, яка набуває значення ІСТИНА, тому порядок логічних перевірок у формулі ИСТИНА має значення.

    Для більш детальної інформації, будь ласка, дивіться функцію Excel IFS замість вкладеного IF.

    ВИБІР замість вкладеної формули ЕСЛИ в Excel

    Іншим способом перевірки декількох умов в одній формулі в Excel є використання функції ВЫБОР, яка призначена для повернення значення зі списку на основі позиції цього значення.

    Застосована до нашого прикладу формула набуває наступного вигляду:

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

    У першому аргументі ( номер_індексу ), ви оцінюєте всі умови і складаєте результати. Враховуючи, що TRUE дорівнює 1, а FALSE - 0, таким чином ви обчислюєте позицію значення, яке потрібно повернути.

    Наприклад, значення в комірці B2 дорівнює $150. Для цього значення перші 3 умови є ІСТИНА, а остання (B2> 150) - ХИБНІСТЬ. Отже, номер_індексу дорівнює 3, тобто повертається 3-тє значення, що становить 7%.

    Порада. Якщо жоден з логічних тестів не є ІСТИНА, номер_індексу дорівнює 0, і формула повертає помилку #ЗНАЧЕННЯ! Легко виправити, обернувши CHOOSE у функцію IFERROR ось так:

    =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 оцінює вираз проти списку цінності і повертає результат що відповідає першому знайденому збігу.

    Якщо ви хочете розрахувати комісію на основі наступних оцінок, а не суми продажів, ви можете використовувати цю компактну версію вкладеної формули ЕСЛИ в 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, "")

    Зверніть увагу, що ми блокуємо всі посилання, крім першого, знаком $, щоб запобігти їх зміні при копіюванні формули в інші комірки:

    Примітка: функція ПЕРЕМИКАННЯ доступна тільки в Excel 2016 і новіших версіях.

    Більш детальну інформацію можна знайти в статті SWITCH-функція - компактна форма вкладеного оператора IF.

    Об'єднання декількох функцій IF в Excel

    Як згадувалося в попередньому прикладі, функція СРЗНАЧ з'явилася тільки в 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, в число. Якщо очікуваний результат - текст, то операція множення не потрібна.

    Для більш детальної інформації, будь ласка, дивіться функцію КОНКРЕТНІСТЬ в Excel.

    Як бачите, Microsoft Excel надає кілька хороших альтернатив вкладеним формулам IF, і, сподіваємося, цей урок дав вам деякі підказки про те, як використовувати їх у своїх робочих аркушах. Щоб детальніше ознайомитися з прикладами, розглянутими в цьому уроці, ви можете завантажити наш зразок робочої книги нижче. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!

    Практичний посібник для завантаження

    Вкладений оператор Excel If - приклади (файл .xlsx)

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.