Введение: зачем нужны условные формулы в Excel
Работа с данными в Microsoft Excel часто требует не просто вычислений, а принятия решений на основе условий. Например, нужно автоматически определить, прошёл ли студент экзамен (если балл ≥ 60), рассчитать бонус сотрудникам (если продажи превысили план) или выделить просроченные задачи. Для этого существует функция ЕСЛИ (IF в английской версии) — основа логических операций в таблицах.
Многие пользователи ограничиваются простейшими конструкциями вроде =ЕСЛИ(A1>100; "Да"; "Нет"), но возможности функции гораздо шире. Она поддерживает вложенные условия (когда одно «если» содержит другое), работу с текстом, датами, ошибками, а также комбинации с функциями И/ИЛИ. Правильно составленная формула с условиями экономит часы рутинной работы и сводит к нулю риск человеческих ошибок.
В этой статье разберём:
- 🔹 Базовый синтаксис функции ЕСЛИ и типичные ошибки новичков
- 🔹 Как комбинировать несколько условий с
И,ИЛИ,НЕ - 🔹 Вложенные формулы: когда одно условие зависит от другого
- 🔹 Продвинутые приёмы: обработка ошибок, работа с датами, массивы
Все примеры приведены для Excel 2016–2023 и Excel 365, но подойдут и для Google Таблиц (с учётом локализации функций). Если вы никогда не писали формулы с условиями — начните с первого раздела. Опытным пользователям рекомендуем сразу перейти к вложенным конструкциям или обработке ошибок.
Базовый синтаксис функции ЕСЛИ: 3 обязательных аргумента
Функция ЕСЛИ проверяет условие и возвращает одно из двух значений в зависимости от результата. Её синтаксис:
=ЕСЛИ(логическое_выражение; значение_если_истина; значение_если_ложь)
Разберём на примере. Допустим, в ячейке A1 хранится возраст клиента, а нам нужно определить, относится ли он к целевой аудитории (18–35 лет):
=ЕСЛИ(И(A1>=18; A1<=35); "Целевой клиент"; "Не подходит")
Здесь:
- 📌
И(A1>=18; A1<=35)— логическое выражение (проверяет, попадает ли возраст в диапазон) - 📌
"Целевой клиент"— значение, если условие истинно - 📌
"Не подходит"— значение, если условие ложно
Важно: аргументы разделяются точкой с запятой (;) в русской версии Excel. В английской используется запятая (,). Если вы копируете формулы из зарубежных источников — не забывайте заменять разделители!
⚠️ Внимание: Если пропустить третий аргумент (значение_если_ложь), Excel вернётЛОЖЬпри невыполнении условия. Например, формула=ЕСЛИ(A1>100; "Высокий")отобразитЛОЖЬдля всех значений ≤ 100.
| Пример условия | Формула | Результат при A1=25 |
Результат при A1=40 |
|---|---|---|---|
| Проверка на чётность | =ЕСЛИ(ОСТАТ(A1;2)=0; "Чётное"; "Нечётное") |
Нечётное | Чётное |
| Проверка текста | =ЕСЛИ(A1="Да"; "Подтверждено"; "Отклонено") |
Отклонено | Отклонено |
| Пороговое значение | =ЕСЛИ(A1>30; "Превышение"; "В норме") |
В норме | Превышение |
Логические операторы: И, ИЛИ, НЕ в условиях
Одиночное условие в функции ЕСЛИ решает простые задачи, но что делать, если нужно проверить несколько критериев одновременно? Например, определить, подходит ли кандидат на вакансию по трём параметрам: опыт, образование и возраст. Здесь помогут логические функции:
- 🔄
И(условие1; условие2; ...)— возвращаетИСТИНА, если все условия выполнены - 🔀
ИЛИ(условие1; условие2; ...)— возвращаетИСТИНА, если выполнено хотя бы одно условие - 🚫
НЕ(условие)— инвертирует результат (превращаетИСТИНАвЛОЖЬи наоборот)
Пример с функцией И:
=ЕСЛИ(И(B2>5; C2="Высшее"; D2<45); "Принят"; "Отклонён")
Эта формула проверяет:
- Опыт работы (> 5 лет в ячейке
B2) - Образование (= "Высшее" в
C2) - Возраст (< 45 лет в
D2)
Только если все три условия выполнены, кандидат будет «принят».
Функция ИЛИ полезна для гибких критериев. Например, скидка предоставляется клиентам, которые или сделали заказ на сумму > 10 000 руб., или являются постоянными покупателями:
=ЕСЛИ(ИЛИ(E2>10000; F2="Да"); "Скидка 10%"; "Без скидки")
⚠️ Внимание: ФункцииИ/ИЛИмогут принимать до 255 аргументов в Excel 365, но на практике более 5–7 условий делают формулу нечитаемой. В таких случаях лучше использовать вложенные ЕСЛИ илиВПР/ИНДЕКС.
Как проверить пустую ячейку?
Используйте =ЕСЛИ(A1=""; "Пусто"; "Заполнено") или =ЕСЛИ(ЕПУСТО(A1); "Пусто"; "Заполнено"). Вторая функция игнорирует ячейки с формулами, возвращающими пустую строку (="").
Вложенные функции ЕСЛИ: когда одно условие зависит от другого
Иногда логика проверки требует многоуровневых решений. Например, при расчёте бонуса сотрудникам:
- Если продажи > 200 000 руб. → бонус 15%
- Если продажи от 100 000 до 200 000 руб. → бонус 10%
- Если продажи < 100 000 руб. → бонус 5%
Для этого используют вложенные функции ЕСЛИ, где одна формула становится аргументом другой.
Синтаксис для трёх условий:
=ЕСЛИ(условие1;
значение1;
ЕСЛИ(условие2;
значение2;
значение_по_умолчанию))
Пример для бонусов:
=ЕСЛИ(B2>200000; 15%;
ЕСЛИ(B2>=100000; 10%; 5%))
Ключевые правила для вложенных формул:
- 📌 Максимальное количество вложений в Excel — 64 уровня (на практике больше 5–7 использовать не рекомендуется)
- 📌 Всегда начинайте с самого жёсткого условия (в примере выше —
>200000) - 📌 Закрывайте каждую открытую скобку
ЕСЛИпарной закрывающей
В Excel 365 и Excel 2019 появилась функция ЕСЛИМН (IFS), которая упрощает работу с несколькими условиями без вложений. Синтаксис: =ЕСЛИМН(условие1; значение1; условие2; значение2; ...). Например:
=ЕСЛИМН(B2>200000; 15%; B2>=100000; 10%; ИСТИНА; 5%)
Скопируйте формулу в текстовый редактор|Посчитайте количество открывающих и закрывающих скобок|Проверьте порядок условий (от самого строгого)|Убедитесь, что последнее значение — это "иначе" (для всех остальных случаев)-->
Работа с текстом и ошибками в условиях
Функция ЕСЛИ часто используется для обработки текста и предотвращения ошибок. Рассмотрим типичные сценарии.
1. Проверка текста с учётом регистра
Excel по умолчанию не чувствителен к регистру: "Да" и "да" для него одинаковы. Если нужно строгое сравнение, используйте СОВПАД (EXACT):
=ЕСЛИ(СОВПАД(A1; "Да"); "Подтверждено"; "Отклонено")
2. Поиск подстроки в тексте
Чтобы проверить, содержится ли слово в ячейке, комбинируйте ЕСЛИ с НАЙТИ (FIND) или ПОИСК (SEARCH):
=ЕСЛИ(ЕЧИСЛО(ПОИСК("срочно"; A1)); "Приоритет"; "Обычное")
Функция ПОИСК возвращает позицию подстроки или ошибку #ЗНАЧ!, если текст не найден. ЕЧИСЛО проверяет, является ли результат числом (т.е. подстрока найдена).
3. Обработка ошибок
Если формула в ячейке может вернуть ошибку (например, #ДЕЛ/0! при делении на ноль), используйте ЕСЛИОШИБКА (IFERROR):
=ЕСЛИОШИБКА(B2/A2; 0)
Эта формула вернёт 0, если в A2 ноль или текст. Для более гибкой обработки комбинируйте ЕСЛИ с ЕОШИБКА (ISERROR):
=ЕСЛИ(ЕОШИБКА(B2/A2); "Данные отсутствуют"; B2/A2)
| Тип ошибки | Причина | Как обработать |
|---|---|---|
#ДЕЛ/0! |
Деление на ноль | =ЕСЛИ(A2=0; 0; B2/A2) |
#ЗНАЧ! |
Неверный тип данных | =ЕСЛИ(ЕТЕКСТ(A1); A1; "Ошибка") |
#Н/Д |
Значение не найдено (например, в ВПР) |
=ЕСЛИНД(B2; "Нет данных"; B2) |
Условия с датами: сравнение, интервалы, рабочие дни
Даты в Excel хранятся как числа (количество дней с 1 января 1900 года), поэтому их можно сравнивать в условиях. Например, проверка просроченных задач:
=ЕСЛИ(A2
Здесь ТСЕГОДНЯ() возвращает текущую дату, а формула сравнивает её с датой в ячейке A2.
Для работы с интервалами дат используйте комбинацию ЕСЛИ и И:
=ЕСЛИ(И(A2>=ДАТА(2026;1;1); A2<=ДАТА(2026;3;31)); "1 квартал"; "Другой период")
Продвинутый пример: проверка, является ли дата рабочим днём (без выходных). Для этого нужна функция РАБДЕНЬ (WORKDAY), но проще использовать ДЕНЬНЕД (WEEKDAY):
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5; A2=""); "Выходной"; "Рабочий день")
Здесь ДЕНЬНЕД(A2;2) возвращает номер дня недели (1–7, где 1 — понедельник). Если результат > 5 (суббота или воскресенье) или ячейка пустая — это выходной.
⚠️ Внимание: ФункцияДЕНЬНЕДимеет два синтаксиса:
ДЕНЬНЕД(дата)— возвращает 1 (воскресенье) до 7 (суббота)ДЕНЬНЕД(дата; 2)— возвращает 1 (понедельник) до 7 (воскресенье)Убедитесь, что используете правильный вариант для вашей задачи!
Как посчитать количество рабочих дней между датами?
Используйте функцию ЧИСТРАБДНИ (NETWORKDAYS):
=ЧИСТРАБДНИ(A2; B2)
Она автоматически исключает выходные (субботу и воскресенье). Чтобы добавить праздники, укажите их как третий аргумент: =ЧИСТРАБДНИ(A2; B2; Праздники!A2:A10)
Продвинутые приёмы: массивы, динамические диапазоны, ЛЯМБДА
Для опытных пользователей Excel предлагает инструменты, выходящие за рамки стандартного ЕСЛИ. Рассмотрим три продвинутых техники.
1. Формулы массива с ЕСЛИ
Если нужно применить условие ко всему диапазону и получить массив результатов, используйте формулы массива. Например, чтобы посчитать сумму продаж только для определённого региона:
=СУММ(ЕСЛИ(B2:B10="Москва"; C2:C10; 0))
Введите эту формулу как формулу массива:
- Выделите ячейку с формулой
- Нажмите
F2, чтобы перейти в режим редактирования - Нажмите
Ctrl+Shift+Enter(в Excel 365 это не обязательно)
Фигурные скобки {} появятся автоматически, сигнализируя о формуле массива.
2. Динамические диапазоны с ЕСЛИ
В Excel 365 появились динамические массивы, которые автоматически "проливаются" на соседние ячейки. Например, чтобы извлечь все продажи выше 1000 руб.:
=ФИЛЬТР(C2:C10; C2:C10>1000)
Комбинация с ЕСЛИ позволяет добавить дополнительную логику:
=ЕСЛИОШ(ФИЛЬТР(C2:C10; C2:C10>1000); "Нет данных"; ФИЛЬТР(C2:C10; C2:C10>1000))
3. Пользовательские функции с ЛЯМБДА
В Excel 365 можно создавать собственные функции с помощью ЛЯМБДА (LAMBDA). Например, функция для классификации клиентов по сумме заказа:
=ЛЯМБДА(сумма;
ЕСЛИ(сумма>10000; "VIP";
ЕСЛИ(сумма>5000; "Премиум"; "Стандарт")))
Чтобы использовать её, присвойте имя через Диспетчер имён (Формулы → Диспетчер имён → Создать) и вызывайте как обычную функцию: =Классифицировать(B2).
Типичные ошибки и как их избежать
Даже опытные пользователи допускают ошибки при работе с функцией ЕСЛИ. Разберём самые распространённые.
- 🔴 Несовпадение типов данных
Excel строго относится к типам: нельзя сравнивать текст с числом. Например, формула
=ЕСЛИ(A1=10; "Да"; "Нет")вернётНет, если вA1хранится текст"10"(даже визуально идентичный). Решение: используйтеЗНАЧЕН(VALUE) для преобразования текста в число. - 🔴 Лишние или недостающие скобки
Вложенные формулы требуют точного баланса скобок. Например, в
=ЕСЛИ(A1>10; ЕСЛИ(B1<5; "Да"; "Нет"))две открывающие скобкиЕСЛИ, но только одна закрывающая. Excel подскажет ошибку, но иногда её сложно заметить в длинных формулах. - 🔴 Ошибки в ссылках на ячейки
Если при копировании формулы ссылки не обновляются (например,
A1вместоA2), проверьте тип ссылок:$A$1— абсолютная (не меняется при копировании)A$1— фиксированная строка$A1— фиксированный столбец
Чтобы быстро найти ошибку:
- 🔍 Выделите ячейку с формулой и нажмите
F2, чтобы увидеть цветную подсветку диапазонов - 🔍 Используйте
Формулы → Зависимости формул → Влияющие ячейкидля визуализации связей - 🔍 Разбейте сложную формулу на части и проверьте каждую отдельно
| Ошибка | Причина | Решение |
|---|---|---|
#ИМЯ? |
Опечатка в имени функции или диапазона | Проверьте синтаксис и регистр (например, ЕСЛИ, а не если) |
#ССЫЛКА! |
Удалена ячейка или столбец, на который ссылается формула | Обновите ссылки или восстановите данные |
#ЧИСЛО! |
Некорректное числовое значение (например, отрицательный корень) | Добавьте проверку ЕСЛИОШИБКА или ограничьте диапазон |
FAQ: Ответы на частые вопросы
Как написать формулу ЕСЛИ с тремя условиями?
Используйте вложенные функции ЕСЛИ или ЕСЛИМН (в Excel 365). Пример для трёх условий:
=ЕСЛИ(A1>100; "Высокий";
ЕСЛИ(A1>50; "Средний"; "Низкий"))
Или с ЕСЛИМН:
=ЕСЛИМН(A1>100; "Высокий"; A1>50; "Средний"; ИСТИНА; "Низкий")
Почему моя формула ЕСЛИ возвращает #ЗНАЧ!?
Ошибка #ЗНАЧ! возникает, когда:
- 🔸 Типы данных не совпадают (например, сравниваете текст с числом)
- 🔸 В формуле используется несуществующее имя диапазона
- 🔸 Пропущен аргумент (например, нет значения для
ИСТИНАилиЛОЖЬ)
Проверьте каждую часть формулы отдельно. Например, если у вас =ЕСЛИ(И(A1>10; B1="Да"); ...), сначала убедитесь, что И(A1>10; B1="Да") работает корректно.
Можно ли использовать ЕСЛИ для изменения цвета ячейки?
Нет, функция ЕСЛИ возвращает значение, но не изменяет формат. Для условного форматирования:
- Выделите диапазон
- Перейдите на вкладку
Главная → Условное форматирование → Создать правило - Выберите
Использовать формулу для определения форматируемых ячеек - Введите формулу (например,
=A1>100) и задайте цвет
Это визуально выделит ячейки, соответствующие условию, без изменения их значений.
Как сравнить две ячейки с учётом регистра?
Функция СОВПАД (EXACT) чувствительна к регистру:
=ЕСЛИ(СОВПАД(A1; B1); "Совпадают"; "Не совпадают")
Для сравнения без учёта регистра используйте:
=ЕСЛИ(СТРОЧН(A1)=СТРОЧН(B1); "Совпадают"; "Не совпадают")
Функция СТРОЧН (LOWER) преобразует текст в нижний регистр.
Чем заменить ЕСЛИ в больших таблицах для ускорения расчётов?
Вложенные ЕСЛИ замедляют работу с большими данными. Альтернативы:
- 📊
ВПР/ИНДЕКС+ПОИСКПОЗ— для поиска значений по критериям - 📊
ПРОСМОТР(LOOKUP) — для простых сопоставлений - 📊
СУММЕСЛИ/СЧЁТЕСЛИ— для агрегации данных по условию - 📊
СУММЕСЛИМН— для нескольких критериев
Пример: вместо =ЕСЛИ(A1="Яблоки"; 100; ЕСЛИ(A1="Груши"; 150; 0)) используйте:
=ВПР(A1; {"Яблоки";100; "Груши";150}; 2; ЛОЖЬ)