7 способов проверить условия в Excel

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

Однако, кроме общеизвестной функции ЕСЛИ, на самом деле, есть ещё несколько более изящных способов выполнить подобную проверку.

Во-первых, в последних версиях Microsoft Excel появились новые удобные функции для этой цели: ЕСЛИМН (IFS) и ПЕРЕКЛЮЧ (SWITCH) - с и помощью реализовать сложные многоуровневые проверки стало теперь гораздо проще. Во-вторых, даже в старых версиях Excel есть несколько подходов к проверке условий вообще без функции ЕСЛИ, зато с использованием формул массива. которые однозначно стоит изучить.

ЕСЛИ (IF)

Для начала, кратко вспомним "классику" - функцию ЕСЛИ (IF), доступную абсолютно в любой версии Microsoft Excel:

Проверка условий функцией ЕСЛИ

Первый аргумент здесь - это проверяемое условие, второй - что выводим если условие выполняется, третий - что выводим, если условие не выполняется.

Если нужно проверить несколько условий, то придётся вкладывать друг в друга несколько функций ЕСЛИ и формула получается уже пострашнее:

Вложенные ЕСЛИ

Для наглядности, кстати, весьма полезно бывает прямо в строке формул разнести вложенные функции по разным строчкам (с помощью сочетания клавиш Alt+Enter) и сделать для них отступы соответственно уровню вложенности (с помощью пробелов) - так всё будет гораздо понятнее:

Вложенные ЕСЛИ по строкам

ЕСЛИМН (IFS)

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

Несколько условий с ЕСЛИМН

Здесь в качестве аргументов мы задаём пары - условие и значение, которое нужно вывести, если условие выполняется. Максимально разрешается задать до 127 таких пар "условие-результат", что более, чем достаточно для повседневных задач.

Имейте в виду, что первое же выполнившееся условие останавливает расчёт и дальнейшие условия уже не проверяются.

ПЕРЕКЛЮЧ (SWITCH)

Ещё одна новая функция, добавленная с 2019 года - это функция ПЕРЕКЛЮЧ (SWITCH). Она тоже позволяет заменить кучу вложенных друг в друга ЕСЛИ, но делает это слегка иначе:

Проверка условий функцией ПЕРЕКЛЮЧ (SWITCH)

Важно отметить, что первым аргументом этой функции может быть не проверяемая ячейка, а логическое значение ИСТИНА или ЛОЖЬ. Тогда все указанные далее условия будут проверяться на выполнение или невыполнение, соответственно. Например, весьма частым случаем проверки условий бывает проверка попадания исходного значения в один из нескольких определённых интервалов. Как раз для такого отлично подойдет функция ПЕРКЛЮЧ со значением ИСТИНА в первом аргументе:

ПЕРЕКЛЮЧ в режиме ИСТИНА

ВПР с интервальным просмотром

Предыдущую задачу с проверкой попадания в интервалы можно решить и более компактным способом - с использованием функции ВПР (VLOOKUP) в режиме интервального просмотра, когда она ищет не точное, а ближайшее наименьшее совпадение:

ВПР в режиме интервального просмотра

Здесь:

  • F2 - ячейка с ценой для которой ищем класс;
  • J:K - таблица с ценовыми категориями;
  • 2 - номер столбца в этой таблице, откуда нужно вернуть класс;
  • 1 (или ИСТИНА) - включение режима приблизительного поиска, когда в первом столбце таблицы J:K ищется не точное, а ближайшее наименьшее совпадение.

ВЫБОР

Помимо новых функций ЕСЛИМН (IFS) и ПЕРКЛЮЧ (SWITCH) для решения задач множественной проверки условий можно использовать и классику - например, функцию ВЫБОР (CHOOSE):

Функция ВЫБОР

Начиная со второго её аргумента мы указываем все возможные результаты, а первым аргументом - номер результата, который нам нужен.

Дополнительно снаружи можно завернуть её в функцию ЕСЛИОШИБКА (IFERROR) для перехвата ошибок в том случае, когда ни одно из значений не может быть получено (например, оценка не указана или меньше нуля).

