Зміст
Урок показує, як створювати кілька операторів IF в Excel за допомогою логіки AND та OR. Також ви дізнаєтеся, як використовувати IF разом з іншими функціями Excel.
У першій частині нашого підручника з Excel IF ми розглянули, як побудувати простий оператор IF з однією умовою для тексту, чисел, дат, пропусків і не пропусків. Однак для ефективного аналізу даних часто може знадобитися оцінка декількох умов одночасно. Наведені нижче приклади формул покажуть вам найефективніші способи зробити це.
Як використовувати функцію ЕСЛИ з декількома умовами
По суті, розрізняють два види Формула IF з декількома критеріями на основі логіки І / АБО Отже, в логічному тесті вашої формули ЯКЩО слід використовувати одну з цих функцій:
- Функція AND - повертає ІСТИНА, якщо всі умови виконуються; у протилежному випадку - FALSE.
- Функція OR - повертає ІСТИНА, якщо будь-яка окрема умова виконується; FALSE у протилежному випадку.
Щоб краще проілюструвати цю тезу, розглянемо кілька реальних прикладів формул.
Оператор ЕСЛИ в Excel з декількома умовами (логіка І)
Загальна формула Excel ЕСЛИ з двома і більше умовами виглядає наступним чином:
ЯКЩО(І( умова1 , умова2 , ...), value_if_true, value_if_false)У перекладі на людську мову формула звучить так: Якщо умова 1 істинна І умова 2 істинна, повернути value_if_true ; else return value_if_false .
Припустимо, у вас є таблиця, в якій у стовпчиках B і C вказані бали за два тести. Для того, щоб скласти випускний іспит, студент повинен мати обидва бали, більші за 50.
Для логічної перевірки використовується наступний оператор AND: AND(B2>50, C2>50)
Якщо обидві умови істинні, формула поверне "Pass", якщо будь-яка умова хибна - "Fail".
=IF(AND(B2>50, B2>50), "Pass", "Fail")
Знімок екрана нижче доводить, що наша формула Excel IF / AND працює правильно:
Аналогічним чином можна використовувати функцію Excel ЕСЛИ з декількома текстові умови .
Наприклад, виводити "Добре", якщо і B2, і C2 більше 50, "Погано" в іншому випадку, формула має вигляд:
=IF(AND(B2="pass", C2="pass"), "Good!", "Bad")
Важливо! Функція AND перевіряє всі умови навіть якщо вже перевірена умова (умови) повернула значення FALSE. Така поведінка є дещо незвичною, оскільки в більшості мов програмування наступні умови не перевіряються, якщо будь-яка з попередніх перевірок повернула значення FALSE.
На практиці, здавалося б, правильний оператор IF може призвести до помилки через цю специфіку. Наприклад, наведена нижче формула поверне #DIV/0! (помилка "поділити на нуль"), якщо комірка A2 дорівнює 0:
=IF(AND(A20, (1/A2)>0.5), "Добре", "Погано")
Щоб уникнути цього, слід використовувати вкладену функцію IF:
=IF(A20, IF((1/A2)>0.5, "Добре", "Погано"), "Погано")
Для отримання додаткової інформації, будь ласка, дивіться формулу ЕСЛИ И в Excel.
Функція ЕСЛИ в Excel з декількома умовами (логіка АБО)
Зробити одне, якщо будь-яка умова виконується, інакше зробити щось інше, використовуйте цю комбінацію функцій IF та OR:
ЯКЩО(АБО( умова1 , умова2 , ...), value_if_true, value_if_false)Відмінність від розглянутої вище формули ЕСЛИ / И полягає в тому, що Excel повертає значення ІСТИНА, якщо будь-яка із зазначених умов істинна.
Отже, якщо в попередній формулі ми використовуємо АБО замість І:
=IF(OR(B2>50, B2>50), "Pass", "Fail")
Тоді кожен, хто набере більше 50 балів з обох іспитів, отримає "Pass" у колонці D. За таких умов наші студенти мають більше шансів скласти фінальний іспит (особливо не пощастило Іветті, якій не вистачило всього 1 балу :)
Порада: якщо ви створюєте множинний оператор IF з текстом і перевірка значення в одній комірці за допомогою логіки АБО (тобто комірка може бути "ця" або "та"), то можна побудувати більш компактну формулу з використанням константи масиву.
Наприклад, щоб позначити продаж як "закритий", якщо комірка B2 має значення "доставлено" або "оплачено", формула виглядає наступним чином:
=IF(OR(B2={"доставлено", "оплачено"}), "Закрито", "")
Більше прикладів формул можна знайти у функції Excel IF OR.
IF з декількома операторами AND та OR
Якщо ваша задача вимагає оцінки декількох наборів множинних умов, вам доведеться використовувати обидві функції І та АБО одночасно.
У нашому прикладі таблиці припустимо, що Ви маєте наступні критерії перевірки результатів іспиту:
- Умова 1: іспит 1 - 50 та іспит 2 - 50
- Умова 2: іспит 1 - 40 років та іспит 2 - 60 років
У разі виконання будь-якої з умов випускний іспит вважається складеним.
На перший погляд, формула здається трохи складною, але насправді це не так! Ви просто виражаєте кожну з наведених вище умов у вигляді оператора І та вкладаєте їх у функцію АБО (оскільки не обов'язково виконувати обидві умови, достатньо будь-якої з них):
АБО(І(B2>50, C2>50), І(B2>40, C2>60)
Потім використовуйте функцію АБО для логічного тесту IF і подайте бажане значення value_if_true і value_if_false В результаті ви отримуєте наступну формулу IF з декількома умовами І / АБО:
=IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "Pass", "Fail")
Скріншот нижче свідчить про те, що ми зробили формулу правильно:
Звичайно, ви не обмежуєтеся використанням тільки двох функцій І/АБО у формулах IF. Ви можете використовувати їх стільки, скільки вимагає ваша бізнес-логіка, за умови, що:
- В Excel 2007 і вище у вас не більше 255 аргументів, а загальна довжина формули ЕСЛИ не перевищує 8 192 символів.
- В Excel 2003 і нижче існує не більше 30 аргументів, а загальна довжина формули ЕСЛИ не перевищує 1024 символів.
Вкладений оператор IF для перевірки декількох логічних тестів
Якщо в межах однієї формули потрібно обчислити декілька логічних тестів, то можна вкласти декілька функцій одна в іншу. Такі функції називаються вкладені функції IF Вони виявляються особливо корисними, коли потрібно повертати різні значення в залежності від результатів логічних тестів.
Наведемо типовий приклад: припустимо, ви хочете кваліфікувати досягнення учнів як " Добре. ", " Задовільно " і " Бідні " на основі наступних балів:
- Добре: 60 і більше (>=60)
- Задовільний: від 40 до 60 (>40 and <60)
- Бідні: 40 або менше (<=40)
Перед написанням формули продумайте порядок вкладених функцій. Excel буде оцінювати логічні тести в тому порядку, в якому вони з'являються у формулі. Як тільки умова отримує значення ІСТИНА, наступні умови не перевіряються, тобто формула зупиняється після першого результату, що має значення ІСТИНА.
У нашому випадку функції розташовані від найбільшої до найменшої:
=IF(B2>=60, "Добре", IF(B2>40, "Задовільно", "Погано"))
Природно, при необхідності можна вкласти більше функцій (до 64 в сучасних версіях).
Для отримання додаткової інформації див. статтю Як використовувати декілька вкладених операторів IF в Excel.
Формула масиву ЕСЛИ в Excel з декількома умовами
Інший спосіб отримати функцію ЕСЛИ в Excel для перевірки декількох умов - це використання формули масиву.
Для оцінки умов з логікою І використовується зірочка:
ЯКЩО( умова1 ) * ( умова2 ) * ..., value_if_true, value_if_false)Для перевірки умов з логікою "АБО" використовуйте знак "плюс":
ЯКЩО( умова1 ) + ( умова2 ) + ..., value_if_true, value_if_false)Щоб правильно заповнити формулу масиву, натисніть одночасно клавіші Ctrl + Shift + Enter. В Excel 365 і Excel 2021 це також працює як звичайна формула завдяки підтримці динамічних масивів.
Наприклад, щоб отримати "Зараховано", якщо і В2, і С2 більше 50, формула така:
=IF((B2>50) * (C2>50), "Pass", "Fail")
У моєму Excel 365 звичайна формула працює просто чудово (як ви можете бачити на скріншотах вище). В Excel 2019 і нижче не забудьте зробити її формулою масиву за допомогою комбінації клавіш Ctrl + Shift + Enter.
Для обчислення декількох умов за допомогою логіки АБО використовується формула:
=IF((B2>50) + (C2>50), "Pass", "Fail")
Використання IF разом з іншими функціями
У цьому розділі пояснюється, як використовувати функцію ЕСЛИ в поєднанні з іншими функціями Excel і які переваги це дає.
Приклад 1. якщо в VLOOKUP помилка #N/A
Коли VLOOKUP або інша функція пошуку не може щось знайти, вона повертає помилку #N/A. Щоб ваші таблиці виглядали красивіше, ви можете повернути нуль, порожній або певний текст, якщо #N/A. Для цього використовуйте цю загальну формулу:
IF(ISNA(VLOOKUP(...)), значення_якщо_на , VLOOKUP(...))Наприклад:
Якщо #N/A повернути 0:
Якщо шукане значення в E1 не знайдено, формула повертає нуль.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), 0, VLOOKUP(E1, A2:B10, 2, FALSE))
Якщо #N/A, поверніть порожній рядок:
Якщо шукане значення не знайдено, формула не повертає нічого (порожній рядок).
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "", VLOOKUP(E1, A2:B10, 2, FALSE))
Якщо #N/A повертає певний текст:
Якщо шукане значення не знайдено, формула повертає конкретний текст.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "Не знайдено", VLOOKUP(E1, A2:B10, 2, FALSE))
Для отримання додаткових прикладів формул, будь ласка, зверніться до VLOOKUP з оператором IF в Excel.
Приклад 2. IF з функціями SUM, AVERAGE, MIN та MAX
Для підсумовування значень комірок за певними критеріями в Excel передбачені функції СУММЕСЛИ і СУММПРОИЗВ.
У деяких ситуаціях бізнес-логіка може вимагати включення функції SUM в логічний тест IF. Наприклад, для повернення різних текстових написів в залежності від суми значень в B2 і C2, формула має вигляд:
=IF(SUM(B2:C2)>130, "Добре", IF(SUM(B2:C2)>110, "Задовільно", "Погано"))
Якщо сума більше 130, то результат "добрий", якщо більше 110 - "задовільний", якщо 110 і менше - "незадовільний".
Аналогічним чином можна вбудувати функцію AVERAGE в логічний тест IF і повертати різні мітки на основі середнього балу:
=IF(AVERAGE(B2:C2)>65, "Добре", IF(AVERAGE(B2:C2)>55, "Задовільно", "Погано"))
Припускаючи, що загальний бал знаходиться в колонці D, можна визначити найвище та найнижче значення за допомогою функцій MAX та MIN:
=IF(D2=MAX($D$2:$D$10), "Найкращий результат", "")
=IF(D2=MAX($D$2:$D$10), "Кращий результат", "")
Щоб мати обидві мітки в одному стовпчику, вкладіть вищевказані функції одна в іншу:
=IF(D2=MAX($D$2:$D$10), "Найкращий результат", IF(D2=MIN($D$2:$D$10), "Найгірший результат", ""))
Аналогічно, ви можете використовувати IF разом з вашими власними функціями. Наприклад, ви можете об'єднати його з GetCellColor або GetCellFontColor, щоб повернути різні результати, засновані на кольорі комірки.
Крім того, в Excel передбачено ряд функцій для обчислення даних на основі умов. Детальні приклади формул можна знайти в наступних навчальних матеріалах:
- COUNTIF - підрахувати комірки, які відповідають умові
- COUNTIFS - підрахунок комірок за кількома критеріями
- SUMIF - умовно підсумовувати комірки
- SUMIFS - підсумовує комірки з декількома критеріями
Приклад 3. IF з ISNUMBER, ISTEXT та ISBLANK
Для ідентифікації тексту, чисел і порожніх комірок в Microsoft Excel передбачені спеціальні функції ISTEXT, ISNUMBER і ISBLANK. Помістивши їх в логічні тести трьох вкладених операторів IF, ви можете ідентифікувати всі різні типи даних за один раз:
=IF(ISTEXT(A2), "Текст", IF(ISNUMBER(A2), "Номер", IF(ISBLANK(A2), "Пропуск", "")))
Приклад 4. if та CONCATENATE
Щоб вивести результат функції ЕСЛИ і деякий текст в одну комірку, використовують функції СЦЕПИТЬ або СЦЕПИТЬ (в Excel 2016 - 365) і ЕСЛИ разом. Наприклад:
=CONCATENATE("Ви виступили ", IF(B1>100, "фантастично!", IF(B1>50, "добре", "погано")))
=CONCAT("Ви виступили ", IF(B1>100, "фантастично!", IF(B1>50, "добре", "погано")))
Дивлячись на скріншот нижче, вам навряд чи знадобляться пояснення, що робить ця формула:
Формула IF ISERROR / ISNA в Excel
У сучасних версіях Excel є спеціальні функції для відловлювання помилок і заміни їх іншим розрахунком або попередньо визначеним значенням - ЕСЛИ ПОМИЛКА (в Excel 2007 і новіших версіях) і ЕСЛИ НА (в Excel 2013 і новіших версіях). У більш ранніх версіях Excel замість них можна використовувати комбінації ЕСЛИ ПОМИЛКА і ЕСЛИ НА.
Різниця в тому, що IFERROR і ISERROR обробляють всі можливі помилки Excel, включаючи #VALUE!, #N/A, #NAME?, #REF!, #NUM!, #DIV/0! і #NULL!, тоді як IFNA і ISNA спеціалізуються виключно на помилках #N/A.
Наприклад, для заміни помилки "ділення на нуль" (#DIV/0!) на свій текст можна скористатися наступною формулою:
=IF(ISERROR(A2/B2), "N/A", A2/B2)
Ось і все, що я хотів сказати про використання функції ЕСЛИ в Excel. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!
Практичний посібник для завантаження
Excel ЕСЛИ кілька критеріїв - приклади (файл .xlsx)