Как в Excel обозначается логическое «ИЛИ»: функция OR и её аналоги

Логическое «или» — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Оно позволяет проверять несколько условий одновременно и возвращать результат, если хотя бы одно из них истинно. Например, вы можете отфильтровать список сотрудников, которые работают или в Москве, или в Санкт-Петербурге, или имеют стаж более 5 лет. Но как именно записать это условие в формуле?

Многие пользователи путают синтаксис «ИЛИ» с «И» (AND), что приводит к ошибкам в расчётах. В этой статье мы разберём все способы обозначения «ИЛИ» в Excel: от стандартной функции OR до альтернативных методов с использованием IF, FILTER и даже массивов. Вы также узнаете, как избежать типичных ошибок и оптимизировать формулы для больших данных.

Если вы когда-нибудь сталкивались с задачей типа «вывести данные, если выполняется хотя бы одно из условий», эта статья для вас. Мы не будем ограничиваться теорией — каждый раздел содержит практические примеры, которые вы сможете сразу применить в своих таблицах.

1. Стандартная функция OR: синтаксис и базовые примеры

В Excel логическое «или» обозначается функцией OR (от англ. «или»). Её синтаксис прост:

=OR(логическое_значение1; [логическое_значение2]; ...)

Функция возвращает ИСТИНА, если хотя бы один аргумент равен ИСТИНА, и ЛОЖЬ — если все аргументы ложны.

Примеры использования:

  • 📌 =OR(A1>10; B1<5) — проверяет, больше ли значение в A1 10 или меньше ли значение в B1 5.
  • 📌 =OR(C2="Да"; C2="Possibly") — возвращает ИСТИНА, если в C2 записано «Да» или «Possibly».
  • 📌 =OR(ИСТИНА; ЛОЖЬ; ЛОЖЬ) — всегда вернёт ИСТИНА, так как первый аргумент истинный.

Функция OR может принимать до 255 аргументовExcel 365 и Excel 2019). В более старых версиях (например, Excel 2010) лимит составлял 30 аргументов.

⚠️ Внимание: Если вы используете OR внутри IF, не забывайте, что OR возвращает ИСТИНА/ЛОЖЬ, а IF требует значение для истинного и ложного случаев. Пример ошибки: =IF(OR(...)) без указания результатов.
📊 Как часто вы используете функцию OR в Excel?
Постоянно
Иногда
Раньше не знал(а) о её существовании
Предпочитаю другие способы

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. Функция FILTERExcel 365)

Для фильтрации данных по условию «или»:

=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 с массивами: продвинутые техники

В Excel 365 и Excel 2021 функция OR может работать с массивами данных. Например, чтобы проверить, есть ли в диапазоне A1:A10 хотя бы одно значение больше 100:

=OR(A1:A10>100)

Эта формула вернёт ИСТИНА, если хотя бы в одной ячейке диапазона условие выполняется.

Для возврата всех строк, соответствующих условию «или», используйте:

=FILTER(A2:B10; (B2:B10="Да")+(C2:C10="Принято"); "Нет данных")

Здесь + выполняет роль логического «ИЛИ» для каждого элемента массива.

Критичный нюанс: в старых версиях Excel (до 2019) массивы в OR требуют подтверждения клавишами Ctrl+Shift+Enter (формулы массива). В новых версиях это не нужно.

Как работает OR с массивами в старых версиях Excel?

В Excel 2016 и ранее формула =OR(A1:A10>100) вернёт ошибку, если не введена как формула массива. Для этого:

1. Введите формулу в ячейку.

2. Нажмите Ctrl+Shift+Enter (вместо обычного Enter).

3. Excel обернёт формулу в фигурные скобки: {=OR(A1:A10>100)}.

В новых версиях это происходит автоматически.

5. Типичные ошибки при использовании OR

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

1. Пропущенные скобки в сложных условиях

Неправильно:

=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(...)).

2. Использование текста без кавычек

Забытые кавычки приводят к ошибке #ИМЯ?:

=OR(A1=Да; A1=Нет)  

=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.
  • 🔹 XLOOKUPExcel 365) с поиском по нескольким критериям.
  • 🔹 FILTER для динамической выборки.

Пример с INDEX+MATCH:

=INDEX(B2:B10; MATCH(1; (A2:A10="Яблоко") + (A2:A10="Банан"); 0))

Важно: Это формула массива (в старых версиях требует Ctrl+Shift+Enter).