Что интересно, в качестве второго и далее аргументов функции ВЫБОР можно задавать не только текст или числа, но и целые диапазоны. Например, можно легко вычислить сумму продаж за выбранный квартал:

ВЫБОР и СУММ

Прямое умножение на условие(я)

Есть и способы проверки условий, которые вообще не предполагают использования каких-либо логических функций типа ЕСЛИ (IF)

Например, можно использовать в формуле прямое умножение на условие. Там где условие выполняется - возвращается ИСТИНА, где не выполняется - ЛОЖЬ. Однако вычислительный движок Excel интерпретирует ИСТИНУ как 1, а ЛОЖЬ как 0, так что последующее умножение на условие обнуляет, таким образом, все ячейки, где критерий не выполняется.

Так, например, можно легко дать скидку в 15% на нужный товар:

Прямое умножение на условие

А если захочется добавить ещё условие (например, давать скидку только на свитера дороже 3000), то можно просто дописать к формуле ещё один множитель-условие:

Еще одно условие

Формула массива

Если нужно проверить сразу несколько значений на соответствие заданным критериям, то можно использовать и функции И (AND) и ИЛИ (OR), причём в варианте формулы массива.

Предположим, что нам нужно дать ту же скидку в 15% на товары с характеристиками из жёлтых ячеек: 

Формула массива с функцией И (AND)

Здесь мы проверяем сразу три ячейки A2:C2 на предмет равенства искомым критериям в жёлтых ячейках H2:J2. Если каждая проверяемая пара ячеек даёт ИСТИНУ, то и вся функция И тоже вернёт логическое значение ИСТИНА, которое мы затем умножаем на нашу скидку.

Если у вас последние версии Excel (2021 или новее), то после ввода этой формулы достаточно просто нажать на Enter. В старых же версиях необходимо ввести эту формулу уже как формулу массива - используя сочетание клавиш Ctrl+Shift+Enter.

Ссылки по теме

 


05.06.2025 09:20:45
Прямое умножение понравилось: добавил 15 условий, каждое перенеся на новую строку.
Читаемость выросла в разы!
Спасибо, Николай!
05.06.2025 12:21:38
Не за что ;):like:
UMV
05.06.2025 12:39:37
Николай, добрый день! Большое спасибо за очередной прекрасный урок.
Оттолкнувшись от раздела "Прямое умножение на условие(я)" решил попробовать по аналогии "сложение", т.е. функцию ИЛИ() заменил на "+".
В результате моя формула:

=ЕСЛИ(ИЛИ(И($G$9=1;
            ДЛСТР($A$12)=10);
          И($G$9=2;
            ДЛСТР($A$12)=12);
          ЕПУСТО($A$12));
      ИСТИНА();
      ЛОЖЬ())

приобрела вид:
=И((($G$9=1)*(ДЛСТР($A$12)=10)+($G$9=2)*(ДЛСТР($A$12)=12)+ЕПУСТО($A$12)))

Еще один момент: у Вас в видео для ПЕРКЛЮЧ со значением ИСТИНА в первом аргументе для пустой клетки выдает "Эконом", а должен быть "-".
Max
06.06.2025 11:41:48
Николай, спасибо! Как всегда всё чётко и по делу. Кое-что для себя записал ;-)
08.06.2025 04:48:05
Очень полезное видео! Впрочем как всегда!
Сразу хочу спросить уважаемых форумчан, начальник выдал на гора идею, пока не пойму в какую сторону копать! Есть таблица в которой названия контрагентов, оказанная услуга, место, объём услуги и т.д., предпоследний столбец - дата выставления счёта и последний - дата оплаты. Начальник хочет чтобы строка начинала выделяться красным, если счёт не оплачен в течении трёх рабочих дней, а при последующим заполнении строки оплаты цвет менялся на жёлтый, чтобы впоследствии можно было выделить контрагентов которые хронически задерживают оплату.
Честно говоря моих знаний не хватает для решения этой задачи в полном объёме! Самый затык в том, что нужно считать не просто дни, а только рабочие!
14.06.2025 13:45:20
вам нужно условное форматирование и формула ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])
14.06.2025 16:56:40
Спасибо! Теперь понятно куда копать! Я честно говоря про такую формулу даже не слышал! Век живи, век учись!:D
Наверх