Функция XOR в Google Sheets — как она работает и практические примеры
TL;DR
XOR возвращает TRUE, если среди переданных логических выражений встречается нечетное число истинных значений, иначе возвращает FALSE. Эта функция полезна, когда нужно определить нечётность количества совпадений или проверить одну булеву проверку в виде логического результата. В статье — синтаксис, пошаговые примеры, сценарии применения, когда функция не подходит, альтернативы и готовые чек‑листы.

XOR — логическая операция Exclusive OR. В Google Sheets функция XOR возвращает TRUE или FALSE в зависимости от переданных логических выражений и от того, встречается ли среди них нечётное число значений TRUE.
Функция может быть чуть менее очевидна, чем простые IF или AND, но она полезна в ситуациях, где важна нечётность количества истин. Ниже подробно разберём синтаксис, поведение, практические сценарии и рекомендации по тестированию.
Синтаксис функции XOR
=XOR(logical1, logical2, ...)Где logical1, logical2 и т.д. — логические выражения, ссылки на ячейки или массивы. Функция считает каждое значение за “истинное”, если оно эквивалентно TRUE или если это ненулевая числовая величина/непустая ячейка, и возвращает TRUE только когда число истинных входов нечётное.
Ключевые правила поведения:
- Если среди аргументов нечётное количество значений TRUE — результат TRUE.
- Если чётное количество значений TRUE или ни одного TRUE — результат FALSE.
- Числа, отличные от нуля, и непустые строки считаются истинными, если явно не являются логическими выражениями с оператором сравнения.
- Для проверки диапазона аргументы можно передавать как диапазон или как выражение с ARRAYFORMULA, чтобы функция работала построчно.
Примеры и разбор строк выше:
- B2: =XOR(1>2) — выражение ложно, число истин = 0 → FALSE.
- C2: =XOR(2>1) — одно истинное выражение → TRUE.
- D2: =XOR(2>1, 1>2) — одна истина, одна ложь → 1 истина → TRUE.
- E2: =XOR(2>1, 4>3) — две истины → 2 (чётное) → FALSE.
Если подать числа без сравнения, например =XOR(1,2,3,4), функция посчитает четыре истинных значения и вернёт FALSE.
Как применять XOR в Google Sheets
XOR полезна в двух основных сценариях:
- Проверка одного условия с явным булевым результатом (аналогично IF, но возвращает только TRUE/FALSE).
- Подсчёт нечётности количества истин в наборе условий или значений.
Ниже — подробные рабочие примеры и пошаговые инструкции для обоих сценариев.
Пример: один параметр
Когда вы передаёте в XOR один логический тест, результат просто повторяет булевую проверку, но сам синтаксис короче, если вам нужен именно TRUE/FALSE.
Задача: пометить, больше ли каждое значение среднего по столбцу.
Порядок действий:
- Выберите ячейку B2 для результата.
- Введите формулу:
=XOR(A2>AVERAGE(A2:A14))- Нажмите Enter.
- Скопируйте формулу вниз по столбцу с помощью маркера заполнения.
Логика: A2>AVERAGE(A2:A14) — это булев тест. Если он истинный, XOR получает один true и возвращает TRUE. Если ложь — возвращает FALSE.
Советы:
- Если нужно вернуть текст, используйте IF с XOR внутри: =IF(XOR(…), “Выше”, “Не выше”).
- Для обработки пустых строк добавьте проверку ISBLANK, чтобы пустые ячейки не считались как true.
Пример: несколько параметров
Когда в XOR передаёте диапазон или несколько тестов, функция считает количество истинных значений и возвращает TRUE при нечётном количестве.
Задача: определить, содержит ли каждая строка нечётное количество числовых значений.
Порядок действий:
- Выберите ячейку F2.
- Введите формулу:
=XOR(A2:E2)- Нажмите Enter.
- Протяните формулу вниз.
Так как без явных сравнений числа считаются истинными, XOR посчитает значения в диапазоне как набор true/false и вернёт TRUE для нечётного количества.
Если необходимо игнорировать пустые ячейки или строки с текстом, комбинируйте с IF или N/ISNUMBER:
=XOR(ARRAYFORMULA(ISNUMBER(A2:E2)*1))Эта конструкция сначала превращает булевы значения в 1/0, затем XOR оценивает массив.
Практический пример 1: турнирная таблица футбольного чемпионата
Ситуация: у каждой команды два матча. Команда с 2 победами — на первом месте, с 0 побед — на последнем. Команды с одной победой играют дополнительный матч. Нужно пометить команды, которым нужен третий матч.
Решение:
=ArrayFormula(XOR(B2:C2="Win"))Логика: выражение B2:C2=”Win” возвращает массив TRUE/FALSE. XOR вернёт TRUE только тогда, когда ровно одно значение равно “Win”, то есть команда выиграла ровно один матч.
Примечание: ARRAYFORMULA нужна, если вы хотите применить формулу к диапазону строк сразу и вернуть массив результатов.
Практический пример 2: выбор формы стола для ужина
Ситуация: у гостей есть флажок “приводит компаньона”. Прямоугольный стол равномерно размещает только чётное количество людей; круглый стол — работает при любом количестве. Нужно определить, потребуется ли круглый стол, если общее количество гостей нечетное.
Формула:
=ArrayFormula(XOR(B2:B10="No"))Пояснение: “No” означает, что гость придет без компаньона. Все гости с компаньонами добавляют по 2 человека (четное). Значение общего числа нечётно тогда и только тогда, когда нечётно число тех, кто приходит без компаньона. XOR проверяет нечётность этого числа.
Когда XOR не подходит
- Если нужно вернуть кастомизированный вывод (текст, числа) — используйте IF внутри или вместо XOR.
- Если нужна логика «все истинны» или «хотя бы одна истина» — используйте AND или OR соответственно.
- Для подсчёта точного количества TRUE используйте COUNTIF/COUNTIFS или SUMPRODUCT.
- Если аргументы не булевы и вы хотите учитывать только TRUE/ FALSE, приведите их при помощи ISLOGICAL или (A1=TRUE).
Примеры неудачных применений:
- Попытка использовать XOR для определения «как минимум два из трёх истинны» — XOR не даёт информации о количестве истин, лишь о нечётности.
- Использование XOR для сложных ветвлений, где нужны разные текстовые ответы по каждой комбинации — лучше IF/IFS.
Альтернативы и комбинации
- AND(…) — возвращает TRUE, если все аргументы TRUE.
- OR(…) — возвращает TRUE, если хотя бы один аргумент TRUE.
- NOT(XOR(…)) — логическое отрицание результата XOR, полезно для проверки чётности (TRUE при чётном числе истин).
- COUNTIF/COUNTIFS или SUMPRODUCT для получения точного количества соответствий.
- MOD(SUM(–(A2:E2<>””)),2)=1 — альтернативный способ проверить нечётность количества непустых ячеек.
Пример с MOD:
=MOD(SUM(--(ISNUMBER(A2:E2))), 2)=1Эта формула суммирует числа 1/0 для наличия чисел и проверяет остаток от деления на 2.
Пошаговый плейбук для внедрения XOR в отчёт
- Определите, нужна ли вам именно проверка нечётности количества соответствий.
- Подготовьте диапазон данных и очистите пустые/ошибочные значения.
- Если нужно посчитать только определённые элементы, приведите их к логическому виду (например, B2:C2=”Win”).
- Протестируйте формулу на контрольных строках с 0, 1, 2 и более истинными значениями.
- При необходимости оберните в ARRAYFORMULA для массовой обработки.
- Если нужен не булев вывод, используйте IF(XOR(…), “Да”, “Нет”).
- Задокументируйте логику в примечаниях к листу.
Критерии приёмки
- Формула возвращает TRUE для случаев с нечётным количеством соответствий и FALSE для чётных.
- Формула корректно обрабатывает пустые ячейки и не считает их за истинные, если это нежелательно.
- При использовании ARRAYFORMULA результаты распространяются на запланированный диапазон.
- Документация/примечание на листе объясняет условие проверки.
Тесты и критерии приёмки
Тесты, которые нужно выполнить при внедрении:
- Строка с 0 истинными значениями → ожидаем FALSE.
- Строка с 1 истинным значением → ожидаем TRUE.
- Строка с 2 истинными значениями → ожидаем FALSE.
- Строка с 3 истинными значениями → ожидаем TRUE.
- Диапазон, содержащий пустые ячейки, которые не должны учитываться → отработать корректно.
- Диапазон со смешанными типами (текст, числа, логические) — проверить приведение типов и ожидаемое поведение.
Для автоматизации тестов используйте отдельный лист с эталонными кейсами и ссылкой на основную формулу.
Чеклист по ролям
Аналитик:
- Проверил исходные данные на пустые и ошибочные значения.
- Обосновал необходимость именно проверки нечётности.
- Задокументировал формулу для коллег.
Инженер данных:
- Убедился, что диапазоны динамичны и не дают #REF! при вставке строк.
- Добавил валидацию типов там, где это нужно.
Финансовый менеджер:
- Получил простой булевый столбец для дальнейшего сводного анализа.
- Проверил, что при изменении данных результаты обновляются автоматически.
Ментальные модели и эвристики
- “Нечётность как бинарный фильтр“: XOR — это быстрый способ сказать “один из набора” без подсчёта точного числа.
- “Преобразуй в 1/0”: если нужно знать количество, сначала преобразуй TRUE/FALSE в 1/0 и суммируй.
- “XOR = нечётность”: думайте о XOR как о проверке остатка от деления на 2.
Пример эвристики:
- Если задача — проверить четность/нечетность набора совпадений — используйте XOR.
- Если нужно знать “сколько” — используйте COUNTIF/SUMPRODUCT.
Полезные шаблоны формул
Проверить нечётность количества непустых ячеек в диапазоне:
=MOD(COUNTA(A2:E2), 2)=1Проверить нечётность количества ячеек со значением “Да”:
=MOD(COUNTIF(A2:E2, "Да"), 2)=1Использовать XOR внутри IF для выводов в текстовом виде:
=IF(XOR(A2>10, B2<5), "Условие выполнено", "Условие не выполнено")Решение типичных ошибок и подводные камни
- Пустые ячейки могут считаться “ложными”. Если вы не хотите учитывать пустые, фильтруйте их явно.
- Текстовые значения считаются истиной, если не сравниваются; это может ввести в заблуждение при передаче диапазонов без проверок.
- XOR не возвращает количество истин — для аналитики используйте COUNT.
- При использовании ARRAYFORMULA внимательно проверяйте размер возвращаемого массива, чтобы избежать сдвигов в соседних ячейках.
Decision tree для выбора между XOR и альтернативами
flowchart TD
A[Нужна ли проверка нечётности количества совпадений?] -->|Да| B[Простая булева метка нужна?]
A -->|Нет| C[Используйте AND/OR/COUNTIF]
B -->|Да| D[Используйте XOR]
B -->|Нет, нужен текст/число| E[Используйте IF с XOR или COUNTIF/SUMPRODUCT]
D --> F[Нужно применить к диапазону построчно?]
F -->|Да| G[Обёртка ArrayFormula или применить формулу по строкам]
F -->|Нет| H[Используйте одиночные аргументы]Фактбокс: что важно запомнить
- XOR возвращает TRUE при нечётном количестве TRUE.
- Числа, отличные от нуля, и непустые строки могут считаться TRUE, если не приводить типы.
- Для точного подсчёта используйте COUNTIF/COUNTIFS или SUMPRODUCT.
Краткий глоссарий
XOR — Exclusive OR, логическая операция, дающая TRUE при нечётном числе TRUE во входных данных. ARRAYFORMULA — функция, расширяющая выражение на массив или диапазон и возвращающая массив результатов. COUNTIF/COUNTIFS — функции подсчёта ячеек по критериям. MOD — возвращает остаток от деления; полезно для проверки чётности.
Примеры тестовых кейсов для валидации реализации
- Данные: [ , 1, 2, “x”, 0] — ожидаем поведение: пустая ячейка не учитывается, числа и текст учитываются, ноль трактуется как FALSE.
- Данные: [“Win”,”Lose”] с формулой XOR(B2:C2=”Win”) — ожидаем FALSE.
- Данные: один столбец, все пустые — ожидаем FALSE.
- Данные: MIX чисел и логических TRUE/FALSE — проверить приведение типов.
Резюме
XOR в Google Sheets — мощный инструмент для задач, где нужна проверка нечётности количества истинных условий. Она проста в синтаксисе, но требует внимания к типам данных и пустым значениям. Используйте XOR вместе с ARRAYFORMULA для пакетной обработки, а при необходимости комбинируйте с COUNTIF, IF и MOD для точных или текстовых ответов.
Важно: если вам нужен точный подсчёт, или если логика должна различать ситуации “по двум истинным” и “по трём истинным”, XOR сам по себе не даст нужной информации. В таких случаях используйте счётчики или более сложные логические конструкции.
Попробуйте применить XOR в своих таблицах: начните с небольшого тестового листа и проверьте все перечисленные тест‑кейсы. Это ускорит внедрение и снизит риск ошибок.
Похожие материалы
Herodotus — Android‑троян и защита
Как включить новый Пуск в Windows 11
Панель полей сводной таблицы в Excel — быстрый разбор
Включение нового меню Пуск в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить