Как в Excel забить формулу с условием: от простых ЕСЛИ до сложных логических конструкций

Условные формулы в Microsoft Excel — это основа аналитики и автоматизации расчётов. Без них таблицы превращаются в статичные наборы чисел, лишённые логики. Но как только вы добавляете условия, Excel начинает "думать": сравнивать данные, принимать решения и выдавать результаты на основе заданных правил. Например, можно автоматически рассчитывать бонусы сотрудникам (если продажи > 100 000 — бонус 10%), выделять просроченные задачи или фильтровать клиентов по регионам.

Многие пользователи ошибочно считают, что условные формулы — это исключительно функция ЕСЛИ (IF). На деле инструментарий гораздо шире: здесь и вложенные условия, и комбинации с И/ИЛИ, и динамические массивы с ФИЛЬТР, и даже условное форматирование. В этой статье разберём всё — от базовых примеров до продвинутых техник, которые экономят часы ручной работы.

Важно понимать: условные формулы в Excel работают не только с числами, но и с текстом, датами, логическими значениями (ИСТИНА/ЛОЖЬ) и даже ошибками (#Н/Д, #ЗНАЧ!). Это делает их универсальным инструментом для любых задач — от бухгалтерии до маркетинговой аналитики.

1. Базовая функция ЕСЛИ: синтаксис и простые примеры

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

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

Разберём на примере. Допустим, у вас таблица с продажами, и нужно автоматически проставить статус "Выполнено", если план выполнен на 100% или больше:

  • 📊 В ячейке B2 — фактические продажи (например, 120 000 ₽).
  • 🎯 В ячейке C2 — план (100 000 ₽).
  • ✅ В ячейке D2 пишем формулу: =ЕСЛИ(B2>=C2; "Выполнено"; "Не выполнено").

Результат: если B2C2, в D2 появится "Выполнено", иначе — "Не выполнено". Можно копировать эту формулу на весь столбец, и Excel автоматически подставит данные для каждой строки.

⚠️ Внимание: Если в ячейках с числами стоят текстовые значения (например, "Нет данных"), функция ЕСЛИ вернёт ошибку #ЗНАЧ!. Чтобы избежать этого, используйте ЕСЛИОШИБКА или проверку ЕЧИСЛО.
Фактические продажи (B) План (C) Формула Результат (D)
120 000 100 000 =ЕСЛИ(B2>=C2; "Выполнено"; "Не выполнено") Выполнено
85 000 100 000 =ЕСЛИ(B3>=C3; "Выполнено"; "Не выполнено") Не выполнено
Нет данных 100 000 =ЕСЛИ(B4>=C4; "Выполнено"; "Не выполнено") #ЗНАЧ!
📊 Как часто вы используете функцию ЕСЛИ в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда не пробовал

2. Вложенные функции ЕСЛИ: когда одного условия мало

Что делать, если нужно проверить несколько условий? Например, проставить оценку студенту: "Отлично" (90-100 баллов), "Хорошо" (70-89), "Удовлетворительно" (50-69), "Неудовлетворительно" (менее 50). Здесь пригодится вложенная функция ЕСЛИ — когда одна функция вставляется в другую.

Формула будет выглядеть так:

=ЕСЛИ(B2>=90; "Отлично";

ЕСЛИ(B2>=70; "Хорошо";

ЕСЛИ(B2>=50; "Удовлетворительно"; "Неудовлетворительно")))

Важно следить за количеством скобок: каждая открывающая ( должна иметь закрывающую ). В Excel 2019 и новее можно использовать до 64 уровней вложенности, но на практике уже после 5-6 условий формула становится нечитаемой. В таких случаях лучше применить ВЫБОР (CHOICE) или ПРОСМОТР (LOOKUP).

1. Проверить количество открывающих и закрывающих скобок

2. Убедиться, что условия расположены по убыванию (от самого строгого к самому мягкому)

3. Заменить текстовые результаты на ссылки на ячейки, если они повторяются

4. Протестировать формулу на крайних значениях (максимум, минимум, среднее)-->

3. Комбинации с И/ИЛИ: сложные логические условия

Функции И (AND) и ИЛИ (OR) позволяют создавать сложные условия. Например, нужно выдать премию сотруднику, если он проработал больше года И выполнил план на 110%:

=ЕСЛИ(И(C2>12; B2>=1.1*D2); "Премия 20%"; "Премии нет")

Здесь C2 — стаж в месяцах, B2 — фактические продажи, D2 — план.

Функция ИЛИ срабатывает, если хотя бы одно из условий истинно. Пример: отметить клиентов, которые сделали заказ на сумму > 50 000 ₽ ИЛИ являются VIP:

=ЕСЛИ(ИЛИ(B2>50000; E2="VIP"); "Приоритетный клиент"; "")
⚠️ Внимание: Функции И/ИЛИ возвращают ИСТИНА или ЛОЖЬ, но не могут использоваться сами по себе для вывода текста. Их всегда нужно оборачивать в ЕСЛИ или другие функции.
Условие Формула Результат при B2=60000, C2=15, E2="VIP"
И(B2>50000; C2>12) =И(B2>50000; C2>12) ИСТИНА
ИЛИ(B2>100000; E2="VIP") =ИЛИ(B2>100000; E2="VIP") ИСТИНА
ЕСЛИ(И(B2>30000; C2>6); "Бонус"; "") =ЕСЛИ(И(B2>30000; C2>6); "Бонус"; "") Бонус

4. Условные формулы с текстом: поиск, замена, проверка

Excel умеет работать с текстовыми данными не хуже, чем с числами. Например, можно проверять наличие подстроки в ячейке с помощью ПОИСК (SEARCH) или НАЙТИ (FIND). Допустим, нужно отметить строки, где в столбце "Комментарий" упоминается слово "срочно":

=ЕСЛИ(ЕЧИСЛО(ПОИСК("срочно"; D2)); "Срочный заказ!"; "")

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

Ещё один полезный приём — замена текста с условием. Например, привести все email-адреса к нижнему регистру, если они написаны в разном:

=ЕСЛИ(D2<>""; СТРОЧН(D2); "")
  • 🔍 ПОИСК — ищет подстроку (регистр не важен).
  • 📍 НАЙТИ — ищет подстроку с учётом регистра.
  • 📝 ПОДСТАВИТЬ — заменяет текст по шаблону.
  • 🔤 ЛЕВСИМВ/ПРАВСИМВ — извлекает символы с начала/конца строки.
=ЕСЛИ(ЛЕВСИМВ(A1; 5)="Отчёт"; "Да"; "Нет")

Это полезно для сортировки документов или писем.-->

5. Условные формулы с датами: сроки, просрочки, рабочие дни

Работа с датами в Excel имеет свои нюансы. Например, чтобы проверить, просрочен ли заказ, нужно сравнить текущую дату с датой выполнения. Формула будет такой:

=ЕСЛИ(B2

Здесь B2 — дата выполнения, ТСЕГОДНЯ (TODAY) — текущая дата.

Более сложный пример: рассчитать количество рабочих дней до дедлайна (исключая выходные). Используем ЧИСТРАБДНИ (NETWORKDAYS):

=ЕСЛИ(B2>ТСЕГОДНЯ(); ЧИСТРАБДНИ(ТСЕГОДНЯ(); B2); "Срок истёк")

Если нужно учитывать праздники, добавьте третий аргумент в ЧИСТРАБДНИ — диапазон с датами праздников.

⚠️ Внимание: Функция ТСЕГОДНЯ обновляется при каждом пересчёте листа. Если вы хотите зафиксировать дату на момент ввода формулы, используйте сочетание клавиш Ctrl + ; (вставит текущую дату как значение).
Как Excel хранит даты?

Внутри Excel даты представлены как числа, где 1 — это 1 января 1900 года. Например, 45000 — это примерно 10 февраля 2023 года. Это позволяет легко вычитать даты, добавлять дни и т.д. Чтобы увидеть числовой эквивалент даты, измените формат ячейки на "Общий".

6. Продвинутые техники: ВПР с условием, ФИЛЬТР, ЛЯМБДА

Для опытных пользователей Excel предлагает инструменты, которые выходят за рамки стандартных функций. Например, ВПР (VLOOKUP) можно сделать "умнее" с помощью ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ВПР(A2; Таблица1!A:B; 2; ЛОЖЬ); "Не найдено")

Эта формула ищет значение из A2 в первом столбце Таблица1 и возвращает соответствующее значение из второго столбца. Если ничего не найдено, выводится "Не найдено" вместо ошибки #Н/Д.

В Excel 365 и Excel 2021 появились динамические массивы и функция ФИЛЬТР (FILTER), которая позволяет отбирать данные по условию без вспомогательных столбцов. Например, вывести все строки, где сумма заказа > 10 000:

=ФИЛЬТР(A2:B100; B2:B100>10000; "Нет данных")

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

=ЛЯМБДА(x;

ЕСЛИ(x<2; ЛОЖЬ;

И(ОСТАТ(x; ОТБР(x/2))<>0;

ПРОИЗВЕД(ЕСЛИ(ОСТАТ(x; ПОСЛЕДОВ(2; x-1))=0; 1; 0))=1)))

)

