Оглавление
В учебнике показано, как создавать в Excel несколько операторов IF с логикой AND и OR. Также вы узнаете, как использовать IF вместе с другими функциями Excel.
В первой части нашего учебника Excel IF мы рассмотрели, как построить простой оператор IF с одним условием для текста, чисел, дат, пустых и непустых строк. Однако для мощного анализа данных вам часто может потребоваться одновременная оценка нескольких условий. Приведенные ниже примеры формул покажут вам наиболее эффективные способы сделать это.
Как использовать функцию IF с несколькими условиями
По сути, существует два типа Формула IF с несколькими критериями на основе логики AND / OR Следовательно, в логическом тесте вашей формулы IF вы должны использовать одну из этих функций:
- Функция AND - возвращает TRUE, если все условия выполнены; FALSE в противном случае.
- Функция ИЛИ - возвращает TRUE, если любое отдельное условие выполнено; FALSE в противном случае.
Чтобы лучше проиллюстрировать этот момент, давайте рассмотрим несколько примеров формул из реальной жизни.
Оператор Excel IF с несколькими условиями (логика AND)
Общая формула Excel IF с двумя или более условиями выглядит следующим образом:
ЕСЛИ(И( условие1 , условие2 , ...), value_if_true, value_if_false)В переводе на человеческий язык формула звучит так: Если условие 1 истинно И условие 2 истинно, возвращаем значение_если_истина ; else return значение_если_ложно .
Предположим, у вас есть таблица, в которой в столбцах B и C перечислены результаты двух тестов. Чтобы сдать выпускной экзамен, студент должен набрать оба балла больше 50.
Для логического теста вы используете следующий оператор AND: AND(B2>50, C2>50)
Если оба условия истинны, формула вернет "Pass"; если любое условие ложно - "Fail".
=IF(AND(B2>50, B2>50), "Пройдено", "Не пройдено")
Легко, не так ли? Приведенный ниже скриншот доказывает, что наша формула Excel IF /AND работает правильно:
Аналогичным образом можно использовать функцию Excel IF с несколькими текстовые условия .
Например, чтобы вывести "Хорошо", если B2 и C2 больше 50, и "Плохо" в противном случае, формула выглядит следующим образом:
=IF(AND(B2="зачет", C2="зачет"), "Хорошо!", "Плохо")
Важное замечание! Функция AND проверяет все условия Такое поведение несколько необычно, поскольку в большинстве языков программирования последующие условия не проверяются, если любой из предыдущих тестов вернул FALSE.
На практике, казалось бы, правильный оператор IF может привести к ошибке из-за этой специфики. Например, приведенная ниже формула вернет #DIV/0! (ошибка "деление на ноль"), если ячейка A2 равна 0:
=IF(AND(A20, (1/A2)>0.5), "Хорошо", "Плохо")
Чтобы избежать этого, следует использовать вложенную функцию IF:
=IF(A20, IF((1/A2)>0.5, "Хорошо", "Плохо"), "Плохо")
Для получения дополнительной информации см. формулу IF AND в Excel.
Функция ЕСЛИ в Excel с несколькими условиями (логика ИЛИ)
Делать одно дело, если любое условие выполнено, в противном случае сделайте что-то другое, используйте эту комбинацию функций ЕСЛИ и ИЛИ:
ЕСЛИ(ИЛИ( условие1 , условие2 , ...), value_if_true, value_if_false)Отличие от формулы IF / AND, рассмотренной выше, заключается в том, что Excel возвращает TRUE, если любое из указанных условий истинно.
Так, если в предыдущей формуле мы используем OR вместо AND:
=IF(OR(B2>50, B2>50), "Прошел", "Не прошел")
Тогда каждый, кто набрал более 50 баллов на любом из экзаменов, получит "Pass" в колонке D. При таких условиях у наших студентов больше шансов сдать выпускной экзамен (особенно не повезло Иветт, которая провалилась всего на 1 балл:)
Совет. В случае, если вы создаете множественный оператор IF с текстом и проверки значения в одной ячейке с помощью логики ИЛИ (то есть ячейка может быть "этой" или "той"), то можно построить более компактную формулу, используя константу массива.
Например, чтобы отметить продажу как "закрытую", если в ячейке B2 стоит либо "доставлено", либо "оплачено", используется следующая формула:
=IF(OR(B2={"доставлено", "оплачено"}), "Закрыто", "")
Больше примеров формул можно найти в Excel в функции ЕСЛИ ИЛИ.
IF с несколькими операторами AND & OR
Если ваша задача требует оценки нескольких наборов условий, вам придется одновременно использовать функции AND & OR.
В нашей таблице-образце предположим, что у вас есть следующие критерии для проверки результатов экзамена:
- Условие 1: экзамен1>50 и экзамен2>50
- Условие 2: экзамен1>40 и экзамен2>60
При выполнении любого из этих условий выпускной экзамен считается сданным.
На первый взгляд, формула кажется немного запутанной, но на самом деле это не так! Вы просто выражаете каждое из вышеперечисленных условий в виде оператора AND и вставляете их в функцию OR (поскольку не обязательно выполнять оба условия, достаточно любого из них):
OR(AND(B2>50, C2>50), AND(B2>40, C2>60))
Затем используйте функцию ИЛИ для логической проверки ЕСЛИ и поставьте нужное значение значение_если_истина и значение_если_ложно значения. В результате вы получите следующую формулу IF с несколькими условиями AND / OR:
=IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "Прошел", "Не прошел")
Снимок экрана ниже показывает, что мы сделали формулу правильно:
Естественно, вы не ограничены использованием только двух функций AND/OR в формулах IF. Вы можете использовать их столько, сколько требует ваша бизнес-логика, при условии, что:
- В Excel 2007 и выше, у вас есть не более 255 аргументов, а общая длина формулы IF не превышает 8 192 символов.
- В Excel 2003 и ниже, не более 30 аргументов, а общая длина вашей формулы IF не превышает 1024 символов.
Вложенный оператор IF для проверки нескольких логических тестов
Если вы хотите оценить несколько логических тестов в одной формуле, то вы можете вложить несколько функций одну в другую. Такие функции называются вложенные функции ЕСЛИ Они особенно полезны, когда вы хотите возвращать различные значения в зависимости от результатов логических тестов.
Вот типичный пример: предположим, вы хотите квалифицировать достижения студентов как " Хорошо ", " Удовлетворительно " и " Бедные " на основе следующих оценок:
- Хорошо: 60 или более (>=60)
- Удовлетворительно: от 40 до 60 (>40 и <60)
- Бедность: 40 или менее (<=40)
Прежде чем писать формулу, подумайте о порядке функций, которые вы собираетесь вложить. Excel будет оценивать логические тесты в том порядке, в котором они появляются в формуле. Как только условие оценивается как TRUE, последующие условия не проверяются, то есть формула останавливается после первого результата TRUE.
В нашем случае функции расположены от наибольшей к наименьшей:
=IF(B2>=60, "Хорошо", IF(B2>40, "Удовлетворительно", "Плохо"))
Естественно, при необходимости вы можете вложить больше функций (до 64 в современных версиях).
Для получения дополнительной информации см. раздел Как использовать несколько вложенных операторов IF в Excel.
Формула массива Excel ЕСЛИ с несколькими условиями
Другой способ заставить Excel IF проверять несколько условий - использовать формулу массива.
Чтобы оценить условия с помощью логики AND, используйте звездочку:
ЕСЛИ( условие1 ) * ( условие2 ) * ..., value_if_true, value_if_false)Чтобы проверить условия с помощью логики "ИЛИ", используйте знак плюс:
ЕСЛИ( условие1 ) + ( условие2 ) + ..., value_if_true, value_if_false)Чтобы правильно завершить формулу массива, нажмите вместе клавиши Ctrl + Shift + Enter. В Excel 365 и Excel 2021 это также работает как обычная формула благодаря поддержке динамических массивов.
Например, чтобы получить "Pass", если оба значения B2 и C2 больше 50, формула выглядит следующим образом:
=IF((B2>50) * (C2>50), "Прошел", "Не прошел")
В моем Excel 365 обычная формула работает просто отлично (как вы можете видеть на скриншотах выше). В Excel 2019 и ниже, не забудьте сделать формулу массивом, используя сочетание клавиш Ctrl + Shift + Enter.
Для оценки нескольких условий с помощью логики "ИЛИ" используется формула:
=IF((B2>50) + (C2>50), "Пройдено", "Не пройдено")
Использование IF вместе с другими функциями
В этом разделе объясняется, как использовать IF в сочетании с другими функциями Excel и какие преимущества это дает.
Пример 1. Если ошибка #N/A в VLOOKUP
Когда 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 предусмотрены функции SUMIF и SUMIFS.
В некоторых ситуациях бизнес-логика может потребовать включения функции 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
Чтобы вывести результат функции IF и некоторый текст в одну ячейку, используйте функции CONCATENATE или CONCAT (в Excel 2016 - 365) и IF вместе. Например:
=CONCATENATE("Вы выступили ", IF(B1>100, "фантастически!", IF(B1>50, "хорошо", "плохо")))
=CONCAT("Вы выступили ", IF(B1>100, "фантастически!", IF(B1>50, "хорошо", "плохо")))
Если посмотреть на скриншот ниже, вам вряд ли понадобится объяснять, что делает эта формула:
Формула IF ISERROR / ISNA в Excel
Современные версии Excel имеют специальные функции для отлова ошибок и замены их другим вычислением или предопределенным значением - IFERROR (в Excel 2007 и выше) и IFNA (в Excel 2013 и выше). В более ранних версиях Excel вместо них можно использовать комбинации IF ISERROR и IF ISNA.
Разница в том, что 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)
И это все, что я хотел сказать об использовании функции IF в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Рабочая тетрадь для тренировок для скачивания
Excel IF множественные критерии - примеры (файл.xlsx)