Как задать условия в Excel: от простых проверок до сложной логики

Почему условия в Excel — это основа любой автоматизации

Представьте: у вас таблица с тысячей строк данных о продажах, и нужно автоматически выделить красным все убыточные сделки, посчитать бонусы для топ-менеджеров или фильтровать клиентов по регионам. Вручную это займёт часы. А с условиями в Microsoft Excel или Google Таблицах — пару минут. Условия позволяют программе "думать" за вас: анализировать данные, принимать решения и выполнять действия без вашего участия.

Но здесь кроется подвох: 80% пользователей используют только функцию ЕСЛИ, хотя в арсенале Excel есть десятки инструментов для работы с условиями — от условного форматирования до массивов и ЛЯМБДА. Эта статья поможет разобраться, когда достаточно простой проверки, а когда пора переходить на вложенные условия, логические операторы или даже динамические массивы (да, они тоже умеют работать с условиями!).

Мы не будем переписывать справочник Excel — вместо этого покажем реальные кейсы из бизнеса, бухгалтерии и анализа данных, где условия экономят часы работы. Например, как автоматически рассчитывать скидки по сегментам клиентов или выявлять аномалии в финансовых отчётах. Готовы? Начнём с самого простого — функции ЕСЛИ.

1. Функция ЕСЛИ: база, которую знают все (но не все умеют применять)

Функция ЕСЛИ (IF в английской версии) — это "привет, мир!" в логике Excel. Её синтаксис прост:

=ЕСЛИ(логическое_выражение; значение_если_истина; значение_если_ложь)

Но даже здесь есть подводные камни. Например, многие забывают, что логическое выражение может быть не только сравнением (A1>100), но и ссылкой на ячейку с булевым значением (ЕСЛИ(B2; "Да"; "Нет")), или даже другой функцией, возвращающей ИСТИНА/ЛОЖЬ (например, ЕЧИСЛО или ЕОШИБКА).

  • 📌 Пример 1: Проверка прохождения плана продаж. Если фактические продажи (B2) больше плана (C2), выводим "Перевыполнен", иначе "Недовыполнен":
    =ЕСЛИ(B2>C2; "Перевыполнен"; "Недовыполнен")
  • 💡 Пример 2: Проверка наличия данных. Если ячейка A1 не пустая, выводим её значение, иначе — "Нет данных":
    =ЕСЛИ(A1<>""; A1; "Нет данных")
  • ⚠️ Пример 3: Ошибка #ЗНАЧ!. Если забыть закрыть кавычки в текстовом значении, Excel выдаст ошибку. Например, =ЕСЛИ(A1>10; "Да) — здесь не хватает закрывающей кавычки.
⚠️ Внимание: Если в формуле ЕСЛИ используете текстовые значения (например, "Да"/"Нет"), всегда заключайте их в кавычки. Числа и даты кавычек не требуют. Исключение — ИСТИНА и ЛОЖЬ, которые можно писать без кавычек.
📊 Как часто вы используете функцию ЕСЛИ в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда не использовал

2. Логические операторы И/ИЛИ: когда одного условия мало

Что делать, если нужно проверить несколько условий одновременно? Например, выдать бонус менеджеру, только если он и перевыполнил план и проработал в компании больше года. Здесь на помощь приходят функции И (AND) и ИЛИ (OR).

Ключевое отличие:

  • И — возвращает ИСТИНА, только если все условия истинны.
  • ИЛИ — возвращает ИСТИНА, если хотя бы одно условие истинно.

Пример с бонусом менеджера:

=ЕСЛИ(И(B2>C2; D2>365); "Бонус 10%"; "Бонус 5%")

Здесь B2 — фактические продажи, C2 — план, D2 — стаж в днях. Бонус 10% получит только тот, кто перевыполнил план и проработал больше года.

