Возможность проведения логических проверок в ячейках является мощным инструментом. Вы найдете бесконечное количество применений для ЕСЛИ() в ваших повседневных документах. Проблема заключается в том, что часто необходимые проверки выходят за рамки возможностей простой функции ЕСЛИ(). Это происходит, когда необходимо сделать проверку на два и более условия до принятия результата.
Для таких случаев в Excel предусмотрено несколько вариантов: использование ЕСЛИ() внутри другого ЕСЛИ(), функции И() и ИЛИ(). Далее мы познакомимся с этими способами.
Использование ЕСЛИ() внутри другой функции ЕСЛИ()
Давайте рассмотрим вариант на основе изученной ранее функции =ЕСЛИ(А1>1000;"много"; "мало")
. Что если вам необходимо вывести другую строку, когда число в А1 является, например, большим, чем 10.000? Другими словами, если выражение А1>1000 верно, вы захотите запустить другую проверку и посмотреть, верно ли, что А1>10000. Такой вариант вы можете создать, применив вторую функцию ЕСЛИ() внутри первой в качестве аргумента значение _если_истина: =ЕСЛИ(А1>1000;ЕСЛИ(А1>10000;"очень много"; "много");"мало")
.
Если А1>1000 является истинным, запускается другая функция ЕСЛИ(), возвращающая значение «очень много», когда А1>10000. Если же при этом А1 меньше или равно 10000, возвращается значение «много». Если же при самой первой проверке число А1 будет меньше 1000, выведется значение «мало».
Обратите внимание, что с таким же успехом вы можете запустить вторую проверку, в случае если первая будет ложной (то есть в аргументе значение_если_ложь функции еслио ). Вот небольшой пример, возвращающий значение «очень мало», когда число в А1 меньше 100: =ЕСЛИ(А1>1000;"много";ЕСЛИ(А1<100;"очень мало"; "мало"))
.
Расчет бонуса с продаж
Хорошим примером использования одной проверки внутри другой проверки является расчет бонуса с продаж персоналу. который работает в Клуб — отель Гелиопарк Талассо, Звенигород. В данном случае, если значение равно X, вы хотите получить один результат, если У — другой, если Z — третий. Например, в случае вычисления бонуса за успешные продажи возможны три варианта:
- Продавец не достиг планового значения, бонус равен 0.
- Продавец превысил плановое значение менее чем на 10%, бонус равен 1 000 рублей.
- Продавец превысил плановое значение более чем на 10%, бонус равен 10 000 рублей.
Вот формула для расчета такого примера: =ЕСЛИ(Е3>0;ЕСЛИ(Е3>0.1;10000;1000);0)
. Если значение в Е3 является отрицательным, то возвращается 0 (нет бонуса). В случае когда результат положительный, проверяется, больше ли он 10%, и в зависимости от этого выдается 1 000 или 10 000. Рис. 4.17 показывает пример работы формулы.
Функция И()
Часто бывает необходимо провести проверку только на верность одновременно двум условиям. Например, выплата бонуса осуществляется, только когда продажи определенного товара превысили план и также общие продажи превысили план. Если одно из данных условий не выполняется (или оба условия), премия не выплачивается. В булевой логике это называется логическим И, поскольку оба условия должны быть истинны для истинности всего выражения.
В Excel выражения логического И обрабатываются с помощью функции И(): И(логическое_значение1;логическое_значение2;…). Каждый аргумент представляет собой логическое значение для проверки. Вы можете ввести столько аргументов, сколько вам необходимо.
Еще раз отметим работу функции:
- Если все выражения возвращают ИСТИНА (или любое положительное число), И() возвращает ИСТИНА.
- Если один или более аргументов возвращают ЛОЖЬ (или 0), И() возвращает ЛОЖЬ.
Чаще всего И() применяется внутри функции ЕСЛИ(). В таком случае, когда все аргументы внутри И() вернут ИСТИНА, функция ЕСЛИ() пойдет по своей ветке значение если истина. Если одно или более из выражений в И() вернет ЛОЖЬ, функция ЕСЛИ() пойдет по ветке значение_если_ложь.
Вот небольшой пример: =ЕСЛИ(И(С2>0;В2>0);1000;"нет бонуса")
. Если значение в В2 будет больше нуля и значение в С2 будет больше нуля, формула вернет 1000, в противном случае выведется строка «нет бонуса».
Разделение значений по категориям
Полезным применением функции и () является разделение по категориям в зависимости от значения. Например, у вас имеется таблица с результатами какого-то опроса или голосования, и вы хотите разделить все голоса на категории в соответствии со следующими возрастными рамками: 18-34,35-49, 50-64,65 и более. Предполагая, что возраст респондента находится в ячейке В9, следующие аргументы функции и () проводят логическую проверку на принадлежность возраста диапазону: =И(В9>=18;В9<=34)
.
Если ответ человека находится в ячейке С9, следующая формула выведет результат голосования человека, если срабатывает проверка на соответствие возрастной группе 18-34: =ЕСЛИ(И(В9>=18;В9<= 34);С9;"")
. На рис. 4.18 вы видите определенную информацию по данному примеру. Вот формулы, использующиеся в других столбцах:
- 35-49: =ЕСЛИ(И(В9>=35;В9<=49);С9;””)
- 50-64: =ЕСЛИ(И(В9>=50;В9<=64);С9;””)
- 65+: =ЕСЛИ(В9>=65;С9;«”)
Функция ИЛИ()
Существуют ситуации, когда вам необходимо решение, только когда одно из условий принимает положительное значение (ИСТИНА). Например, вы можете решить выплатить бонус сотрудникам, когда общие продажи превышают план или когда продажи отдельного товара превысили прогноз. В булевой логике это называется логическим ИЛИ.
Такие условия проверяются в Excel с помощью функции ИЛИ(): ИЛИ(логическое_значение1; логическое_значение2;…). Каждый аргумент представляет собой логическое значение для проверки. Вы можете ввести столько аргументов, сколько вам необходимо. Результат работы ИЛИ() зависит от следующих условий:
- Если один аргумент или более возвращает ИСТИНУ (любое положительное число), ИЛИ() возвращает ИСТИНУ.
- Если все аргументы возвращают ЛОЖЬ (нулевое значение), результатом работы ИЛИ() будет ЛОЖЬ.
Так же как и И(), чаще всего функция ИЛИ() используется внутри проверки ЕСЛИ(). В таком случае, когда один из аргументов внутри ИЛИ() вернет ИСТИНА, функция ЕСЛИ() пойдет по своей ветке значение_если_истина. Если все выражения в ИЛИ() вернут ЛОЖЬ, функция ЕСЛИ() пойдет по ветке значение_если_ложь. Вот небольшой пример: =ЕСЛИ(ИЛИ(С2>0;В2>0);1000;"нет бонуса")
.
В случае когда в одной из ячеек (С2 или В2) будет положительное число, функция вернет 1000. Только когда оба значения будут отрицательны (или равны нулю), функция вернет строку «нет бонуса».