7. Условное форматирование: визуализация данных без формул

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

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

Аналогично можно выделять:

  • 🟢 Ячейки со значением выше среднего: =B2>СРЗНАЧ($B$2:$B$100).
  • 🟡 Дубликаты: =СЧЁТЕСЛИ($B$2:B2; B2)>1.
  • 🔴 Ошибки: =ЕОШИБКА(B2).

Преимущество условного форматирования — оно работает в реальном времени и не требует дополнительных столбцов с формулами.

Частые ошибки и как их избежать

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

Ошибка Причина Решение
#ИМЯ? Опечатка в названии функции Проверить синтаксис (например, ЕСЛИ, а не ЕСЛИИ)
#ЗНАЧ! Сравнение текста с числом Использовать ЕЧИСЛО или привести типы к одному виду
#ДЕЛ/0! Деление на ноль в условии Добавить проверку ЕСЛИ(знаменатель<>0; ...)
Неверный результат Неправильный порядок условий Располагать условия от самого строгого к самому мягкому

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

=ЕСЛИ(B2>=$D$1; "План выполнен"; "План не выполнен")

Здесь $D$1 — абсолютная ссылка на ячейку с планом, которая не изменится при копировании.

FAQ: Ответы на популярные вопросы

Как сделать, чтобы функция ЕСЛИ игнорировала пустые ячейки?