Функция Синтаксис Пример Результат
И И(условие1; условие2; ...) И(A1>10; B1<20) ИСТИНА, если A1 > 10 и B1 < 20
ИЛИ ИЛИ(условие1; условие2; ...) ИЛИ(A1=5; A1=10) ИСТИНА, если A1 равно 5 или 10
НЕ НЕ(условие) НЕ(A1>0) ИСТИНА, если A1 ≤ 0
⚠️ Внимание: Функции И/ИЛИ могут принимать до 255 аргументов (в Excel 2019 и новее). Но если условий больше 5–7, стоит задуматься о разделении логики на несколько столбцов или использовании ВПР/ИНДЕКС.

Убедиться, что все условия одного типа (числа, текст, даты)|

Проверить, не пересекаются ли условия (например, A1>10 и A1>5 — лишнее)|

Использовать НЕ для инверсии вместо двойного отрицания|

Тестировать формулу на крайних значениях (0, пустая ячейка, ошибка)

-->

3. Вложенные ЕСЛИ: когда условий слишком много

Что делать, если нужно проверить не два исхода ("Да"/"Нет"), а пять? Например, присвоить клиенту категорию в зависимости от суммы покупки:

  • Более 10 000 руб. — "Премиум"
  • 5 000–10 000 руб. — "Стандарт+"
  • 1 000–5 000 руб. — "Стандарт"
  • Менее 1 000 руб. — "Бюджет"

Решение — вложенные функции ЕСЛИ. Синтаксис становится громоздким, но работает:

=ЕСЛИ(A1>10000; "Премиум";

ЕСЛИ(A1>5000; "Стандарт+";

ЕСЛИ(A1>1000; "Стандарт"; "Бюджет")))

Проблемы вложенных ЕСЛИ:

  • 🔴 Читаемость: Уже при 4–5 уровнях вложенности формулу сложно понять.
  • 🔴 Ошибки: Легко забыть закрывающую скобку или перепутать порядок условий.
  • 🔴 Производительность: Большие вложенные конструкции тормозят пересчёт таблицы.

4. Условное форматирование: когда формулы не нужны

Не всегда условия нужно прописывать формулами. Если задача — визуально выделить данные (например, красным цветом все ячейки со значением ниже нуля), проще использовать условное форматирование. Его преимущества:

  • ✅ Работает без формул — настраивается через интерфейс.
  • ✅ Мгновенно применяется ко всему диапазону.
  • ✅ Можно комбинировать несколько правил (например, зелёный для прибыли, красный для убытков, жёлтый для нулевых значений).

