Логическое «или» — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Оно позволяет проверять несколько условий одновременно и возвращать результат, если хотя бы одно из них истинно. Например, вы можете отфильтровать список сотрудников, которые работают или в Москве, или в Санкт-Петербурге, или имеют стаж более 5 лет. Но как именно записать это условие в формуле?
Многие пользователи путают синтаксис «ИЛИ» с «И» (AND), что приводит к ошибкам в расчётах. В этой статье мы разберём все способы обозначения «ИЛИ» в Excel: от стандартной функции OR до альтернативных методов с использованием IF, FILTER и даже массивов. Вы также узнаете, как избежать типичных ошибок и оптимизировать формулы для больших данных.
Если вы когда-нибудь сталкивались с задачей типа «вывести данные, если выполняется хотя бы одно из условий», эта статья для вас. Мы не будем ограничиваться теорией — каждый раздел содержит практические примеры, которые вы сможете сразу применить в своих таблицах.
1. Стандартная функция OR: синтаксис и базовые примеры
В Excel логическое «или» обозначается функцией OR (от англ. «или»). Её синтаксис прост:
=OR(логическое_значение1; [логическое_значение2]; ...)
Функция возвращает ИСТИНА, если хотя бы один аргумент равен ИСТИНА, и ЛОЖЬ — если все аргументы ложны.
Примеры использования:
- 📌
=OR(A1>10; B1<5)— проверяет, больше ли значение вA110 или меньше ли значение вB15. - 📌
=OR(C2="Да"; C2="Possibly")— возвращаетИСТИНА, если вC2записано «Да» или «Possibly». - 📌
=OR(ИСТИНА; ЛОЖЬ; ЛОЖЬ)— всегда вернётИСТИНА, так как первый аргумент истинный.
Функция OR может принимать до 255 аргументов (в Excel 365 и Excel 2019). В более старых версиях (например, Excel 2010) лимит составлял 30 аргументов.
⚠️ Внимание: Если вы используетеORвнутриIF, не забывайте, чтоORвозвращаетИСТИНА/ЛОЖЬ, аIFтребует значение для истинного и ложного случаев. Пример ошибки:=IF(OR(...))без указания результатов.
2. OR внутри IF: как комбинировать условия
Самый распространённый сценарий — использование OR вместе с IF для возврата конкретных значений в зависимости от условий. Например:
=IF(OR(A1="Яблоко"; A1="Банан"); "Фрукт"; "Не фрукт")
Эта формула проверяет, содержится ли в A1 слово «Яблоко» или «Банан», и возвращает «Фрукт», если да.
Более сложный пример с числовыми данными:
=IF(OR(B2>100; C2<10); "Выполнено"; "Не выполнено")
Здесь условие срабатывает, если или B2 > 100, или C2 < 10.
Частая ошибка — попытка записать несколько OR внутри одного IF без скобок. Например, так неправильно:
=IF(OR(A1=1; A1=2; OR(B1=3; B1=4)); ...)
Правильный вариант:
=IF(OR(A1=1; A1=2; B1=3; B1=4); ...)
Убедитесь, что все условия в OR заключены в одну функцию|Проверьте закрывающие скобки|Укажите значения для ИСТИНА и ЛОЖЬ в IF|Протестируйте формулу на крайних значениях-->
3. Альтернативы функции OR: когда её нет или она неудобна
Иногда OR может быть избыточной или недоступной (например, в некоторых диалектах SQL внутри Excel). В таких случаях можно использовать:
1. Оператор «+» для числовых условий
Если условия возвращают 1 (истина) или 0 (ложь), их можно сложить:
=IF((A1>10)+(B1<5)>0; "Да"; "Нет")
Здесь (A1>10)+(B1<5) вернёт 1 или 2, если хотя бы одно условие истинно.
2. Функция SUM с булевыми значениями
Аналогичный подход, но с явным преобразованием:
=IF(SUM(--(A1="Да"); --(B1="Нет"))>0; "Совпадение"; "")
Двойной минус (--) преобразует ИСТИНА/ЛОЖЬ в 1/0.
3. Функция FILTER (в Excel 365)
Для фильтрации данных по условию «или»:
В Excel 365 и Excel 2021 функция Эта формула вернёт Для возврата всех строк, соответствующих условию «или», используйте:
Здесь Критичный нюанс: в старых версиях Excel (до 2019) массивы в OR требуют подтверждения клавишами
В Excel 2016 и ранее формула 1. Введите формулу в ячейку. 2. Нажмите 3. Excel обернёт формулу в фигурные скобки: В новых версиях это происходит автоматически. Даже опытные пользователи иногда допускают ошибки с 1. Пропущенные скобки в сложных условиях
Неправильно:
2. Использование текста без кавычек
Забытые кавычки приводят к ошибке =OR(A1="Да"; A1="Нет") =FILTER(A2:B10; (B2:B10="Мoskva")+(B2:B10="SPb"); "Нет данных")
Метод
Пример
Плюсы
Минусы
OR=OR(A1=1; A1=2)Простота, читаемость
Ограничение на 255 аргументов
Оператор
+=IF((A1>10)+(B1<5); ...)Работает без
ORМенее наглядно
FILTER=FILTER(диапазон; условие1+условие2)Идеален для динамических массивов
Только в Excel 365
4. OR с массивами: продвинутые техники
OR может работать с массивами данных. Например, чтобы проверить, есть ли в диапазоне A1:A10 хотя бы одно значение больше 100:
=OR(A1:A10>100)ИСТИНА, если хотя бы в одной ячейке диапазона условие выполняется.=FILTER(A2:B10; (B2:B10="Да")+(C2:C10="Принято"); "Нет данных")+ выполняет роль логического «ИЛИ» для каждого элемента массива.Ctrl+Shift+Enter (формулы массива). В новых версиях это не нужно.
Как работает OR с массивами в старых версиях Excel?
=OR(A1:A10>100) вернёт ошибку, если не введена как формула массива. Для этого:Ctrl+Shift+Enter (вместо обычного Enter).{=OR(A1:A10>100)}.5. Типичные ошибки при использовании OR
OR. Вот самые распространённые:
Правильно:
=IF(OR(A1=1; A1=2; AND(B1=3; B1=4)); ...)=IF(OR(A1=1; A1=2; AND(B1=3; B1=4)); ...)⚠️ Внимание: Если вы смешиваете
OR и AND в одной формуле, используйте дополнительные скобки для явного указания приоритета. Например: =OR(AND(...); AND(...)).#ИМЯ?:
=OR(A1=Да; A1=Нет)
3. Логические ошибки с отрицанием
Если вам нужно условие «НЕ (A ИЛИ B)», это не то же самое, что «(НЕ A) ИЛИ (НЕ B)». Правильный вариант:
=NOT(OR(A1=1; A1=2))
- 🚫 Ошибка:
=OR(NOT(A1=1); NOT(A1=2))— это «A не 1 ИЛИ A не 2», что эквивалентно «A не равно 1 и 2 одновременно» (всегдаИСТИНА, кроме случая, когдаA1=1иA1=2одновременно, что невозможно). - ✅ Правильно:
=NOT(OR(A1=1; A1=2))— «A не равно 1 И A не равно 2».
6. OR в условном форматировании
Функция OR активно используется в условном форматировании для выделения ячеек, соответствующих хотя бы одному условию. Например, чтобы выделить красным все ячейки в диапазоне A1:A100, которые или меньше 5, или больше 95:
1. Выделите диапазон A1:A100.
2. Перейдите в Главная → Условное форматирование → Создать правило.
3. Выберите «Использовать формулу для определения форматируемых ячеек».
4. Введите формулу:
=OR(A1<5; A1>95)
5. Задайте формат (например, красный фон) и нажмите «OK».
Аналогично можно комбинировать условия с текстом или датами. Например, выделить все ячейки, содержащие «Срочно» или «Важно»:
=OR(A1="Срочно"; A1="Важно")
В Excel 365 для условного форматирования можно использовать динамические массивы. Например, чтобы выделить строки, где или в столбце B стоит «Да», или в столбце C — «Готово»:
=OR($B1="Да"; $C1="Готово")
Важно: Используйте абсолютные ссылки на столбцы ($B1), чтобы правило корректно применялось ко всем строкам.
7. OR в Power Query и Power Pivot
В инструментах Power Query и Power Pivot (доступны в Excel 2016+) логическое «или» обозначается по-другому.
В Power Query (M-код):
Здесь используется оператор or (с маленькой буквы!). Пример фильтрации строк, где или Status = "Active", или Amount > 1000:
= Table.SelectRows(Source; each [Status] = "Active" or [Amount] > 1000)
В Power Pivot (DAX):
В языке DAX используется функция OR, но с другим синтаксисом:
= FILTER(Таблица; OR(Таблица[Столбец1] = "Значение1"; Таблица[Столбец2] > 100))
Важно: В DAX OR работает только с двумя аргументами. Для трёх и более условий используйте вложенные OR:
= OR(OR(условие1; условие2); условие3)
Если вы используете Power BI, принципы те же — DAX и M поддерживают аналогичный синтаксис.
8. Практические задачи с OR: от простого к сложному
Разберём несколько реальных задач, где OR незаменим.
Задача 1. Фильтрация данных по нескольким критериям
Есть таблица с продажами. Нужно вывести все записи, где или Регион = "Москва", или Сумма > 5000, или Дата = сегодня.
=FILTER(Таблица1; (Таблица1[Регион]="Москва") + (Таблица1[Сумма]>5000) + (Таблица1[Дата]=TODAY()); "Нет данных")
Задача 2. Подсчёт строк с хотя бы одним условием
Сколько строк в диапазоне A2:B100 содержат или в столбце A значение «Да», или в столбце B число больше 10?
=SUMPRODUCT(--(OR(A2:A100="Да"; B2:B100>10)))
Задача 3. Проверка наличия значения в списке
Проверить, содержится ли значение из A1 в диапазоне D1:D10 (аналог функции COUNTIF, но с OR):
=OR(A1=D1; A1=D2; A1=D3; A1=D4; A1=D5; A1=D6; A1=D7; A1=D8; A1=D9; A1=D10)
Оптимизированный вариант:
=COUNTIF(D1:D10; A1)>0
FAQ: Частые вопросы про «ИЛИ» в Excel
Можно ли использовать OR с текстом на русском языке?
Да, но названия функций должны оставаться на английском (или на языке вашей версии Excel). Например, в русской версии Excel функция называется ИЛИ, а не OR:
=ИЛИ(A1="Да"; A1="Нет")
Аргументы (текст, числа) могут быть на любом языке.
Как записать условие «A или B, но не оба сразу» (исключающее ИЛИ)?
Это называется «XOR» (исключающее ИЛИ). В Excel нет встроенной функции XOR (до Excel 2013), но её можно эмулировать:
=IF(OR(A1; B1); IF(AND(A1; B1); "Оба"; "Только одно"); "Ни одного")
Или короче:
=OR(A1; B1) - AND(A1; B1)
В Excel 2013+ есть функция XOR:
=XOR(A1; B1)
Почему моя формула с OR возвращает #ЗНАЧ!?
Ошибка #VALUE! обычно возникает, если:
- 🔹 Вы передаёте в
ORдиапазон ячеек вместо отдельных условий (например,=OR(A1:A10)— так нельзя). - 🔹 В формуле есть несовместимые типы данных (например, сравнение текста с числом без приведения типов).
- 🔹 Вы используете
ORв массиве, но забыли проCtrl+Shift+Enter(в старых версиях Excel).
Проверьте каждый аргумент отдельно с помощью ИСТИНА/ЛОЖЬ.
Как применить OR ко всему столбцу без перечисления каждой ячейки?
Используйте динамические массивы (в Excel 365):
=BYROW(A2:A100; LAMBDA(row; OR(row="Да"; row="Нет")))
Или для подсчёта строк, соответствующих условию:
=SUMPRODUCT(--(OR(A2:A100="Да"; A2:A100="Нет")))
В старых версиях придётся использовать OR с ограниченным числом аргументов или разбивать задачу на части.
Можно ли использовать OR в функции ВПР (VLOOKUP)?
Нет, VLOOKUP не поддерживает массивы условий. Альтернативы:
- 🔹
INDEX+MATCHс вспомогательным столбцом, где вычисляетсяOR. - 🔹
XLOOKUP(в Excel 365) с поиском по нескольким критериям. - 🔹
FILTERдля динамической выборки.
Пример с INDEX+MATCH:
=INDEX(B2:B10; MATCH(1; (A2:A10="Яблоко") + (A2:A10="Банан"); 0))
Важно: Это формула массива (в старых версиях требует Ctrl+Shift+Enter).