Используйте комбинацию с ЕПУСТО (ISBLANK):

=ЕСЛИ(И(НЕ(ЕПУСТО(A2)); A2>100); "Больше 100"; "")

Или короче:

=ЕСЛИ(A2=""; ""; ЕСЛИ(A2>100; "Больше 100"; "Меньше или равно"))
Можно ли в одной формуле использовать ЕСЛИ и ВПР?

Да, это частая практика. Например, чтобы вернуть "Нет данных" вместо ошибки #Н/Д:

=ЕСЛИОШИБКА(ВПР(A2; Таблица!A:B; 2; ЛОЖЬ); "Нет данных")

Или для проверки дополнительного условия:

=ЕСЛИ(ВПР(A2; Таблица!A:C; 3; ЛОЖЬ)>1000; "Крупный заказ"; "Мелкий заказ")
Как посчитать количество ячеек, удовлетворяющих условию?

Используйте СЧЁТЕСЛИ (COUNTIF) для одного условия:

=СЧЁТЕСЛИ(B2:B100; ">1000")

Или СЧЁТЕСЛИМН (COUNTIFS) для нескольких:

=СЧЁТЕСЛИМН(B2:B100; ">1000"; C2:C100; "Да")

Это посчитает количество строк, где значение в столбце B > 1000 И в столбце C стоит "Да".

Почему моя вложенная функция ЕСЛИ не работает?

Чаще всего проблема в:

  1. Несовпадении количества открывающих и закрывающих скобок.
  2. Неправильном порядке условий (например, сначала проверяется "больше 50", а потом "больше 90").
  3. Использовании текстовых значений без кавычек (например, =ЕСЛИ(A2=Да; ...) вместо =ЕСЛИ(A2="Да"; ...)).

Попробуйте разбить формулу на части и проверять каждую отдельно.

Как сделать условную формулу для цветов?

Цвета в Excel не имеют числовых значений, поэтому напрямую сравнить их нельзя. Но можно:

  1. Использовать условное форматирование (как описано в разделе 7).
  2. Создать вспомогательный столбец с названиями цветов и работать с ними как с текстом.
  3. В VBA написать функцию, которая будет возвращать код цвета ячейки.