Всех приветствую на новом уроке. Сегодня мы поговорим про логические функции в Excel. Это очень важная тема, которая помогает существенно сэкономит время при работе с большими таблицами и данными. Она поможет автоматизировать некоторые процессы вычисления. Сразу хочу вас предупредить – тема достаточно сложная. Будьте готовы перечитывать эту статью несколько раз. Я вам советую взять обычный лист бумаги, карандаш или ручку. Все логические функции и задачи повторяйте вместе с мной.
Если что-то из статьи вам не понятно – вы можете обратиться ко мне в комментариях. Но я все же советую еще раз перечитать не понятный кусок из текста ниже. Мне самому лично приходилось раз 5-6 перечитывать некоторые моменты, когда я обучался этому в школе. Но как только поймете основы логики, и сможете примерно представлять себе некоторые части задач – далее все пойдет как по маслу. Обязательно сохраните эту статью в закладках, чтобы обращаться к ней, как к шпаргалке.
Список операторов
В отличие от классического программирования, в Excel есть еще парочка дополнительных операторов. Давайте рассмотрим список всех:
- ИСТИНА
- ЛОЖЬ
- ЕСЛИ
- ЕСЛИОШИБКА
- ИЛИ
- И
- НЕ
- ЕОШИБКА
- ЕПУСТО
Обратите внимание, на первые два оператора. Когда я занимался еще программированием на С#, в бородатые годы, я не припомню, что бы там были точные операторы типа «ИСТИНА» и «ЛОЖЬ», кроме 1 и 0, или NULL и какого-то значения. В Excel оба эти операторы не имеют аргументов и их аналогично можно использовать, как и в программировании, чтобы в логической задаче дополнительно вставлять точные значения «ИСТИНА» и «ЛОЖЬ». Но как в классическом программировании вместо них можно использовать 1 и 0. Давайте теперь разберем каждый из операторов поподробнее.
ИСТИНА и ЛОЖЬ
Начнем, пожалуй, с самого начала, а именно, как записывается логическая команда в Excel? – записывается она как обычная функция, которая начинается со знака равно (=). Вы можете вставить её двумя способа:
- Вписать функцию вручную.
- Или использовать кнопку вставки функций (fx), которая находится левее строки значения ячейки.
У функций «ИСТИНА» и «ЛОЖЬ» нет аргументов, а значит скобки, которые вы должны обязательно ставить после любой функции – будут пустыми. Для чего же нужны эти пустые логические функции? – на самом деле их применяют достаточно часто, но рассказывать про них особо смысла нет, вы все поймете, когда мы будем разбирать конкретный пример в самом конце.
И и ИЛИ
Оба оператора имеют два аргумента – то есть они принимают два значения информации. Давайте коротко вспомним, как вообще работают эти операторы и начнем с «И».
Оператор И – возвращает ИСТИНУ только тогда, когда все аргументы имеют правдивые значения. Пока ничего не понятно? – давайте рассмотрим все возможные варианты ответа, если мы будем применять эту функцию для двух значений. Для удобства чтения давайте вместо ИСТИНЫ мы возьмем единицу (1), а вместо значения ЛОЖЬ – ноль (0):
1 И 1 = 1
1 И 0 = 0
0 И 1 = 0
0 И 0 = 0
Оператор ИЛИ – принимает значение ИСТИНА, если хотя бы один из аргументов правдивый.
1 ИЛИ 0 = 1
1 ИЛИ 0 = 1
0 ИЛИ 1 = 1
0 ИЛИ 0 = 0
Как вы могли заметить из скриншотов выше, в Excel можно использовать сколько угодно логических значений. Проще всего делать вставку через окно функции. Но вы можете вписывать значения вручную через знак точки с запятой:
ИЛИ(Логические_значение1; Логические_значение2; Логические_значение3;…)
НЕ
НЕ – это логическое отрицание, или некая инверсия ваших логических значений. Возвращает ответ обратный по логике. То есть – если была ЛОЖЬ, то возвращает ИСТИНУ и наоборот.
НЕ 1 = 0
НЕ 0 = 1
ЕСЛИ
Оператор ЕСЛИ работает как с аргументами, так и с выводом определенной информации при удовлетворении, или наоборот не удовлетворении условия. Проще всего разобрать на конкретном примере. Давайте попробуем использовать функцию в табличке с возрастом. Наша задача вывести в столбец «Зрелость» два значения, «Совершеннолетний» или «Несовершеннолетний». Для этого мы будем использовать столбец «Возраст». Вставляем функцию ЕСЛИ() и открываем окно ввода аргументов.
Лог_выражение – сюда мы вводим логическое выражение. Мы будем использовать адрес столбца «Возраст». Кликаем по нужной ячейке или вводим адрес вручную. Для сравнения вы можете использовать знаки:
< (Меньше)
> (Больше)
>= (Больше либо ровно)
<= (Меньше либо ровно)
Как они работают, я думаю вы помните из уроков в школе. И логическое выражение по определению зрелости будет достаточно простым:
Возраст < 18
Далее нам нужно заполнить еще два аргумента:
- Значение_если_истина
- Значение_если_ложь
То, что вы впишите в поля, будет выводиться в таблицу в том или ином случае. В итоге логическая формула:
=ЕСЛИ(B2<18;”Совершеннолетний”;”Несовершеннолетний”)
Выводит значение совершеннолетия граждан, описанных в табличке. С помощью маркера автозаполнения копируем формулу с измененным адресом ячейки.
Читаем – что такое маркер автозаполнения и как им пользоваться.
ЕСЛИОШИБКА
Эта функция возвращает значение из аргумента, указанного пользователем, если функция вернула любую из ошибок Excel программы. Например, если вы попытались поделить на ноль в этом месте. Если же ошибки нет, то возвращает обычное значение.
Для чего эта функция нужна? – чаще для того, чтобы быстро найти ошибку. Давайте для примера попробуйте автоматически поделить числа.
В итоге при использовании маркера автозаполнения и делении на ноль – мы видим ошибку. Конечно, пример достаточно грубый, так как Excel сама выводит ошибку при неправильных подсчетах:
- #Н/Д
- #ЗНАЧ
- #ЧИСЛО!
- #ДЕЛ/0!
- #ССЫЛКА!
- #ИМЯ?
- #ПУСТО!
ЕОШИБКА
Функция возвращает ИСТИНА, если в ячейке (или в списке ячеек) есть ошибка. Список ошибок можно посмотреть выше. Давайте возьмем предыдущий пример, только в столбце «Частное» теперь просто выводится обычное деление без применения «ЕСЛИОШИБКА()». Применив функцию ЕОШИБКА – она возвращает ИСТИНА, так как в последней строчке у нас есть ошибка деления на ноль.
ЕПУСТО
Возвращаем ИСТИНУ, если выделенная ячейка пустая. Тут очень важно отметить, что она действительно должна быть пустой, без ошибок и значения ноль (0). Минус этой функции в том, что она не работает со списком ячеек. То есть если вы впишите, например:
=ЕПУСТО(C2-C12)
То в ответ получите:
ЛОЖЬ
Так как она работает по принципу функции И – то есть, выбранная ячейка (или все ячейки), должны быть пустыми. Если хотя бы одна имеет значение, ошибку или ноль (0), то возвращается ЛОЖЬ.
Пример
Представим себе, что у нас есть таблица с сотрудниками компании. Наша задача подсчитать премию, которая положена каждому из работников. У нас есть два вида премии:
- 500 – обычная премия, которая выдается всем работникам.
- 1500 – повышенная премия, положенная женщинам и пенсионерам, которые родились до 1980 года.
Если сотрудник новый и проработал в компании меньше 30 дней, то ему премия не положена.
Теперь по частям давайте разберем формулу, которую мы будем применять. Ориентируйтесь на скриншот ниже.
=ЕСЛИ(ИЛИ(C2<1980;B2=”ж”)*(НЕ(D2<30));1500;500)
Я вам настоятельно рекомендую добавить её вручную, а не копировать у меня. Так как нам нужно вывести значение, мы будем использовать:
ЕСЛИ(…;1500;500)
А теперь давайте заполним логическое выражение. У нас есть задача выдать премию женщинам или сотрудникам с датой рождения до 1980 года – для этого мы используем ИЛИ:
ИЛИ(C2<1980;B2=”ж”)
Обратите внимание на сравнение ячейки пола. Здесь мы используем строковое значение “ж”, которое обязательно должно быть в кавычках. Если же вы используете сравнение с цифрами или числами, то кавычки не нужны. Читается строка достаточно просто:
Если у сотрудника дата рождения меньше 1980 ИЛИ он является женщиной, то…
Возвращается «ИСТИНА», ну или выполняется какое-то условие по ЕСЛИ. Но мы не забываем, что нам нужно, чтобы сотрудник обязательно проработал в компании больше 30 дней. Для этого мы добавляем еще одно условие:
НЕ(D2<30)
Это условие будет возвращать ЛОЖЬ, если сотрудник проработал больше 30 дней. Нам нужно эту ЛОЖЬ с помощью НЕ переделать в ИСТИНУ. То есть если работник, уже проработал больше месяца, значит возвращаем ИСТИНУ. Вы могли заметить, что эту дополнительную функцию мы перемножаем с помощью обычного знака (*) – так делать можно. При этом этот знак умножения (*) работает так же как логическое И.
Теперь вы знаете как работают логические функции в Эксель и какой результат возвращает правильное логическое выражение. Тут сложность состоит в том, чтобы всегда держать в голове сразу несколько переменных с логическими выводами.
Добрый день, таблицу истинности “ИЛИ” проверьте, все ли соответствует тому, что написано текстом. Хотя бы один аргумент истинный .
Спасибо, что сказали. Исправил.
Спасибо вроде все понятно теперь.
Вроде что-то припоминаю из уроков информатики в 11 классе подобное было. Даже задачи решали. Пробую освежить память.