Вложенные операторы IF в Excel - примеры, лучшие практики и альтернативы

  • Поделись Этим
Michael Brown

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

Как вы обычно реализуете логику принятия решений в своих листах Excel? В большинстве случаев вы используете формулу IF для проверки условия и возвращаете одно значение, если условие выполнено, и другое значение, если условие не выполнено. Чтобы оценить более одного условия и вернуть разные значения в зависимости от результатов, вы вставляете несколько IF друг в друга.

Несмотря на свою популярность, вложенный оператор IF не является единственным способом проверки нескольких условий в Excel. В этом учебнике вы найдете несколько альтернатив, которые определенно стоит изучить.

    Вложенный оператор IF в Excel

    Вот классическая вложенная формула ЕСЛИ в Excel в общем виде:

    ЕСЛИ( условие1 , результат1 , IF( условие2 , результат2 , IF( условие3 , результат3 , результат4 )))

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

    Наша общая вложенная формула IF оценивает 3 условия и возвращает 4 различных результата (результат 4 возвращается, если ни одно из условий не равно TRUE). В переводе на человеческий язык, это вложенное выражение IF говорит Excel сделать следующее:

    Тест условие1 , если TRUE - возврат результат1 , если FALSE -

    тест условие2 , если TRUE - вернуть r результат2 , если FALSE -

    тест условие3 , если TRUE - возврат результат3 , если FALSE -

    возврат результат4

    В качестве примера, давайте выясним комиссионные для ряда продавцов на основе количества совершенных ими продаж:

    Комиссия Продажи
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Более 150 долларов

    В математике изменение порядка слагаемых не меняет сумму. В Excel изменение порядка функций ЕСЛИ меняет результат. Почему? Потому что вложенная формула ЕСЛИ возвращает значение, соответствующее параметру первое условие TRUE Поэтому во вложенных операторах IF очень важно расположить условия в правильном направлении - от высокого к низкому или от низкого к высокому, в зависимости от логики вашей формулы. В нашем случае мы сначала проверяем условие "самое высокое", затем "второе самое высокое" и так далее:

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

    Если бы мы расположили условия в обратном порядке, снизу вверх, результаты были бы неверными, потому что наша формула остановилась бы после первого логического теста (B2>=1) для любого значения больше 1. Допустим, у нас 100 долларов продаж - это больше 1, поэтому формула не будет проверять другие условия и вернет 3% в качестве результата.

    Если вы предпочитаете расположить условия от низкого к высокому, то используйте оператор "less than" и оценивайте сначала условие "наименьшее", затем "второе наименьшее" и так далее:

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

    Как видите, чтобы правильно выстроить логику вложенного оператора ЕСЛИ до самого конца, нужно немало подумать. И хотя Microsoft Excel позволяет вложить до 64 функций ЕСЛИ в одну формулу, это не то, что вы действительно хотите делать в своих рабочих листах. Итак, если вы (или кто-то другой) смотрите на свою вложенную формулу ЕСЛИ в Excel, пытаясь понять, что она на самом деле делает, пришло время сделать следующее.пересмотреть свою стратегию и, возможно, выбрать другой инструмент в своем арсенале.

    Для получения дополнительной информации см. раздел Excel "Вложенный оператор IF".

    Вложенный IF с условиями OR/AND

    Если вам нужно оценить несколько наборов различных условий, вы можете выразить эти условия с помощью функций OR и AND, вложить эти функции в операторы IF, а затем вложить операторы IF друг в друга.

    Вложенные IF в Excel с помощью операторов OR

    Используя функцию ИЛИ, вы можете проверить два или более различных условий в логическом тесте каждой функции ЕСЛИ и вернуть 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 statement.

    Вложенные IF в Excel с помощью операторов AND

    Если ваши логические тесты включают несколько условий, и все эти условия должны быть оценены как TRUE, выразите их с помощью функции AND.

    Например, чтобы назначить комиссионные на основе меньшего количества продаж, возьмите приведенную выше формулу и замените операторы OR на 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%, "")))).

    В результате наша вложенная формула IF рассчитывает комиссию на основе меньшего числа в столбцах B и C. Если один из столбцов пуст, то комиссия вообще не взимается, поскольку не выполняется ни одно из условий AND:

    Если вы хотите вернуть 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)

    Обратите внимание, что мы исправляем массив_таблиц с абсолютными ссылками ($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 логический_тест / значение_если_истина пар, и первый логический тест с оценкой 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, если ни одно из указанных условий не выполняется. Чтобы избежать этого, вы можете добавить еще одно логический_тест / значение_если_истина в конце вашей формулы, которая вернет 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 вместо вложенного IF.

    CHOOSE вместо вложенной формулы IF в Excel

    Еще один способ проверки нескольких условий в рамках одной формулы в Excel - использование функции CHOOSE, которая предназначена для возврата значения из списка на основе позиции этого значения.

    В применении к нашему набору данных формула принимает следующий вид:

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

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

    Например, значение в B2 равно $150. Для этого значения первые 3 условия TRUE, а последнее (B2> 150) - FALSE. Итак, индексное_число равно 3, то есть возвращается 3-е значение, то есть 7%.

    Совет. Если ни один из логических тестов не является ИСТИНОЙ, индексное_число равна 0, и формула возвращает ошибку #VALUE! Простое решение - обернуть CHOOSE в функцию IFERROR следующим образом:

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

    Для получения дополнительной информации смотрите функцию Excel CHOOSE с примерами формул.

    Функция 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, "")

    Обратите внимание, что мы блокируем все ссылки, кроме первой, знаком $, чтобы они не менялись при копировании формулы в другие ячейки:

    Примечание. Функция SWITCH доступна только в Excel 2016 и выше.

    Более подробную информацию можно найти в разделе Функция SWITCH - компактная форма вложенного оператора 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, и, надеюсь, это руководство дало вам несколько подсказок о том, как использовать их в ваших рабочих листах. Чтобы более подробно рассмотреть примеры, рассмотренные в этом руководстве, вы можете загрузить наш образец рабочей книги ниже. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Рабочая тетрадь для тренировок для скачивания

    Вложенный оператор If в Excel - примеры (файл .xlsx)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.