Как настроить:

  1. Выделите диапазон (например, B2:B100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите тип правила (например, "Форматировать ячейки, которые содержат").
  4. Задайте условие (например, "Значение меньше" → 0) и формат (красный текст).

Продвинутый трюк: в правилах условного форматирования можно использовать формулы. Например, чтобы выделить строки с просроченными задачами (дата в колонке C раньше сегодняшней):

=C1
⚠️ Внимание: Условное форматирование не меняет сами данные — только их отображение. Если вам нужно не только выделить, но и посчитать количество убыточных сделок, используйте СЧЁТЕСЛИ или СУММЕСЛИ.
Как ускорить условное форматирование для больших таблиц

Если таблица содержит более 10 000 строк, условное форматирование может тормозить. Решения:

1. Применяйте правила только к видимому диапазону (например, A1:Z1000 вместо всей колонки).

2. Используйте таблицы Excel (Ctrl+T) — они оптимизируют пересчёт.

3. Заменяйте сложные правила на ВПР или ИНДЕКС в отдельном столбце, а затем форматируйте его.

5. Функции СЧЁТЕСЛИ/СУММЕСЛИ: условия для статистики

Допустим, вам нужно посчитать, сколько клиентов из Москвы сделали покупку на сумму больше 5 000 руб. Вручную перебирать строки? Нет ума! Здесь помогут СЧЁТЕСЛИ (COUNTIF) и СУММЕСЛИ (SUMIF).

СЧЁТЕСЛИ считает количество ячеек, соответствующих условию:

=СЧЁТЕСЛИ(диапазон; условие)

Пример: сколько раз в колонке A2:A100 встречается слово "Москва":

=СЧЁТЕСЛИ(A2:A100; "Москва")

СУММЕСЛИ суммирует значения, соответствующие условию:

=СУММЕСЛИ(диапазон_условий; условие; диапазон_суммирования)

Пример: сумма продаж (колонка B) для клиентов из Москвы (колонка A):

=СУММЕСЛИ(A2:A100; "Москва"; B2:B100)

Для более сложных условий (например, сумма продаж по региону и по периоду) используйте СУММЕСЛИМН (SUMIFS):

=СУММЕСЛИМН(B2:B100; A2:A100; "Москва"; C2:C100; ">01.01.2023")
Функция Когда использовать Пример
СЧЁТЕСЛИ Подсчёт количества ячеек по одному условию =СЧЁТЕСЛИ(A:A; "Да")
СЧЁТЕСЛИМН Подсчёт по нескольким условиям =СЧЁТЕСЛИМН(A:A; "Да"; B:B; ">100")
СУММЕСЛИ Суммирование по одному условию =СУММЕСЛИ(A:A; "Москва"; B:B)
СУММЕСЛИМН Суммирование по нескольким условиям =СУММЕСЛИМН(B:B; A:A; "Москва"; C:C; ">0")

6. Продвинутые приёмы: ЕСЛИОШИБКА, ВПР с условиями, ЛЯМБДА

Когда базовых функций недостаточно, на сцену выходят продвинутые инструменты. Рассмотрим три кейса:

1. Обработка ошибок с ЕСЛИОШИБКА

Функция ЕСЛИОШИБКА (IFERROR) позволяет "поймать" ошибки (например, #ДЕЛ/0! или #Н/Д) и заменить их на нужное значение:

=ЕСЛИОШИБКА(B2/C2; 0)

Здесь если C2=0 (деление на ноль), вместо ошибки вернётся 0.

2. ВПР с условием

Функция ВПР (VLOOKUP) сама по себе не умеет работать с условиями, но можно обойти это ограничение. Например, чтобы найти скидку для клиента в зависимости от суммы покупки:

=ВПР(A1; {0,0%; 1000,5%; 5000,10%; 10000,15%}; 2; ИСТИНА)

Здесь A1 — сумма покупки. Формула вернёт процент скидки из таблицы соответствий.

3. ЛЯМБДА для гибких условий (Excel 365)

В новых версиях Excel появилась функция ЛЯМБДА, позволяющая создавать кастомные формулы. Например, можно написать свою функцию для проверки, является ли число простым:

=ЛЯМБДА(число;

ЕСЛИ(число<2; ЛОЖЬ;

И(СЧЁТЕСЛИМН(

ПОСЛЕДОВАТ(2; число-1);

"<="&число;

ПОСЛЕДОВАТ(2; число-1);

">="&КОРЕНЬ(число);

ОСТАТ(число; ПОСЛЕДОВАТ(2; число-1)); 0

)=0));

ИСТИНА)

)

Эта формула вернёт ИСТИНА, если число простое. Согласитесь, это уже ближе к программированию!

7. Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при работе с условиями. Вот топ-5 проблем и их решения:

  • 🚨 Ошибка #ИМЯ?: Опечатка в названии функции (например, ЕСЛИИ вместо ЕСЛИ). Excel не распознаёт функцию.
    ⚠️ Внимание: В русскоязычной версии Excel все функции пишутся заглавными буквами (например, ЕСЛИ, а не если).
  • 🚨 Ошибка #ЗНАЧ!: Пропущена запятая или кавычка в формуле. Например, =ЕСЛИ(A1>10 "Да") вместо =ЕСЛИ(A1>10; "Да").
  • 🚨 Неправильный порядок условий: В вложенных ЕСЛИ сначала проверяйте самые строгие условия. Например, при проверке диапазонов:
    =ЕСЛИ(A1>100; "Большое"; ЕСЛИ(A1>50; "Среднее"; "Маленькое"))

    Если поменять местами A1>50 и A1>100, формула никогда не дойдёт до "Большое".

  • 🚨 Ссылки на ячейки не фиксированы: Если копируете формулу вниз, но забыли зафиксировать ссылки знаком $ (например, $A$1), Excel автоматически сдвинет диапазоны, и формула сломается.
  • 🚨 Условное форматирование не обновляется: Если данные в ячейке изменились, но цвет не обновился, нажмите F9 (пересчёт формул) или проверьте, не стоит ли в настройках Excel галочка "Вручную" для пересчёта.

Ещё одна распространённая проблема — циклические ссылки. Например, если в ячейке A1 формула =ЕСЛИ(B1>10; A1*2; 0), а в B1 есть ссылка на A1, Excel выдаст ошибку. Чтобы найти цикл, перейдите на вкладку Формулы → Зависимости формул → Стрелки ошибок.

FAQ: Ответы на частые вопросы

Как сделать условие с несколькими диапазонами? Например, проверить, что хотя бы в одном из трёх столбцов есть значение "Да".

Используйте функцию ИЛИ с проверкой каждого диапазона:

=ЕСЛИ(ИЛИ(A1="Да"; B1="Да"; C1="Да"); "Есть совпадение"; "Нет")

Если диапазоны большие, комбинируйте с СЧЁТЕСЛИ:

=ЕСЛИ(СЧЁТЕСЛИ(A1:C1; "Да")>0; "Есть"; "Нет")
Можно ли в условии использовать регулярные выражения (например, найти все ячейки, начинающиеся с "А")?

В стандартном Excel нет встроенных регулярных выражений, но можно обойтись подстановочными знаками:

  • — любое количество символов (например, " найдёт "Андрей", "А123").
  • ? — один символ (например, "А??" найдёт "Абв", но не "Абвг").
  • ~ — экранирование (например, "~*" найдёт ячейки со звёздочкой).

Пример:

=СЧЁТЕСЛИ(A:A; "А*")

Для полноценных регулярных выражений нужны надстройки (например, Morefunc) или Power Query.

Как проверить, содержится ли текст в другой ячейке? Например, найти все строки, где в колонке "Адрес" есть слово "проспект".

Используйте функции ПОИСК или НАЙТИ (регистрозависимая) внутри ЕСЛИ:

=ЕСЛИ(ЕЧИСЛО(ПОИСК("проспект"; A1)); "Есть"; "Нет")

Функция ПОИСК возвращает позицию подстроки или ошибку #ЗНАЧ!, если не найдена. ЕЧИСЛО проверяет, что результат — число (т.е. подстрока найдена).

Почему моя формула с ЕСЛИ работает медленно?

Причины тормозов и решения:

  1. Слишком много вложенных ЕСЛИ: Разбейте логику на несколько столбцов или используйте ВПР/ИНДЕКС.
  2. Диапазоны со ссылками на целые колонки: Заменяйте A:A на A1:A1000 (реальный используемый диапазон).
  3. Летучие функции: СЕГОДНЯ(), ТДАТА(), СЛЧИС() пересчитываются при любом изменении в книге. Минимизируйте их использование.
  4. Условное форматирование: Если правил больше 10, создайте отдельный столбец с формулами и форматируйте его.

Для ускорения также поможет:

  • Отключение автоматического пересчёта (Формулы → Параметры вычислений → Вручную).
  • Преобразование данных в Power Query (меньше нагрузки на формулы).

Как задать условие для дат? Например, проверить, попадает ли дата в текущий месяц.

Используйте функции МЕСЯЦ и ГОД:

=ЕСЛИ(И(МЕСЯЦ(A1)=МЕСЯЦ(СЕГОДНЯ()); ГОД(A1)=ГОД(СЕГОДНЯ())); "Текущий месяц"; "Другой месяц")

Для проверки диапазона дат (например, 1–15 число):

=ЕСЛИ(И(A1>=ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); 1); A1<=ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); 15)); "Первая половина"; "Вторая половина")