Логический оператор «ИЛИ» в Microsoft Excel — это один из самых востребованных инструментов для анализа данных. Он позволяет проверять несколько условий одновременно и возвращает ИСТИНА, если хотя бы одно из них выполняется. Без этого оператора невозможно построить гибкие фильтры, сложные формулы условного форматирования или автоматизировать обработку таблиц с альтернативными критериями.
Многие пользователи ошибочно думают, что «ИЛИ» в Excel работает так же, как в разговорной речи — но на практике его применение имеет нюансы. Например, в формулах он записывается как функция ИЛИ(), а в фильтрах используется иначе. Кроме того, существуют скрытые способы комбинирования «ИЛИ» с другими операторами (И, НЕ), которые открывают новые возможности для анализа данных. В этой статье мы разберём все варианты — от базовых до продвинутых, включая малоизвестные приёмы для Excel 365 и Google Sheets.
Если вы когда-нибудь сталкивались с задачей типа «выделить ячейки, где значение больше 100 ИЛИ содержит слово "срочно"», но не знали, как это реализовать — эта инструкция для вас. Мы покажем не только стандартные методы, но и обходные пути для старых версий Excel, где функции ограничены.
1. Функция ИЛИ() — базовый синтаксис и примеры
Функция ИЛИ() входит в категорию логических функций и проверяет, выполняется ли хотя бы одно из перечисленных условий. Её синтаксис прост:
ИЛИ(логическое_значение1; [логическое_значение2]; ...)
Где логическое_значение — это любое выражение, которое может быть истинным (ИСТИНА) или ложным (ЛОЖЬ). Например, сравнения (A1>10), ссылки на ячейки с булевыми значениями или даже другие функции (ЕСЛИ(), ЕПУСТО()).
Примеры использования:
- 📌
=ИЛИ(A1>100; A1<10)— вернёт ИСТИНА, если значение вA1больше 100 или меньше 10. - 📌
=ИЛИ(B2="Да"; B2="Нет")— проверит, содержит ли ячейкаB2одно из двух слов. - 📌
=ИЛИ(ЕПУСТО(C3); C3=0)— вернёт ИСТИНА, если ячейкаC3пустая или равна нулю.
Важно: функция ИЛИ() возвращает ЛОЖЬ только в том случае, если все переданные условия ложны. Это ключевое отличие от функции И(), которая требует выполнения всех условий.
2. «ИЛИ» в условном форматировании
Условное форматирование позволяет визуально выделять ячейки, соответствующие заданным критериям. Чтобы применить правило «ИЛИ», нужно использовать формулу в настройках правила. Например, чтобы выделить ячейки в диапазоне A1:A100, где значения больше 50 или содержат текст "приоритет":
- Выделите диапазон
A1:A100. - Перейдите на вкладку
Главная → Условное форматирование → Создать правило. - Выберите тип правила «Использовать формулу для определения форматируемых ячеек».
- Введите формулу:
=ИЛИ(A1>50; НЕ(ЕОШИБКА(НАЙТИ("приоритет"; A1)))) - Задайте нужный формат (например, красный фон) и нажмите «OK».
Обратите внимание на функцию
Функция НАЙТИ() — она возвращает ошибку, если текст не найден, поэтому мы оборачиваем её в НЕ(ЕОШИБКА()), чтобы получить логическое значение.
Почему не работает формула с ЕСЛИ в условном форматировании?
ЕСЛИ() возвращает значение, а не логический результат (ИСТИНА/ЛОЖЬ). В условном форматировании можно использовать только выражения, которые возвращают ИСТИНА или ЛОЖЬ. Например, вместо =ЕСЛИ(A1>10; 1; 0) нужно писать просто =A1>10.
3. «ИЛИ» в фильтрах и расширенном фильтре
В стандартных фильтрах Excel оператор «ИЛИ» реализуется через меню «Текстовые фильтры» или «Числовые фильтры». Например, чтобы отфильтровать строки, где значение в столбце B равно «Да» или «Подтверждено»:
- Выделите заголовок столбца
B. - Нажмите на стрелку фильтра и выберите «Текстовые фильтры → Настраиваемый фильтр».
- В первом поле выберите «равно», введите «Да».
- Во втором поле выберите «или», затем «равно», введите «Подтверждено».
Для расширенного фильтра (например, когда нужно отфильтровать данные по нескольким столбцам с условием «ИЛИ») потребуется создать критериальный диапазон. Например, чтобы выбрать строки, где в столбце A значение «Мск» или в столбце B значение «>1000»:
| Критерий 1 | Критерий 2 |
|---|---|
| A | Мск |
| B | >1000 |
Затем перейдите в Данные → Расширенный фильтр и укажите этот диапазон как «Диапазон условий».
4. Комбинация «ИЛИ» с другими функциями
Оператор «ИЛИ» часто используется вместе с ЕСЛИ(), И(), СУММЕСЛИМН() и другими функциями для создания сложных логических конструкций. Рассмотрим несколько практических примеров:
Пример 1: «ЕСЛИ» + «ИЛИ»
Формула возвращает «Принято», если в ячейке A1 значение «Да» или «Одобрено», иначе «Отклонено»:
=ЕСЛИ(ИЛИ(A1="Да"; A1="Одобрено"); "Принято"; "Отклонено")
Пример 2: «И» + «ИЛИ»
Проверяем, выполняются ли одновременно два условия: значение в B1 больше 100 И (значение в C1 равно «Высокий» ИЛИ «Критический»):
=И(B1>100; ИЛИ(C1="Высокий"; C1="Критический"))
Пример 3: «СУММЕСЛИМН» с «ИЛИ»
Функция СУММЕСЛИМН() не поддерживает «ИЛИ» напрямую, но можно обойти это ограничение с помощью вспомогательного столбца или формулы массива (в Excel 365):
=СУММ(ЕСЛИ((A2:A10="Да")+(A2:A10="Нет"); B2:B10; 0))
Эта формула суммирует значения из диапазона B2:B10, если соответствующие ячейки в A2:A10 равны «Да» или «Нет».
Убедитесь, что все скобки закрыты правильно|Проверьте порядок аргументов в функциях|Используйте F9 для отладки частей формулы|Тестируйте формулу на крайних значениях (ноль, пустые ячейки, ошибки)-->
5. «ИЛИ» в Power Query и Power Pivot
В Power Query (инструмент для импорта и преобразования данных) оператор «ИЛИ» реализуется через язык M. Например, чтобы отфильтровать строки, где значение в столбце «Status» равно «Active» или «Pending», используйте:
= Table.SelectRows(Источник, each ([Status] = "Active" or [Status] = "Pending"))
В Power Pivot (модель данных Excel) логика «ИЛИ» применяется в мерах DAX. Например, мера для подсчёта строк, где «Sales» > 1000 или «Region» равно «East»:
CountHighSalesOrEast =
CALCULATE(
COUNTROWS(Таблица),
OR(
Таблица[Sales] > 1000,
Таблица[Region] = "East"
)
)
Обратите внимание: в DAX оператор «ИЛИ» записывается как OR(), а не ИЛИ(), как в обычных формулах Excel.
6. Альтернативы функции ИЛИ()
В некоторых случаях функцию ИЛИ() можно заменить другими подходами, которые работают быстрее или подходят для специфических задач:
1. Оператор «+» для числовых условий
Если условия возвращают 1 (истина) или 0 (ложь), их можно сложить. Например:
=ЕСЛИ((A1>10)+(B1<5)>0; "Да"; "Нет")
Эта формула вернёт «Да», если хотя бы одно из условий истинно.
2. Функция СУММПРОИЗВ()
Полезна для проверки нескольких условий в массиве:
=ЕСЛИ(СУММПРОИЗВ(--(A1:A10>10); --(B1:B10="Да"))>0; "Есть совпадения"; "Нет")
3. Функция ВЫБОР() для текстовых значений
Если нужно проверить принадлежность значения к списку, можно использовать:
=ЕСЛИ(СУММ(--(A1={"Да";"Нет";"Может быть"}))>0; "Допустимое значение"; "Недопустимо")
4. Регулярные выражения (в Excel 365)
С появлением функций ТЕКСТРАЗД() и РЕГВЫРАЖ() в Excel 365 можно использовать регулярные выражения для сложных текстовых проверок. Например, чтобы найти ячейки, содержащие «urgent» или «asap» (независимо от регистра):
=ЕСЛИ(РЕГВЫРАЖ.НАЙТИ(A1; "(?i)urgent|asap"); "Срочно"; "Обычный")
Почему СУММПРОИЗВ() быстрее, чем ИЛИ() в больших массивах?
Функция СУММПРОИЗВ() оптимизирована для работы с массивами и выполняет вычисления в памяти, тогда как ИЛИ() обрабатывает каждый аргумент последовательно. В таблицах с тысячами строк разница в производительности может быть заметна.
7. Распространённые ошибки и как их избежать
При работе с оператором «ИЛИ» пользователи часто сталкиваются с типичными ошибками, которые ведут к некорректным результатам. Вот самые частые из них:
Ошибка 1: Пустые ячейки в условиях
Формула =ИЛИ(A1=10; A1="") вернёт ЛОЖЬ, если A1 пустая, потому что пустая ячейка не равна тексту "". Правильный вариант:
=ИЛИ(A1=10; ЕПУСТО(A1))
Ошибка 2: Неправильный порядок аргументов в «ЕСЛИ»
В формуле =ЕСЛИ(ИЛИ(A1>10; B1<5); "Да"; "Нет") часто путают местами блоки условий и результатов. Помните: сначала условие, затем значение_если_истина, затем значение_если_ложь.
Ошибка 3: Использование «ИЛИ» в массивах без Ctrl+Shift+Enter
В старых версиях Excel формулы массива (например, с ИЛИ() для диапазона) требуют подтверждения клавишами Ctrl+Shift+Enter. В Excel 365 это не нужно, но в Excel 2019 и ниже забывают об этом, и формула работает некорректно.
Ошибка 4: Логические ловушки с «И» и «ИЛИ»
Выражение =И(ИЛИ(A1>10; A1<5); B1="Да") не эквивалентно =ИЛИ(И(A1>10; B1="Да"); И(A1<5; B1="Да")). В первом случае проверяется, что хотя бы одно условие из A1 И B1="Да", а во втором — что либо A1>10 и B1="Да", либо A1<5 и B1="Да".
8. «ИЛИ» в Google Sheets: отличия от Excel
В Google Sheets функция ИЛИ() работает аналогично Excel, но есть несколько нюансов:
- 📌 В Google Sheets можно использовать до 30 условий в одной функции
OR()(англ. версия), тогда как в Excel — до 255. - 📌 Для регулярных выражений используется функция
REGEXMATCH(), которая возвращает ИСТИНА/ЛОЖЬ и хорошо сочетается сOR():=OR(REGEXMATCH(A1; "urgent|asap")) - 📌 В условном форматировании Google Sheets поддерживает формулы с
OR()так же, как Excel, но синтаксис должен быть на английском.
В Google Sheets нет функции СУММЕСЛИМН(), но её аналог — SUMIFS() — также не поддерживает «ИЛИ». Для обхода ограничения используйте формулу массива с FILTER():
=SUM(FILTER(B2:B10; (A2:A10="Да")+(A2:A10="Нет")))
=QUERY(A2:B10; "SELECT A, B WHERE A = 'Да' OR B > 100")-->
FAQ: Частые вопросы по оператору «ИЛИ» в Excel
Можно ли использовать «ИЛИ» для проверки диапазона ячеек?
Нет, функция ИЛИ() не работает с диапазонами напрямую. Например, =ИЛИ(A1:A10>10) вернёт ошибку. Чтобы проверить, есть ли в диапазоне хотя бы одно значение >10, используйте:
=МАКС(A1:A10)>10
или (для текстовых значений):
=СЧЁТЕСЛИ(A1:A10; ">10")>0
Как записать «ИЛИ» в формуле массива для старого Excel?
В Excel 2010-2019 для проверки условия «ИЛИ» в массиве нужно использовать конструкцию с двойным отрицанием (--) и подтверждать формулу Ctrl+Shift+Enter. Пример:
{=ЕСЛИ(СУММ(--(ИЛИ(A1:A10>10; B1:B10="Да")))>0; "Есть совпадения"; "Нет")}
В Excel 365 фигурные скобки не нужны — формула работает как динамический массив.
Почему моя формула с «ИЛИ» возвращает #ЗНАЧ!?
Ошибка #ЗНАЧ! обычно возникает, если:
- 🔹 В формуле переданы аргументы разных типов (например, текст и число без явного сравнения).
- 🔹 Используется диапазон вместо отдельных ячеек (например,
ИЛИ(A1:A5>10)). - 🔹 В условном форматировании неверно указана ссылка (например,
=ИЛИ(A1>10)вместо=ИЛИ($A1>10)для применения ко всему столбцу).
Проверьте каждый аргумент функции отдельно с помощью F9 (выделение части формулы и нажатие F9 покажет её результат).
Как заменить «ИЛИ» на «И» в готовом файле?
Если в файле много формул с ИЛИ(), и их нужно заменить на И(), используйте поиск и замену (Ctrl+H), но будьте осторожны:
- 🔹 Заменяйте только в формулах, а не во всём документе (выделите диапазон с формулами).
- 🔹 Проверьте логику после замены —
И()требует выполнения всех условий, а не хотя бы одного. - 🔹 Для сложных формул лучше вручную редактировать каждую, чтобы избежать ошибок.
Работает ли «ИЛИ» в сводных таблицах?
В сводных таблицах нельзя напрямую использовать ИЛИ() для фильтрации данных. Однако можно:
- 🔹 Добавить вычисляемое поле с формулой, содержащей
ИЛИ(), а затем фильтровать по нему. - 🔹 Использовать сегменты данных (slicers) с несколькими выбранными значениями — это эквивалент «ИЛИ».
- 🔹 Применить Power Query для предварительной фильтрации данных перед созданием сводной таблицы.