Операторы, использующиеся в VBA Excel для отрицания и сравнения логических выражений. Синтаксис, принимаемые значения, приоритет логических операторов.
Оператор «Not»
«Not» – это оператор логического отрицания (инверсия), который возвращает True, если условие является ложным, и, наоборот, возвращает False, если условие является истинным.
Синтаксис:
Таблица значений:
Условие | Результат |
---|---|
True | False |
False | True |
Оператор «And»
«And» – это оператор логического умножения (логическое И, конъюнкция), который возвращает значение True, если оба условия являются истинными.
Синтаксис:
Результат = Условие1 And Условие2 |
Таблица значений:
Условие1 | Условие2 | Результат |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Оператор «Or»
«Or» – это оператор логического сложения (логическое ИЛИ, дизъюнкция), который возвращает значение True, если одно из двух условий является истинным, или оба условия являются истинными.
Синтаксис:
Результат = Условие1 Or Условие2 |
Таблица значений:
Условие1 | Условие2 | Результат |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Оператор «Xor»
«Xor» – это оператор логического исключения (исключающая дизъюнкция), который возвращает значение True, если только одно из двух условий является истинным.
Синтаксис:
Результат = Условие1 Xor Условие2 |
Таблица значений:
Условие1 | Условие2 | Результат |
---|---|---|
True | True | False |
True | False | True |
False | True | True |
False | False | False |
Оператор «Eqv»
«Eqv» – это оператор логической эквивалентности (тождество, равенство), который возвращает True, если оба условия имеют одинаковое значение.
Синтаксис:
Результат = Условие1 Eqv Условие2 |
Таблица значений:
Условие1 | Условие2 | Результат |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | True |
Оператор «Imp»
«Imp» – это оператор логической импликации, который возвращает значение False, если первое (левое) условие является истинным, а второе (правое) условие является ложным, в остальных случаях возвращает True.
Синтаксис:
Результат = Условие1 Imp Условие2 |
Таблица значений:
Условие1 | Условие2 | Результат |
---|---|---|
True | True | True |
True | False | False |
False | True | True |
False | False | True |
Приоритет логических операторов
Приоритет определяет очередность выполнения операторов в одном выражении. Очередность выполнения логических операторов в VBA Excel следующая:
- «Not» – логическое отрицание;
- «And» – логическое И;
- «Or» – логическое ИЛИ;
- «Xor» – логическое исключение;
- «Eqv» – логическая эквивалентность;
- «Imp» – логическая импликация.
Содержание
- Условные операторы и циклы
- Операторы сравнения
- Логические операторы
- Оператор ветвления If. Else
- Оператор выбора Select
- Функции выбора
- Логические операторы VBA
- Логический оператор AND
- Логический оператор OR
- Логический оператор NOT
- Логический оператор XOR
- Логический оператор EQV
- Логический оператор IMP
- Примеры функций XOR — Excel, VBA и Google Таблицы
- Описание функции XOR:
- Синтаксис и входные данные функции XOR:
- Что такое функция XOR?
- Что такое эксклюзивное ИЛИ?
- Как использовать функцию XOR
- Использование XOR с двумя аргументами
- Использование XOR с более чем двумя аргументами
- Сравнение текста с XOR
- Сравнение чисел
- Использование XOR с IF
- XOR в Google Таблицах
- Дополнительные замечания
Условные операторы и циклы
Условные операторы позволяют в зависимости от значения логического выражения выполнить отдельный участок программы или, наоборот, не выполнять его. Логические выражения возвращают только два значения True (истина) или False (ложь).
Логическое значение можно сохранить в переменной:
С помощью функции CBool() можно преобразовать число или строку в логический тип данных. Любое число не равное 0 будет преобразовано в значение True , а значение 0 — в False . Пример:
Операторы сравнения
Операторы сравнения используются в логических выражениях. Перечислим их:
- Is — проверяет, ссылаются ли две объектные переменные на один и тот же объект. Если переменные ссылаются на один и тот же объект, то оператор Is возвращает значение True :
Сравнивать можно не только числа, но и строки. При сравнении строк производится проверка кодов отдельных символов в строке слева направо. Строки считаются равными, если они имеют одну длину и содержат одинаковые символы на равном смещении от начала строки. Строки могут сравниваться в двух режимах:
- двоичный режим — сравнение производится по кодам символов и зависит от регистра символов (режим используется по умолчанию):
- тестовый режим — сравнение производится без учета регистра символов. Чтобы включить текстовый режим необходимо добавить инструкцию Option Compare Text в самое начало модуля:
Сравнить строку с заданным шаблоном позволяет оператор Like . Результат сравнения зависит от используемого режима. Если используется двоичный режим (по умолчанию), то регистр символов учитывается, а если текстовый режим (в начале модуля указана инструкция Option Compare Text ) — то регистр не учитывается. Оператор Like имеет следующий формат:
В строке шаблона могут быть использованы следующие специальные символы:
- * — произвольное количество любых символов:
- [ ] — один из указанных символов. Символы можно перечислить подряд или указать диапазон через тире. Обратите внимание на то, что буква ё не входит в диапазон а-я . Пример сравнения в двоичном режиме:
Пример сравнения в текстовом режиме:
- [! ] — любой символ, кроме указанных символов. Символы можно перечислить подряд или указать диапазон через тире. Пример:
Логические операторы
Значение логического выражения можно инвертировать с помощью оператора Not :
Если значения равны, то возвращается значение True , но так как перед выражением стоит оператор Not , выражение вернет False . Круглые скобки можно не указывать, т. к. оператор Not имеет более низкий приоритет выполнения, чем операторы сравнения.
Несколько логических выражений можно объединить в одно большое с помощью следующих логических операторов:
- And — логическое И. Вернет True только в случае, если оба выражения равны True :
- Or — логическое ИЛИ. Вернет True , если хотя бы одно из выражений равно True :
- Xor — логическое исключающее ИЛИ. Вернет True , если выражения имеют разные значения и False — если одинаковые:
- Eqv — логическая эквивалентность. Вернет True , если выражения имеют одинаковые значения и False — если разные:
- Imp — логическая импликация. Вернет False , если первое выражение имеет значение True , а второе выражение — False , и True — в остальных случаях:
Перечислим операторы сравнения и логические операторы в порядке убывания приоритета:
- , > , , >= , = , <> .
- Not — логическое отрицание.
- And — логическое И.
- Or — логическое ИЛИ.
- Xor — логическое исключающее ИЛИ.
- Eqv — логическая эквивалентность.
- Imp — логическая импликация.
Оператор ветвления If. Else
Оператор ветвления If. Else позволяет в зависимости от значения логического выражения выполнить отдельный фрагмент программы или, наоборот, не выполнять его. Оператор имеет два формата. Первый формат является однострочным:
Если вернет значение True (истина), то выполняется , а если False (ложь) — то . Блока Else может не быть. Пример проверки числа, введенного пользователем:
Второй формат оператора If. Else является блочным:
Для примера напишем программу, которая проверяет, является ли введенное пользователем число четным или нет (листинг 4.1). После проверки выведем соответствующее сообщение. Чтобы упростить код проверку возможности преобразования введенного значения в число выполнять не будем.
Листинг 4.1. Проверка числа на четность
Оператор If. Else позволяет проверить сразу несколько условий. Рассмотрим это на примере (листинг 4.2).
Листинг 4.2. Проверка нескольких условий
Один условный оператор можно вложить в другой. В этом случае отступ вложенной инструкции следует сделать в два раза больше, чтобы это было видно (листинг 4.3).
Листинг 4.3. Вложенные инструкции
Оператор выбора Select
Оператор выбора Select имеет следующий формат:
В зависимости от значения параметра выполняется один из блоков Case , в котором указано это значение. Если ни одно из значений не описано в блоках Case , то выполняется блок Case Else (если он указан). В параметрах можно указать:
- конкретное значение или выражение, возвращающее значение — в этом случае производится проверка равенства со значением параметра :
- диапазон значений — указывается значение в следующем формате:
Пример указания диапазона от 5 до 10 включительно:
- ключевое слово Is и условие после него:
В одном операторе Case допустимо указание сразу нескольких условий через запятую:
Пример использования оператора Select приведен в листинге 4.4.
Листинг 4.4. Использование оператора Select
Функции выбора
В языке VBA существует альтернатива операторам ветвления и выбора. Вместо операторов можно использовать следующие функции:
- IIf( , , ) — если вернет значение True (истина), то выполняется , а если False (ложь) — то . Функция возвращает результат выполнения одного из выражений. Пример:
- Choose( , [, . , ]) — возвращает одно из заданных значений по указанному индексу. Если указан индекс 1, то возвращается первое значение из списка, если 2 — то второе значение и т.д. Функция возвращает значение Null , если индекс меньше 1 или больше числа значений в списке. Пример:
- Switch() — возвращает значение, которое соответствует первому логическому выражению, вернувшему значение True . Если нет логического выражения, возвращающего истинное значение, то функция возвращает значение Null . Формат функции:
Если пользователь введет число 1 , то в окне Immediate отобразится значение «Один» , если число 2 — то значение «Два» , а если 3 — то значение «Три» . Любое другое целочисленное значение приведет к отображению значения Null , а попытка ввести не число станет причиной ошибки времени выполнения, так как функция CInt() не сможет преобразовать значение в число.
Статьи по Visual Basic for Applications (VBA)
Помощь сайту
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов
Источник
Логические операторы VBA
Оператор | Синтаксис | Описание |
AND | A AND B | Конъюнкция: Если А и В имеют значение True, то — True. Иначе — False |
OR | A OR B | Дизъюнкция: Если любой из операндов имеет значение True, то — True. Иначе — False |
NOT | NOT A | Отрицание: Если А имеет значение False, то — True. Иначе — False |
XOR | A XOR B | Исключение: Если А имеет значение True или В имеет значение True, то — True. Иначе — False |
EQV | A EQV B | Эквивалентность: Если А имеет такое же значение что и В, то — True. Иначе — False |
IMP | A IMP B | Импликация: Если А имеет значение True и В имеет значение False, то — False. Иначе — True |
В качестве операнда для логического оператора можно использовать любое действительное выражение, имеющее результат типа Boolean, а также число, которое может быть преобразовано в значение типа Boolean.
Результатом логической операции является значение типа Boolean (или Null, если хотя бы один из операндов имеет значение Null).
Логический оператор AND
Синтаксис:
Операнд_1 AND Операнд_2
Оператор AND выполняет логическую конъюнкцию.
Результатом данной операции является значение True, только когда оба операнда имеют значение True, иначе — False.
Операнд_1 | Операнд_2 | Результат |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Оператор AND можно использовать для нескольких операндов:
(5 3) AND (5=6) результатом будет False
Независимо от количества операндов результатом логической операции AND будет True только в том случае, когда все операнды выражения будут иметь значение True. В любом другом случае результатом будет False. Обратите внимание, что операнды заключаются в круглые скобки. VBA сначала вычисляет значение каждого операнда внутри скобок, а затем уже все выражение полностью.
Логический оператор OR
Синтаксис:
Операнд_1 OR Операнд_2
Оператор OR выполняет логическую дизъюнкцию.
Результатом данной операции является значение True, если хотя бы один из операндов имеет значение True, иначе — False.
Операнд_1 | Операнд_2 | Результат |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Оператор OR можно использовать для нескольких операндов:
(5 3) OR (5=6) результатом будет True
Независимо от количества операндов результатом логической операции OR будет всегда True в том случае, если хотя бы один из операндов выражения будет иметь значение True. Иначе результатом будет False.
Операторы AND и OR можно комбинировать:
((5 3)) OR (5=6) результатом будет True
Логический оператор NOT
Синтаксис:
NOT Операнд
Оператор NOT выполняет логическое отрицание.
Оператор NOT использует только один операнд.
Операнд | Результат |
True | False |
False | True |
Операторы AND OR NOT можно комбинировать:
((5 3)) OR NOT (5=6) результатом будет True
Логический оператор XOR
Синтаксис:
Операнд_1 XOR Операнд_2
Оператор XOR выполняет логическое исключение.
Результатом данной операции является значение True, если операнды имеют разные значения, иначе — False.
Операнд_1 | Операнд_2 | Результат |
True | True | False |
True | False | True |
False | True | True |
False | False | False |
((5 3)) OR NOT (5=6) XOR (5=5) результатом будет False
Логический оператор EQV
Синтаксис:
Операнд_1 EQV Операнд_2
Оператор EQV — это оператор логической эквивалентности.
Результатом данной операции является значение True, если операнды имеют одинаковые значения, иначе — False.
Операнд_1 | Операнд_2 | Результат |
True | True | True |
True | False | False |
False | True | False |
False | False | True |
((5 3)) OR NOT (5=6) EQV (5=5) результатом будет True
Логический оператор IMP
Синтаксис:
Операнд_1 IMP Операнд_2
Оператор IMP выполняет логическую операцию импликации.
Операнд_1 | Операнд_2 | Результат |
True | True | True |
True | False | False |
False | True | True |
False | False | True |
((5 3)) OR NOT (5=6) IMP (5=5) результатом будет True
Логический оператор IMP наименее интуитивно понятный из всех логических операторов. К счастью, необходимость в его применении возникает довольно редко.
В начало страницы
В начало страницы
Источник
Примеры функций XOR — Excel, VBA и Google Таблицы
Загрузите образец книги
В этом руководстве показано, как использовать Функция Excel XOR в Excel, чтобы проверить, истинен ли один и только один критерий.
Описание функции XOR:
Функция XOR Проверяет, выполняется ли одно и только одно условие. Возвращает ИСТИНА или ЛОЖЬ. Если никакие условия не выполняются или выполняется более одного условия, XOR возвращает FALSE. Если выполняется только одно условие, XOR возвращает TRUE.
Чтобы использовать функцию XOR Excel Worksheet, выберите ячейку и введите:
(Обратите внимание, как появляются входные данные формулы)
Синтаксис и входные данные функции XOR:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (логический1; логический2) |
логический1 — Логические выражения. Пример: A1> 4.
Что такое функция XOR?
XOR — одна из логических функций Excel. Он вычисляет так называемый тест «исключающее ИЛИ» (используйте функцию Excel OR <>, если вам нужно использовать инклюзивный ИЛИ).
Что такое эксклюзивное ИЛИ?
Эксклюзивное ИЛИ немного сложнее стандартного ИЛИ. Он принимает ряд аргументов и оценивает их как ИСТИНА или ЛОЖЬ. Потом:
- Если нечетное количество аргументов — ИСТИНА, XOR возвращает ИСТИНА.
- Если четное количество аргументов — ИСТИНА, XOR возвращает ЛОЖЬ.
- Если нет аргументов ИСТИНА, XOR также возвращает ЛОЖЬ (ноль — четное число).
Как использовать функцию XOR
С помощью функции Excel XOR вы предоставляете ряд аргументов. XOR сначала оценивает эти аргументы как ИСТИНА или ЛОЖЬ, а затем выполняет проверку результатов исключающее ИЛИ. См. Пример ниже:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (B3; C3) |
XOR возвращает TRUE, если нечетное количество аргументов оценивается как TRUE, и FALSE, если четное количество аргументов оценивается как TRUE.
Использование XOR с двумя аргументами
Наиболее распространенное использование XOR — это когда у вас есть только два аргумента в функции. Это означает, что Excel вернет ИСТИНА, если один из аргументов верен, и ЛОЖЬ, если оба аргумента или ни один из аргументов не верен. Вот пример.
Вы владелец спорт-бара и хотите дать своим сотрудникам бонус, если они продают еду на сумму более 800 долларов и напитки на сумму 800 долларов в неделю. Однако вы чувствуете себя щедрым, поэтому, если они продают еду или напитки на сумму более 800 долларов, но не то и другое, вы дадите им половину бонуса.
Вот выручка за прошлую неделю:
В столбце E вы рассчитали полный бонус с помощью функции Excel И <>:
1 | = И (C3> = 800, D3> = 800) |
Это возвращает значение ИСТИНА, если продажи продуктов питания и напитков превышают 800 долларов США.
А половину бонуса можно вычислить с помощью функции XOR:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (C3> = 800, D3> = 800) |
Обратите внимание, что аргументы в обеих функциях точно такие же, но XOR оценивает эти аргументы совершенно иначе, чем AND.
Использование XOR с более чем двумя аргументами
Хотя использование более двух аргументов менее распространено в Excel, вы можете определить до 255 аргументов в XOR.
Сколько бы вы ни определили, XOR вернет TRUE, если нечетное число оценивается как TRUE, и FALSE, если четное число из них оценивается как TRUE.
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (B3: G3) |
Чтобы сэкономить время, вы можете указать здесь диапазон ячеек, а не разделять ссылки на ячейки запятыми.
Сравнение текста с XOR
Обратите внимание, что при сравнении текста регистр не учитывается. Таким образом, все следующие формулы дают одинаковый результат:
123 | = XOR (C3 = «Спилберг»)= ИСКЛЮЧАЮЩЕЕ ИЛИ (C3 = «SPIELBERG»)= XOR (C3 = «SpieLbErG») |
Кроме того, XOR не поддерживает подстановочные знаки. Итак, если вы использовали следующую формулу:
XOR будет искать точное совпадение с текстовой строкой «Spiel *».
Сравнение чисел
При сравнении чисел в вашем распоряжении ряд операторов сравнения. Эти:
Если выражение в функции XOR оценивается как ненулевое число, XOR интерпретирует этот логический тест как TRUE. Если выражение равно или оценивается как 0, XOR оценивает это как ложное. Это показано ниже:
Использование XOR с IF
XOR часто используется как часть логической проверки в операторе IF. По сути, IF позволяет вам настроить возвращаемое значение теста XOR. Поэтому вместо того, чтобы просто говорить «ИСТИНА» или «ЛОЖЬ», вы можете вернуть что угодно — текст, числа или даже другую формулу.
Возвращаясь к нашему предыдущему примеру с бонусом в спорт-баре, вы можете использовать его так:
1 | = ЕСЛИ (XOR (C3> = 800, D3> = 800), «Да», «Нет») |
ЕСЛИ сначала оценивает функцию XOR. Если он оценивается как ИСТИНА, он возвращает «Да». Если он оценивается как ЛОЖЬ, он возвращает «Нет».
Я также добавил оператор IF к формуле «Полный бонус» в столбце E, в котором использовалась функция AND, а не XOR.
Такое сочетание IF с логическими функциями может помочь сделать наши данные немного удобнее для человеческого глаза.
Подробнее читайте на главной странице о функции ЕСЛИ в Excel <>.
XOR в Google Таблицах
Функция XOR работает в Google Таблицах точно так же, как и в Excel:
Дополнительные замечания
Используйте функцию XOR, чтобы проверить, выполняется ли одно и только одно условие. Каждое условие должно быть логическим выражением (например, a1> 5), ссылкой на ячейку, содержащую ИСТИНА или ЛОЖЬ, или массивом, содержащим все логические значения. Если один и только один условия ИСТИНА, формула возвращает ИСТИНА, в противном случае возвращается ЛОЖЬ.
XOR — это логическая функция и обычно используется вместе с другой логической функцией IF:
Формула IF выполняет одно действие, если условие истинно, и другое, если условие — ЛОЖЬ. Часто при использовании функции ИЛИ вы «вкладываете» ее в функцию ЕСЛИ.
Вы также можете использовать эти другие логические функции:
Функция И проверяет, если все условия соблюдены.
ИЛИ Формулы проверяют, если один или больше условие соблюдены.
Источник
In this Article
- Using the And Logical Operator
- Using the Or Logical Operator
- Using the Not Logical Operator
- Using the Xor Logical Operator
- Is Operator
- Like Operator
VBA allows you to use the logical operators And, Or, Not, Xor to compare values. The operators are considered “Boolean”, which means they return True or False as a result.
If you want to learn how to compare strings, click here: VBA Compare Strings – StrComp
If you want to learn how to use comparison operators, click here: VBA Comparison Operators – Not Equal to & More
Using the And Logical Operator
The And logical operator compares two or more conditions. If all the conditions are true, the operator will return True. If at least one of the conditions is not true, the operator will return False. Here is an example:
Dim intA As Integer
Dim intB As Integer
Dim blnResult As Boolean
intA = 5
intB = 5
If intA = 5 And intB = 5 Then
blnResult = True
Else
blnResult = False
End If
In this example, we want to check if both intA and intB are equal to 5. If this is true, the value of Boolean blnResult will be True, otherwise, it will be False.
First, we set values of intA and intB to 5:
intA = 5
intB = 5
After that, we use the And operator in the If statement to check if the values are equal to 5:
If intA = 5 And intB = 5 Then
blnResult = True
Else
blnResult = False
End If
As both variables are equal to 5, the blnResult returns True:
Image 1. Using the And logical operator in VBA
Using the Or Logical Operator
The Or logical operator compares two or more conditions. If at least one of the conditions is true, it will return True. If none of the conditions are true, the operator will return False. Here is the code for the example:
Dim intA As Integer
Dim intB As Integer
Dim blnResult As Boolean
intA = 5
intB = 10
If intA = 5 Or intB = 5 Then
blnResult = True
Else
blnResult = False
End If
In this example, we want to check if both intA is equal to 5. or intB is equal to 10. If any of these conditions is true, the value of Boolean blnResult will be True, otherwise, it will be False.
First, we set the value of intA to 5 and intB to 10:
intA = 5
intB = 10
After that, we use the Or operator in the If statement to check if any of the values is equal to 5:
If intA = 5 Or intB = 5 Then
blnResult = True
Else
blnResult = False
End If
As intA value is 5, the blnResult returns True:
Image 2. Using the Or logical operator in VBA
Using the Not Logical Operator
The Not logical operator checks one or more conditions. If the conditions are true, the operator returns False. Otherwise, it returns True. Here is the code for the example:
Dim intA As Integer
Dim blnResult As Boolean
intA = 5
If Not (intA = 6) Then
blnResult = True
Else
blnResult = False
End If
In this example, we want to check if the value of intA is not equal to 6. If intA is different than 6, the value of Boolean blnResult will be True, otherwise, it will be False.
First, we set the value of intA to 5:
intA = 5
After that, we use the Not operator in the If statement to check if the value of intA is different than 6:
If Not (intA = 6) Then
blnResult = True
Else
blnResult = False
End If
As intA value is 5, the blnResult returns True:
Image 3. Using the Not logical operator in VBA
Using the Xor Logical Operator
The Xor logical operator compares two or more conditions. If exactly one of the conditions is true, it will return True. If none of the conditions are true, or more than one are true, it will return False. Here is the code for the example:
Dim intA As Integer
Dim intB As Integer
Dim blnResult As Boolean
intA = 5
intB = 10
If intA = 5 Xor intB = 5 Then
blnResult = True
Else
blnResult = False
End If
In this example, we want to check if exactly one of the values (intA or IntB) are equal to 5. If only one condition is true, the value of Boolean blnResult will be True, otherwise, it will be False.
First, we set the value of intA to 5 and intB to 10:
intA = 5
intB = 10
After that, we use the Or operator in the If statement to check if any of the values is equal to 5:
If intA = 5 Xor intB = 5 Then
blnResult = True
Else
blnResult = False
End If
As intA value is 5 and intB is 10, the blnResult returns True:
Image 4. Using the Xor logical operator in VBA
Is Operator
The Is Operator tests if two object variables store the same object.
Let’s look at an example. Here we will assign two worksheets to worksheet objects rng1 and rng2, testing if the two worksheet objects store the same worksheet:
Sub CompareObjects()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
If ws1 Is ws2 Then
MsgBox "Same WS"
Else
MsgBox "Different WSs"
End If
End Sub
Of course the worksheet objects are not the same, so “Different WSs” is returned.
Like Operator
The Like Operator can compare two strings for inexact matches. This example will test if a string starts with “Mr.”
Sub LikeDemo()
Dim strName As String
Dim blnResult As Boolean
strName = "Mr. Michael James"
If strName Like "Mr*" Then
blnResult = True
Else
blnResult = False
End If
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
Содержание
- Описание функции XOR:
- Синтаксис и входные данные функции XOR:
- Что такое функция XOR?
- Что такое эксклюзивное ИЛИ?
- Как использовать функцию XOR
- Использование XOR с двумя аргументами
- Использование XOR с более чем двумя аргументами
- Сравнение текста с XOR
- Сравнение чисел
- Использование XOR с IF
- XOR в Google Таблицах
- Дополнительные замечания
Скачать пример рабочей книги
Загрузите образец книги
В этом руководстве показано, как использовать Функция Excel XOR в Excel, чтобы проверить, истинен ли один и только один критерий.
Функция XOR Проверяет, выполняется ли одно и только одно условие. Возвращает ИСТИНА или ЛОЖЬ. Если никакие условия не выполняются или выполняется более одного условия, XOR возвращает FALSE. Если выполняется только одно условие, XOR возвращает TRUE.
Чтобы использовать функцию XOR Excel Worksheet, выберите ячейку и введите:
(Обратите внимание, как появляются входные данные формулы)
Синтаксис и входные данные функции XOR:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (логический1; логический2) |
логический1 — Логические выражения. Пример: A1> 4.
Что такое функция XOR?
XOR — одна из логических функций Excel. Он вычисляет так называемый тест «исключающее ИЛИ» (используйте функцию Excel OR <>, если вам нужно использовать инклюзивный ИЛИ).
Что такое эксклюзивное ИЛИ?
Эксклюзивное ИЛИ немного сложнее стандартного ИЛИ. Он принимает ряд аргументов и оценивает их как ИСТИНА или ЛОЖЬ. Потом:
- Если нечетное количество аргументов — ИСТИНА, XOR возвращает ИСТИНА.
- Если четное количество аргументов — ИСТИНА, XOR возвращает ЛОЖЬ.
- Если нет аргументов ИСТИНА, XOR также возвращает ЛОЖЬ (ноль — четное число).
Как использовать функцию XOR
С помощью функции Excel XOR вы предоставляете ряд аргументов. XOR сначала оценивает эти аргументы как ИСТИНА или ЛОЖЬ, а затем выполняет проверку результатов исключающее ИЛИ. См. Пример ниже:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (B3; C3) |
XOR возвращает TRUE, если нечетное количество аргументов оценивается как TRUE, и FALSE, если четное количество аргументов оценивается как TRUE.
Использование XOR с двумя аргументами
Наиболее распространенное использование XOR — это когда у вас есть только два аргумента в функции. Это означает, что Excel вернет ИСТИНА, если один из аргументов верен, и ЛОЖЬ, если оба аргумента или ни один из аргументов не верен. Вот пример.
Вы владелец спорт-бара и хотите дать своим сотрудникам бонус, если они продают еду на сумму более 800 долларов и напитки на сумму 800 долларов в неделю. Однако вы чувствуете себя щедрым, поэтому, если они продают еду или напитки на сумму более 800 долларов, но не то и другое, вы дадите им половину бонуса.
Вот выручка за прошлую неделю:
В столбце E вы рассчитали полный бонус с помощью функции Excel И <>:
1 | = И (C3> = 800, D3> = 800) |
Это возвращает значение ИСТИНА, если продажи продуктов питания и напитков превышают 800 долларов США.
А половину бонуса можно вычислить с помощью функции XOR:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (C3> = 800, D3> = 800) |
Обратите внимание, что аргументы в обеих функциях точно такие же, но XOR оценивает эти аргументы совершенно иначе, чем AND.
Использование XOR с более чем двумя аргументами
Хотя использование более двух аргументов менее распространено в Excel, вы можете определить до 255 аргументов в XOR.
Сколько бы вы ни определили, XOR вернет TRUE, если нечетное число оценивается как TRUE, и FALSE, если четное число из них оценивается как TRUE.
См. ниже:
1 | = ИСКЛЮЧАЮЩЕЕ ИЛИ (B3: G3) |
Чтобы сэкономить время, вы можете указать здесь диапазон ячеек, а не разделять ссылки на ячейки запятыми.
Сравнение текста с XOR
Обратите внимание, что при сравнении текста регистр не учитывается. Таким образом, все следующие формулы дают одинаковый результат:
123 | = XOR (C3 = «Спилберг»)= ИСКЛЮЧАЮЩЕЕ ИЛИ (C3 = «SPIELBERG»)= XOR (C3 = «SpieLbErG») |
Кроме того, XOR не поддерживает подстановочные знаки. Итак, если вы использовали следующую формулу:
XOR будет искать точное совпадение с текстовой строкой «Spiel *».
Сравнение чисел
При сравнении чисел в вашем распоряжении ряд операторов сравнения. Эти:
Если выражение в функции XOR оценивается как ненулевое число, XOR интерпретирует этот логический тест как TRUE. Если выражение равно или оценивается как 0, XOR оценивает это как ложное. Это показано ниже:
Использование XOR с IF
XOR часто используется как часть логической проверки в операторе IF. По сути, IF позволяет вам настроить возвращаемое значение теста XOR. Поэтому вместо того, чтобы просто говорить «ИСТИНА» или «ЛОЖЬ», вы можете вернуть что угодно — текст, числа или даже другую формулу.
Возвращаясь к нашему предыдущему примеру с бонусом в спорт-баре, вы можете использовать его так:
1 | = ЕСЛИ (XOR (C3> = 800, D3> = 800), «Да», «Нет») |
ЕСЛИ сначала оценивает функцию XOR. Если он оценивается как ИСТИНА, он возвращает «Да». Если он оценивается как ЛОЖЬ, он возвращает «Нет».
Я также добавил оператор IF к формуле «Полный бонус» в столбце E, в котором использовалась функция AND, а не XOR.
Такое сочетание IF с логическими функциями может помочь сделать наши данные немного удобнее для человеческого глаза.
Подробнее читайте на главной странице о функции ЕСЛИ в Excel <>.
XOR в Google Таблицах
Функция XOR работает в Google Таблицах точно так же, как и в Excel:
Дополнительные замечания
Используйте функцию XOR, чтобы проверить, выполняется ли одно и только одно условие. Каждое условие должно быть логическим выражением (например, a1> 5), ссылкой на ячейку, содержащую ИСТИНА или ЛОЖЬ, или массивом, содержащим все логические значения. Если один и только один условия ИСТИНА, формула возвращает ИСТИНА, в противном случае возвращается ЛОЖЬ.
XOR — это логическая функция и обычно используется вместе с другой логической функцией IF:
Формула IF выполняет одно действие, если условие истинно, и другое, если условие — ЛОЖЬ. Часто при использовании функции ИЛИ вы «вкладываете» ее в функцию ЕСЛИ.
Вы также можете использовать эти другие логические функции:
Функция И проверяет, если все условия соблюдены.
ИЛИ Формулы проверяют, если один или больше условие соблюдены.
Вернуться к списку всех функций в Excel
В этой статье мы рассмотрим основные операторы языка VBA, которые отвечают за арифметические операции, операции сравнения и присвоения, а также конкатенации.
Давайте приступим к небольшому теоретическому изложению.
Содержание
- Арифметические операторы языка VBA
- Оператор присвоения языка VBA
- Операторы сравнения языка VBA
- VBA логические операторы
- VBA операторы конкатенации
Арифметические операторы языка VBA
Арифметических операторов VBA есть всего семь, фактически, они позволяют выполнять основные арифметические операции:
- Сложение (+) – собственно, суммирование двух значений
- Вычитание (-) – вычитание двух операндов, операнд – это элемент, который участвует в вычислении.
- Умножение (*) – отвечает за умножение одного операнда на другой
- Деление (/) – отвечает за деление одного значения на другое, в итоге можем получить как целое так и вещественное число
- Возведение в степень (^) – данный оператор должен быть знакомым всем, кто осваивал еще в школе старый добрый Basic.
- Целочисленное деление () – позволяет произвести первого операнда на другой, при этом, будет отброшена дробная часть, если она существует, не стоит путать с округлением.
- Деление по модулю (Mod) – при делении вернет остаток от деления
Оператор присвоения языка VBA
Собственно, ничего сложно, просто знак равенства после имени переменной, после знака равенства идет присваиваемое значение, неважно, это может быть число, дата, строка и так далее.
Примеры:
Let MyVar=100 или, аналогично, MyVar=100
Тут мы переменной MyVar присваиваем целое число 100.
Операторы сравнения языка VBA
Данный тип операторов VBA используется при сравнении условий, например, в условном операторе.
- Равенство (=) – проверка условия, равна ли переменная заданному значению
- Больше (>) или меньше (<) – позволяет проверить значение переменной на предмет, больше оно или меньше заданного параметра
- Не равно (<>) – условие типа, если переменная не равна заданному значению
- Сравнение объектов (is) – данный оператор vba позволяет проверять переменные-объекты, переменные-объекты – переменные, которые хранят не значение, а ссылку на объект. То есть, ссылаются ли заданные переменные на заданный объект, если да, то операция вернет логическое true.
- Подобие (Like) – позволяет произвести сравнение строкового объекта с заданным шаблоном и проверить, будет ли подходить заданный объект.
Стоит всегда помнить, что vba операторы сравнения всегда возвращают логические true (истина) или false (ложь). При произведении сравнения строк, их регистр будет учитываться, пробелы также учитываются. В процессе сравнения текстовых строк на предмет больше или меньше, происходит простое сравнивание двоичных кодов символов, который больше, а который меньше, если же надо учитывать алфавитный порядок, то используется выражение Option Compare Text.
Для оператора сравнения VBA – Like, как уже говорилось, надо прописать два выражения, первое – это тестовая строка, а второе – шаблон. Шаблон может содержать следующие подстановочные знаки:
- # — одиночная цифра от 0 до 9
- * — абсолютно любое количество любых символов, в том числе и нулевой
- ? – одиночный любой символ
- [a,b,c] – в данном случае любой одиночный символ из заданного списка, тут a, b или c
- [!a,b,c] – в данном случае любой одиночный символ, которого нет в заданном списке
VBA логические операторы
Логические операторы VBA позволяют проверять сразу несколько условий.
- AND — логическое И, то есть, оба условия должны выполниться
- OR — логическое ИЛИ, то есть, должно произойти выполнение хотя бы одного условия
- NOT — логическое НЕ, оно вернет TRUE, если проверяемое условие является ложным
- XOR — логическое ИСКЛЮЧАЮЩЕЕ ИЛИ, то есть, вернет true, только если один из операндов равен true, если оба равны true, то условие вернет false.
- EQV – эквивалентность двух значений
- IMP — импликация, вернет FALSE, если A1 = TRUE и A2 = FALSE, в противном случае, вернет TRUE.
VBA операторы конкатенации
& — данный оператор производит склейку двух строк или даже значений, при чем, числовые значения автоматически преобразуются в строки.
+ — данный оператор при сложении строки и значения Null (пустое значение) вернет Null, поэтому, для склейки предпочтительней использовать &.
Порядок применения операторов VBA следующий:
- арифметические
- конкатенации,
- сравнения
- логические
Использование круглых скобок позволяет регулировать порядок выполнения, собственно, как и в математике.