Оглавление
В учебнике объясняется суть логических функций Excel AND, OR, XOR и NOT и приводятся примеры формул, демонстрирующие их обычное и изобретательное применение.
На прошлой неделе мы познакомились с логическими операторами Excel, которые используются для сравнения данных в разных ячейках. Сегодня вы увидите, как расширить использование логических операторов и построить более сложные тесты для выполнения более сложных вычислений. В этом вам помогут логические функции Excel, такие как AND, OR, XOR и NOT.
Логические функции Excel - обзор
Microsoft Excel предоставляет 4 логические функции для работы с логическими значениями. Это функции AND, OR, XOR и NOT. Вы используете эти функции, когда хотите провести более одного сравнения в формуле или проверить несколько условий вместо одного. Как и логические операторы, логические функции Excel возвращают либо TRUE, либо FALSE при оценке своих аргументов.
В следующей таблице приводится краткое описание того, что делает каждая логическая функция, чтобы помочь вам выбрать правильную формулу для конкретной задачи.
Функция | Описание | Пример формулы | Описание формулы |
И | Возвращает TRUE, если все аргументы имеют значение TRUE. | =AND(A2>=10, B2<5) | Формула возвращает TRUE, если значение в ячейке A2 больше или равно 10, а значение в B2 меньше 5, FALSE в противном случае. |
ИЛИ | Возвращает TRUE, если любой аргумент оценивается как TRUE. | =OR(A2>=10, B2<5) | Формула возвращает TRUE, если A2 больше или равно 10 или B2 меньше 5, или выполняются оба условия. Если ни одно из условий не выполняется, формула возвращает FALSE. |
XOR | Возвращает логическое исключающее "или" всех аргументов. | =XOR(A2>=10, B2<5) | Формула возвращает TRUE, если либо A2 больше или равно 10, либо B2 меньше 5. Если ни одно из условий не выполнено или оба условия выполнены, формула возвращает FALSE. |
НЕ | Возвращает обратное логическое значение своего аргумента. Т.е. если аргумент FALSE, то возвращается TRUE и наоборот. | =NOT(A2>=10) | Формула возвращает FALSE, если значение в ячейке A1 больше или равно 10; TRUE в противном случае. |
В дополнение к четырем логическим функциям, описанным выше, Microsoft Excel предоставляет 3 "условные" функции - IF, IFERROR и IFNA.
Логические функции Excel - факты и цифры
- В качестве аргументов логических функций можно использовать ссылки на ячейки, числовые и текстовые значения, булевы значения, операторы сравнения и другие функции Excel. Однако все аргументы должны оцениваться в булевы значения TRUE или FALSE, либо ссылки или массивы, содержащие логические значения.
- Если аргумент логической функции содержит какой-либо пустые ячейки Если все аргументы - пустые ячейки, формула возвращает ошибку #VALUE!
- Если аргумент логической функции содержит числа, то ноль оценивается как FALSE, а все остальные числа, включая отрицательные, оцениваются как TRUE. Например, если ячейки A1:A5 содержат числа, то формула =AND(A1:A5) вернет TRUE, если ни одна из ячеек не содержит 0, и FALSE в противном случае.
- Логическая функция возвращает ошибку #VALUE!, если ни один из аргументов не является логическим значением.
- Логическая функция возвращает ошибку #NAME?, если вы неправильно написали имя функции или пытались использовать функцию в более ранней версии Excel, которая ее не поддерживает. Например, функцию XOR можно использовать только в Excel 2016 и 2013.
- В Excel 2007 и выше вы можете включить в логическую функцию до 255 аргументов, при условии, что общая длина формулы не превышает 8 192 символов. В Excel 2003 и ниже вы можете ввести до 30 аргументов, а общая длина вашей формулы не должна превышать 1 024 символов.
Использование функции AND в Excel
Функция AND - самый популярный представитель семейства логических функций. Она может пригодиться, когда нужно проверить несколько условий и убедиться, что все они выполнены. Технически функция AND проверяет указанные вами условия и возвращает TRUE, если все условия оцениваются как TRUE, и FALSE в противном случае.
Синтаксис функции AND в Excel следующий:
AND(logical1, [logical2], ...)Где logical - это условие, которое вы хотите проверить и которое может быть оценено как TRUE или FALSE. Первое условие (logical1) является обязательным, последующие условия необязательны.
А теперь давайте рассмотрим несколько примеров формул, которые демонстрируют использование функций AND в формулах Excel.
Формула | Описание |
=AND(A2="Бананы", B2>C2) | Возвращает TRUE, если A2 содержит "Bananas" и B2 больше C2, FALSE в противном случае. |
=AND(B2>20, B2=C2) | Возвращает TRUE, если B2 больше 20 и B2 равно C2, FALSE в противном случае. |
=AND(A2="Бананы", B2>=30, B2>C2) | Возвращает TRUE, если A2 содержит "Bananas", B2 больше или равно 30 и B2 больше C2, FALSE в противном случае. |
Функция AND в Excel - общие случаи использования
Сама по себе функция Excel AND не очень интересна и имеет узкую полезность. Но в сочетании с другими функциями Excel AND может значительно расширить возможности ваших рабочих листов.
Одно из самых распространенных применений функции И в Excel - это использование в аргументе logical_test функции ЕСЛИ для проверки нескольких условий вместо одного. Например, вы можете вложить любую из функций И внутри функции ЕСЛИ и получить результат, подобный этому:
=IF(AND(A2="Бананы", B2>C2), "Хорошо", "Плохо")
Другие примеры формул IF / AND смотрите в учебнике: Функция Excel IF с несколькими условиями AND.
Формула Excel для условия BETWEEN
Если вам нужно создать формулу "между" в Excel, которая выбирает все значения между заданными двумя значениями, распространенным подходом является использование функции ЕСЛИ с И в логическом тесте.
Например, у вас есть 3 значения в столбцах A, B и C, и вы хотите узнать, попадает ли значение в столбце A между значениями B и C. Чтобы составить такую формулу, достаточно использовать функцию IF со вложенным AND и пару операторов сравнения:
Формула для проверки того, находится ли X между Y и Z, включительно:
=IF(AND(A2>=B2,A2<=C2),"Yes", "No")
Формула для проверки того, находится ли X между Y и Z, не включительно:
=IF(AND(A2>B2, A2
Как показано на скриншоте выше, формула отлично работает для всех типов данных - чисел, дат и текстовых значений. При сравнении текстовых значений формула проверяет их посимвольно в алфавитном порядке. Например, она утверждает, что Яблоки не между Абрикос и Бананы потому что второе "р" в Яблоки идет перед "r" в Абрикос Более подробную информацию см. в разделе Использование операторов сравнения Excel с текстовыми значениями.
Как видите, формула IF /AND проста, быстра и почти универсальна. Я говорю "почти", потому что она не охватывает ни одного сценария. Приведенная выше формула подразумевает, что значение в столбце B меньше, чем в столбце C, то есть столбец B всегда содержит значение нижней границы, а C - значение верхней границы. Это причина, по которой формула возвращает " Нет " для ряда 6, где A6 - 12, B6 - 15 и C6 - 3, а также для ряда 8, где A8 - 24-ноябрь, B8 - 26-декабрь и C8 - 21-октябрь.
Но что если вы хотите, чтобы ваша формула между работала правильно независимо от того, где находятся нижняя и верхняя границы? В этом случае используйте функцию Excel MEDIAN, которая возвращает медиану заданных чисел (т.е. число в середине набора чисел).
Так, если заменить AND в логическом тесте функции IF на MEDIAN, формула будет выглядеть следующим образом:
=IF(A2=MEDIAN(A2:C2), "Да", "Нет")
И вы получите следующие результаты:
Как видите, функция MEDIAN отлично работает для чисел и дат, но возвращает ошибку #NUM! для текстовых значений. Увы, никто не совершенен : )
Если вам нужна идеальная формула Between, которая работает как для текстовых значений, так и для чисел и дат, то вам придется построить более сложный логический текст с использованием функций AND / OR, например, так:
=IF(OR(AND(A2>B2, A2
Использование функции ИЛИ в Excel
Как и AND, функция ИЛИ в Excel является базовой логической функцией, которая используется для сравнения двух значений или утверждений. Разница в том, что функция ИЛИ возвращает TRUE, если хотя бы один из аргументов оценивается как TRUE, и возвращает FALSE, если все аргументы являются FALSE. Функция ИЛИ доступна во всех версиях Excel 2016 - 2000.
Синтаксис функции ИЛИ в Excel очень похож на И:
OR(logical1, [logical2], ...)Где логическое - это то, что вы хотите проверить, которое может быть либо ИСТИНОЙ, либо ЛОЖЬЮ. Первое логическое условие обязательно, дополнительные условия (до 255 в современных версиях Excel) необязательны.
А теперь давайте запишем для вас несколько формул, чтобы вы почувствовали, как работает функция OR в Excel.
Формула | Описание |
=OR(A2="Bananas", A2="Oranges") | Возвращает TRUE, если A2 содержит "Бананы" или "Апельсины", FALSE в противном случае. |
=OR(B2>=40, C2>=20) | Возвращает TRUE, если B2 больше или равно 40 или C2 больше или равно 20, FALSE в противном случае. |
=OR(B2=" ",) | Возвращает TRUE, если либо B2 или C2 пуст, либо оба, FALSE в противном случае. |
Как и функция Excel AND, OR широко используется для расширения возможностей других функций Excel, выполняющих логические тесты, например, функции IF. Вот лишь пара примеров:
Функция ЕСЛИ с вложенным ИЛИ
=IF(OR(B2>30, C2>20), "Хорошо", "Плохо")
Формула возвращает " Хорошо " если число в ячейке B3 больше 30 или число в ячейке C2 больше 20, " Плохой " в противном случае.
Функции И / ИЛИ в Excel в одной формуле
Естественно, ничто не мешает вам использовать обе функции, AND & OR, в одной формуле, если этого требует ваша бизнес-логика. Вариаций таких формул может быть бесконечное множество, которые сводятся к следующим основным шаблонам:
=AND(OR(Cond1, Cond2), Cond3)
=AND(OR(Cond1, Cond2), OR(Cond3, Cond4))
=OR(AND(Cond1, Cond2), Cond3)
=OR(AND(Cond1,Cond2), AND(Cond3,Cond4))
Например, если вы хотите узнать, какие партии бананов и апельсинов распроданы, т.е. число "На складе" (колонка B) равно числу "Продано" (колонка C), следующая формула OR/AND может быстро показать вам это:
=OR(AND(A2="бананы", B2=C2), AND(A2="апельсины", B2=C2))
Функция ИЛИ в условном форматировании Excel
=OR($B2="", $C2="")
Правило с приведенной выше формулой ИЛИ выделяет строки, которые содержат пустую ячейку либо в столбце B или C, либо в обоих.
Для получения дополнительной информации о формулах условного форматирования см. следующие статьи:
- Формулы условного форматирования Excel
- Изменение цвета строки на основе значения ячейки
- Изменение цвета ячейки на основе значения другой ячейки
- Как выделить каждую вторую строку в Excel
Использование функции XOR в Excel
В Excel 2013 компания Microsoft ввела функцию XOR, которая представляет собой логическую функцию. Эксклюзивный ИЛИ Этот термин, безусловно, знаком тем из вас, кто хоть немного знаком с языком программирования или информатикой в целом. Для тех, кто не знаком, концепция "Исключающее Или" может быть немного сложной для понимания, но, надеюсь, приведенное ниже объяснение, проиллюстрированное примерами формул, поможет вам.
Синтаксис функции XOR идентичен синтаксису OR :
XOR(logical1, [logical2],...)Первый логический оператор (Логический 1) является обязательным, дополнительные логические значения необязательны. В одной формуле можно проверить до 254 условий, и это могут быть логические значения, массивы или ссылки, которые оцениваются как TRUE или FALSE.
В самом простом варианте формула XOR содержит всего 2 логических оператора и возврат:
- TRUE, если любой из аргументов оценивается как TRUE.
- FALSE, если оба аргумента TRUE или ни один из них не TRUE.
Это может быть легче понять из примеров формул:
Формула | Результат | Описание |
=XOR(1>0, 2<1) | TRUE | Возвращает TRUE, так как 1-й аргумент равен TRUE, а 2-й аргумент равен FALSE. |
=XOR(1<0, 2<1) | FALSE | Возвращает FALSE, так как оба аргумента являются FALSE. |
=XOR(1>0, 2>1) | FALSE | Возвращает FALSE, так как оба аргумента TRUE. |
При добавлении большего количества логических операторов функция XOR в Excel дает результат:
- TRUE, если нечетное число аргументов оценивается как TRUE;
- FALSE, если общее количество утверждений TRUE четное, или если все утверждения FALSE.
Приведенный ниже скриншот иллюстрирует этот момент:
Если вы не уверены, как функция XOR в Excel может быть применена к реальному сценарию, рассмотрите следующий пример. Предположим, у вас есть таблица участников и их результаты первых двух игр. Вы хотите узнать, кто из плательщиков будет играть в третьей игре, исходя из следующих условий:
- Участники, выигравшие Игры 1 и 2, автоматически переходят в следующий раунд и не участвуют в Игре 3.
- Участники, проигравшие обе первые игры, выбывают из игры и не участвуют в третьей игре.
- Участники, выигравшие Игру 1 или Игру 2, играют в Игру 3, чтобы определить, кто проходит в следующий раунд, а кто нет.
Простая формула XOR работает именно так, как мы хотим:
=XOR(B2="Выиграл", C2="Выиграл")
А если вы вложите эту функцию XOR в логический тест формулы IF, то получите еще более разумные результаты:
=IF(XOR(B2="Выиграл", C2="Выиграл"), "Да", "Нет")
Использование функции НЕ в Excel
Функция NOT - одна из самых простых функций Excel с точки зрения синтаксиса:
НЕ(логический)Функция NOT используется в Excel для обратного значения аргумента. Другими словами, если логическая оценка равна FALSE, функция NOT возвращает TRUE и наоборот. Например, обе приведенные ниже формулы возвращают FALSE:
=NOT(TRUE)
=NOT(2*2=4)
Зачем получать такие нелепые результаты? В некоторых случаях вам может быть интереснее знать, когда определенное условие не выполняется, чем когда оно выполняется. Например, просматривая список нарядов, вы можете захотеть исключить какой-то цвет, который вам не подходит. Я не особенно люблю черный цвет, поэтому я продолжаю эту формулу:
=NOT(C2="черный")
Как обычно, в Microsoft Excel существует более одного способа сделать что-то, и вы можете добиться того же результата, используя оператор Not equal to: =C2 "black".
Если вы хотите проверить несколько условий в одной формуле, вы можете использовать NOT в сочетании с функцией AND или OR. Например, если вы хотите исключить черный и белый цвета, формула будет выглядеть следующим образом:
=NOT(OR(C2="black", C2="white"))
И если вы предпочитаете не иметь черное пальто, хотя можно рассмотреть вариант с черной курткой или шубой на спине, следует использовать NOT в сочетании с функцией Excel AND:
=NOT(AND(C2="black", B2="coat"))
Еще одним распространенным использованием функции NOT в Excel является обратное поведение какой-либо другой функции. Например, вы можете объединить функции NOT и ISBLANK, чтобы создать формулу ISNOTBLANK, которой нет в Microsoft Excel.
Как вы знаете, формула =ISBLANK(A2) возвращает TRUE, если ячейка A2 пуста. Функция NOT может изменить этот результат на FALSE: =NOT(ISBLANK(A2)).
А затем можно сделать еще один шаг вперед и создать вложенный оператор IF с функциями NOT / ISBLANK для решения реальной задачи:
=IF(NOT(ISBLANK(C2)), C2*0.15, "Премии нет :(")
Если ячейка C2 не пуста, умножьте число в C2 на 0,15, что дает 15% бонус каждому продавцу, совершившему дополнительные продажи. Если C2 пуста, появится текст "No bonus :(".
По сути, это то, как вы используете логические функции в Excel. Конечно, эти примеры только поцарапали поверхность возможностей AND, OR, XOR и NOT. Зная основы, вы можете теперь расширить свои знания, решая реальные задачи и составляя умные сложные формулы для своих рабочих листов.