Функции Excel ЕСЛИ (IF) и ЕСЛИМН (IFS) для нескольких условий
Логическая функция ЕСЛИ в Экселе – одна из самых востребованных. Она возвращает результат (значение или другую формулу) в зависимости от условия.
Функция ЕСЛИ в Excel
Функция имеет следующий синтаксис.
ЕСЛИ(лог_выражение; значение_если_истина; [значение_если_ложь])
лог_выражение – это проверяемое условие. Например, A2<100. Если значение в ячейке A2 действительно меньше 100, то в памяти эксель формируется ответ ИСТИНА и функция возвращает то, что указано в следующем поле. Если это не так, в памяти формируется ответ ЛОЖЬ и возвращается значение из последнего поля.
значение_если_истина – значение или формула, которое возвращается при наступлении указанного в первом параметре события.
значение_если_ложь – это альтернативное значение или формула, которая возвращается при невыполнении условия. Данное поле не обязательно заполнять. В этом случае при наступлении альтернативного события функция вернет значение ЛОЖЬ.
Очень простой пример. Нужно проверить, превышают ли продажи отдельных товаров 30 шт. или нет. Если превышают, то формула должна вернуть «Ок», в противном случае – «Удалить». Ниже показан расчет с результатом.
Продажи первого товара равны 75, т.е. условие о том, что оно больше 30, выполняется. Следовательно, функция возвращает то, что указано в следующем поле – «Ок». Продажи второго товара менее 30, поэтому условие (>30) не выполняется и возвращается альтернативное значение, указанное в третьем поле. В этом вся суть функции ЕСЛИ. Протягивая расчет вниз, получаем результат по каждому товару.
Однако это был демонстрационный пример. Чаще формулу Эксель ЕСЛИ используют для более сложных проверок. Допустим, есть средненедельные продажи товаров и их остатки на текущий момент. Закупщику нужно сделать прогноз остатков через 2 недели. Для этого нужно от текущих запасов отнять удвоенные средненедельные продажи.
Пока все логично, но смущают минусы. Разве бывают отрицательные остатки? Нет, конечно. Запасы не могут быть ниже нуля. Чтобы прогноз был корректным, нужно отрицательные значения заменить нулями. Здесь отлично поможет формула ЕСЛИ. Она будет проверять полученное по прогнозу значение и если оно окажется меньше нуля, то принудительно выдаст ответ 0, в противном случае — результат расчета, т.е. некоторое положительное число. В общем, та же логика, только вместо значений используем формулу в качестве условия.
В прогнозе запасов больше нет отрицательных значений, что в целом очень неплохо.
Формулы Excel ЕСЛИ также активно используют в формулах массивов. Здесь мы не будем далеко углубляться. Заинтересованным рекомендую прочитать статью о том, как рассчитать максимальное и минимальное значение по условию. Правда, расчет в той статье более не актуален, т.к. в Excel 2016 появились функции МИНЕСЛИ и МАКСЕСЛИ. Но для примера очень полезно ознакомиться – пригодится в другой ситуации.
Формула ЕСЛИ в Excel – примеры нескольких условий
Довольно часто количество возможных условий не 2 (проверяемое и альтернативное), а 3, 4 и более. В этом случае также можно использовать функцию ЕСЛИ, но теперь ее придется вкладывать друг в друга, указывая все условия по очереди. Рассмотрим следующий пример.
Нескольким менеджерам по продажам нужно начислить премию в зависимости от выполнения плана продаж. Система мотивации следующая. Если план выполнен менее, чем на 90%, то премия не полагается, если от 90% до 95% — премия 10%, от 95% до 100% — премия 20% и если план перевыполнен, то 30%. Как видно здесь 4 варианта. Чтобы их указать в одной формуле потребуется следующая логическая структура. Если выполняется первое условие, то наступает первый вариант, в противном случае, если выполняется второе условие, то наступает второй вариант, в противном случае если… и т.д. Количество условий может быть довольно большим. В конце формулы указывается последний альтернативный вариант, для которого не выполняется ни одно из перечисленных ранее условий (как третье поле в обычной формуле ЕСЛИ). В итоге формула имеет следующий вид.
Комбинация функций ЕСЛИ работает так, что при выполнении какого-либо указанно условия следующие уже не проверяются. Поэтому важно их указать в правильной последовательности. Если бы мы начали проверку с B2<1, то условия B2<0,9 и B2<0,95 Excel бы просто «не заметил», т.к. они входят в интервал B2<1 который проверился бы первым (если значение менее 0,9, само собой, оно также меньше и 1). И тогда у нас получилось бы только два возможных варианта: менее 1 и альтернативное, т.е. 1 и более.
При написании формулы легко запутаться, поэтому рекомендуется смотреть на всплывающую подсказку.
В конце нужно обязательно закрыть все скобки, иначе эксель выдаст ошибку
Функция Excel ЕСЛИМН
Функция Эксель ЕСЛИ в целом хорошо справляется со своими задачами. Но вариант, когда нужно записывать длинную цепочку условий не очень приятный, т.к., во-первых, написать с первого раза не всегда получается (то условие укажешь неверно, то скобку не закроешь); во-вторых, разобраться при необходимости в такой формуле может быть непросто, особенно, когда условий много, а сами расчеты сложные.
В MS Excel 2016 появилась функция ЕСЛИМН, ради которой и написана вся эта статья. Это та же ЕСЛИ, только заточенная специально для проверки множества условий. Теперь не нужно сто раз писать ЕСЛИ и считать открытые скобки. Достаточно перечислить условия и в конце закрыть одну скобку.
Работает следующим образом. Возьмем пример выше и воспользуемся новой формулой Excel ЕСЛИМН.
Как видно, запись формулы выглядит гораздо проще и понятнее.
Стоит обратить внимание на следующее. Условия по-прежнему перечисляем в правильном порядке, чтобы не произошло ненужного перекрытия диапазонов. Последнее альтернативное условие, в отличие от обычной ЕСЛИ, также должно быть обязательно указано. В ЕСЛИ задается только альтернативное значение, которое наступает, если не выполняется ни одно из перечисленных условий. Здесь же нужно указать само условие, которое в нашем случае было бы B2>=1. Однако этого можно избежать, если в поле с условием написать ИСТИНА, указывая тем самым, что, если не выполняются ранее перечисленные условия, наступает ИСТИНА и возвращается последнее альтернативное значение.
Теперь вы знаете, как пользоваться функцией ЕСЛИ в Excel, а также ее более современным вариантом для множества условий ЕСЛИМН.
Имеется таблица, создавалась в EXCEL 2019, в которой формула с ЕСЛИМН прекрасно работает, но этой таблицей так же пользуются на компах с EXCEL 2007 и выше, которые ЕСЛИМН не поддерживают, помогите пожалуйста переделать формулу в ЕСЛИ, с одной справился сам, а с этой никак.
Имеется таблица, создавалась в EXCEL 2019, в которой формула с ЕСЛИМН прекрасно работает, но этой таблицей так же пользуются на компах с EXCEL 2007 и выше, которые ЕСЛИМН не поддерживают, помогите пожалуйста переделать формулу в ЕСЛИ, с одной справился сам, а с этой никак.
Я не волшебник, я только учусь
Сообщение Добрый день.
Имеется таблица, создавалась в EXCEL 2019, в которой формула с ЕСЛИМН прекрасно работает, но этой таблицей так же пользуются на компах с EXCEL 2007 и выше, которые ЕСЛИМН не поддерживают, помогите пожалуйста переделать формулу в ЕСЛИ, с одной справился сам, а с этой никак.
Функция ЕСЛИ в EXCEL
Функция ЕСЛИ() относится к наиболее часто используемым функциям. Поэтому рассмотрим ее подробно.
Синтаксис функции
ЕСЛИ(лог_выражение;значение_если_истина;[значение_если_ложь])
Функция имеет 3 аргумента.
Лог_выражение — любое значение или выражение, принимающее значения ИСТИНА или ЛОЖЬ. Например, выражение A1>100. Если в ячейке А1 содержится значение 102, то выражение A1>100 вернет ИСТИНА, т.к. 102>100. Если в ячейке А1 содержится значение 88, то выражение вернет ЛОЖЬ, т.к. неравенство 88>100 неверно. Полностью формула может выглядеть так =ЕСЛИ(A1>100;»Бюджет проекта превышен»;»ОК!») Если в ячейке A1 содержится значение большее 100, то формула вернет текстовое значение Бюджет проекта превышен, а если меньше 100 или равное 100, то будет выведено ОК!
Других значений кроме ИСТИНА или ЛОЖЬ логическое выражение вернуть не может. Любое число кроме 0 в первом аргументе будет преобразовано в ИСТИНА, ноль — в ЛОЖЬ. Если ошибочно будет указано текстовое значение, то функция вернет ошибку #ЗНАЧ!.
Примечание : Ошибка #ЗНАЧ! может быть также из-за ошибок в выражениях указанных во втором и третье аргументе.
Второй аргумент — Значение_если_истина и третий аргумент значение_если_ложь
Как было показано выше, если логическое выражение (первый аргумент функции) принимает значение ИСТИНА, то функция возвращает значение из второго аргумента значение_если_истина. Соответственно, если логическое выражение принимает значение ЛОЖЬ, то функция возвращает значение из третьего аргумента значение_если_ложь .
Второй и третий аргумент могут быть любым значением (число или текст) или являться выражением (формулой с функциями). Например формула =ЕСЛИ(A1>100;0;А1*1%) позволяет вычислять премию для проектов, в которых не было превышения бюджета (>100). Если бюджет превышен (в А1 введено значение 200 или любое другое более 100), то формула вернет 0, если в А1 введено значение менее 100, то будет вычислено значение премии А1*1% (т.е. если в А1 число 90, то формула вернет 0,9).
Если в качестве второго и третьего аргументов введено выражение, то оно может содержать и функции, например: =ЕСЛИ(A1>100;СУММ(B1:B10);СУММ(C1:C10)) Т.е. если в ячейке A1 содержится значение >100, то суммирование ведется по столбцу B , а если меньше или равно 100, то по столбцу С . Не забывайте, что при значении А1 = 100 в данном случае будет срабатывать выражение из аргумента значение_если_ложь.
Аргумент значение_если_ложь можно опустить (не вводить), тогда при значении логического выражения =ЛОЖЬ будет выведено ЛОЖЬ. Например, если в А1 содержится 600, то формула =ЕСЛИ(A1>=1000;»Больше или равно 1000″) вернет просто ЛОЖЬ. Понятно, что при значении логического выражения =ИСТИНА будет выведено «Больше или равно 1000», т.е. второй аргумент функции ЕСЛИ() — Значение_если_истина.
Вложенные ЕСЛИ (несколько условий)
Для построения более сложных проверок в одной формуле можно использовать несколько функций ЕСЛИ(). Для этого в качестве значений аргументов значение_если_истина и значение_если_ложь введите еще одно условие с функцией ЕСЛИ(). Например, для проверки в какой диапазон попадает значение из ячейки А8 запишите формулу
- Если значение из ячейки А8 менее 5, то будет выведено 1
- Если значение из ячейки А8 более 10, то будет выведено 3
- Если значение из ячейки А8 между 5 и 10 (включая 5 и 8), то будет выведено 2
Примечание : В версии EXCEL 2007 можно использовать до 64 вложенных друг в друга функций ЕСЛИ(). Но, пожалуйста, не делайте так. Такой подход чреват ошибками.
Примечание : Формулу =ЕСЛИ(A8 10;3;2)) можно переписать как =ЕСЛИ(A8>=5;ЕСЛИ(A8>10;3;2);1) или ЕСЛИ(A8>=5;ЕСЛИ(A8>10;3;2);1)
или более сложный вариант =ЕСЛИ(A8
Формула =ЕСЛИ(A8 10;3;2)) работает следующим образом: сначала вычисляется логическое выражение A8 =5, то EXCEL переходит к вычислению выражения ЕСЛИ(A8>10;3;2). Опять сначала вычисляется логическое выражение A8>10. Если оно истинно, то выводится 3, вычисления завершены. Если оно ложно, то выводится 2, вычисления завершены.
Чтобы грамотно написать формулу с вложенными ЕСЛИ() следуйте следующим простым правилам:
1) Определитесь с диапазонами:
1.1) они не должны пересекаться. В примере выше — 3 диапазона и значение из А8 гарантированно попадет только в один из них. Было бы ошибкой написать формулу типа =ЕСЛИ(A8 10;3;ЕСЛИ(A8 10;3;2)) на интересует вся числовая ось от минус бесконечности до +бесконечности. И все 3 диапазона полностью покрывают эту область.
1.3.) Не забудьте ставить знак равно, чтобы при значениях А8 совпадающих с границами интервалов не было неправильных вычислений. Например, если в формуле =ЕСЛИ(A8>=5;ЕСЛИ(A8>10;3;2);1) забыть указать знак = в логическом выражении A8>=5, то при А8=5 формула =ЕСЛИ(A8>5;ЕСЛИ(A8>10;3;2);1) вернет 1, тогда как исходная формула вернет 2.
Примечание: В перечисленных выше случаях логические выражения вычисляются на основании одной переменной А8. Иногда нужно придумывать формулы с ЕСЛИ(), зависящие от 2-х и более ячеек: =ЕСЛИ(B8>=5;ЕСЛИ(A8>10;3;2);1). Это гораздо сложнее, но, конечно, возможно. Следуйте правилам 1.1)-1.3) и следите за диапазонами. Еще сложнее, если обе переменных являются зависимыми, т.е. например B8 вычисляется на основании А8. Написание таких формул требует предельной аккуратности и напрямую связано с корректностью формулирования самой задачи (возможно вы не продумали до конца как использовать такую сложную зависимость). Советую по возможности разбить вычисления на 2 или более формулы, чтобы проще контролировать результат вычисления.
2) Правильно записывайте логические выражения. Например, условие 5 10;3;2)) в строке формул можно записать как
Для этого поставьте курсор перед вторым ЕСЛИ(), нажмите и удерживайте клавишу ALT, нажмите ENTER.
4) для отладки вложенных ЕСЛИ вместо реальных вычислений (V8*10%-37500) используйте простые значения — последовательности 1; 2; 3 . Это покажет какой блок вложенных ЕСЛИ() срабатывает.
5) В ряде случаев от вложенных ЕСЛИ можно отказаться. Рассмотрим пример определения размера проекта от его бюджета
=ЕСЛИ(A1>=100;»Очень крупный проект»;
ЕСЛИ(A1>=90;»Крупный проект»;
ЕСЛИ(A1>=50;»Средний проект»;»Малый проект «)))
Вышеуказанную формулу можно усложнять и дальше, но есть другие подходы. Ниже приведено 2 эквивалентные формулы:
Для функции ВПР() необходимо создать в диапазоне A3:B6 таблицу значений:
Формула =ПРОСМОТР(A1;;) выглядит необычно, но по сути второй аргумент , как и третий аргумент это запись содержимого 4-х ячеек. Вместо можно записать ссылку на диапазон ячеек, содержащих 4 значения 0;50;90;100. Круглые скобки нужны, чтобы сообщить, что в функцию передается не одно значение, а целый массив.
Еще пример. Пусть требуется вывести разный текст (например » 0″) в случае наличия в ячейке А1 отрицательного значения, положительного значения или 0. Это можно сделать без вложенных ЕСЛИ():
Примечание : -1E+307 — это самое маленькое отрицательное число в EXCEL, 1E-307 — это самое маленькое положительное число. Таким образом задается 3 диапазона: от минус бесконечности до 0 (0 не включая); 0 (диапазон состоит только из одного значения 0); от 0 до +бесконечности (0 не включая).
Второй массив можно заменить ссылкой на диапазон, например для того чтобы вывести результат вычисления формул:
Диапазон A27:A29 должен, понятно, содержать формулы (см. файл примера).
Опущен третий аргумент [значение_если_ложь]
Третий аргумент функции не обязателен. Если логическое условие не выполнено, т.е. ЛОЖЬ, а третий аргумент функции не указан, то функция вернет также значение ЛОЖЬ. Например:
Если в ячейке A1 содержится значение 1, то вышеуказанная формула вернет значение ЛОЖЬ.
Сложные логические выражения
В аргументе Лог_выражение можно использовать как простые сравнения типа F1>10, так и более сложные конструкции на основе функций И(), ИЛИ(), НЕ() и их комбинаций.
Основное правило — логические функции и их комбинации возвращают только одно из 2х логических значений: ЛОЖЬ или ИСТИНА.
Приведем несколько полезных примеров.
Формула =ЕСЛИ(ИЛИ(A1;A2);0;2) проверяет одновременность равенства значений А1 и А2 нулю. Если оба значения равны 0, то формула вернет 2. Во всех других случаях будет возвращен 0. А1 и А2 не должны быть пустыми ячейками.
Формула =ЕСЛИ(ИЛИ(A1=0;A2=0);0;2) проверяет равенство 0 хотя бы одного значения из А1 и А2.
Формула =ЕСЛИ(НЕ(A1>0);1;2) эквивалентна формуле =ЕСЛИ(A1 10″) . Аналогичный результат (23) можно получить с помощью формулы массива =СУММ(ЕСЛИ(A6:A11>10;A6:A11)) (для ввода формулы в ячейку вместо ENTER нужно нажать CTRL+SHIFT+ENTER )
Теперь подсчитаем количество вхождений чисел больше 10 в диапазоне ячеек A6:A11 =СЧЁТЕСЛИ(A6:A11;»>10″) . Аналогичный результат (2) можно получить с помощью формулы массива =СЧЁТ(ЕСЛИ(A6:A11>10;A6:A11))
Теперь, когда принцип понятен, с помощью функции ЕСЛИ() можно конструировать и другие формулы с условиями. Например, нахождение минимального значения среди чисел больше 10: =МИН(ЕСЛИ(A6:A11>10;A6:A11))
dima_332211 Пользователь Сообщений: 4 |
Здравствуйте. Имеется макрос с формулами одна из которых — огромная «быдло» формула на ЕСЛИМН. С ужасом обнаружил что на компьютерах с 16м офисом она не работает, хотя в интернетах пишут что должна быть. Переписывать формулу на ЕСЛИ — совсем не вариант. Версия 1911, сборка 12228.20364. «Как сделать, что бы заработало?» (с) Спасибо. |
Александр Пользователь Сообщений: 1021 |
#2 24.12.2019 08:42:37
Прочтите правила. Файл-пример приложите пжл В жизни нет ничего невозможного! Есть только недостаток знаний и умений. |
||
dima_332211 Пользователь Сообщений: 4 |
Вопрос чисто технический — как заставить функцию ЕСЛИМН работать на 2016 офисе, и возможно ли это в принципе? На 2019м работает 100% |
БМВ Модератор Сообщений: 21380 Excel 2013, 2016 |
Блин в метро прочел как SUM/COUNTIFS . См ответ Дмитрия. Изменено: БМВ — 24.12.2019 09:27:15 По вопросам из тем форума, личку не читаю. |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#5 24.12.2019 09:13:26
и не будет, т.к. она есть только начиная с 2019 или по подписке офис 365. А в 2016 её нет. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
dima_332211 Пользователь Сообщений: 4 |
#6 24.12.2019 09:16:37 Проблема точно не в региональных настройкахязыке и тд. Просто мой Эксель не содержит в себе эти функции, даже в всплывающей подсказке нет такой функции.
Только вот как эту проблему решить — не понятно. Прикрепленные файлы
|
|
БМВ Модератор Сообщений: 21380 Excel 2013, 2016 |
#7 24.12.2019 09:42:48
значит или не стоит её пользовать, (особенно к указанной функции у меня вопрос о целесообразности её наличия и использования) все элементарно заменяется логическими контрукциями, или написать свою UDF, раз все равно работает макрос. По вопросам из тем форума, личку не читаю. |
||||
dima_332211 Пользователь Сообщений: 4 |
#8 24.12.2019 09:56:18 Ясно, спасибо, значит придется переделывать |
Как заменить ЕСЛИМН, если требуется использовать очень много условий?
Задача, решаемая этой формулой — подставить категорию продукта на основании первой буквы номенклатуры, т.е. Х — это Хлебобулочные, Б — это Бакалея и т.д. В принципе, всё работает.
Но если бы категорий было не 7, а 107, тогда этот способ не подошёл бы из-за неимоверной длины такой формулы.
У считаю, что есть формулы или связки формул, которые позволят отыскать в справочнике эту первую букву, и вернуть смещенное от неё на 1 значение, которое как раз и будет нашим искомым. Длина такой формулы будет сопоставима с тем, что у меня есть сейчас, но при увеличении количества категорий формула не будет изменяться, что очень хорошо.
Я предположил, что мне поможет в этом ПОИСКПОЗ и ДВССЫЛ, попытался применить, но тут что-то пошло не так, в общем, не могу теперь никак эту формулу в голове выстроить.
но эксель не считает по такой формуле — говорит слишком много аргументов.
А смысл в такой функции? Что нужно-то? Обычно применяют функцию И для аргументов. Лично я применяю умножение В виде: =ЕСЛИ ((условие1)*(условие2);если оба совпали; если хотя бы одно не совпало). И там хоть сотню условий внутри пиши!
ЕСЛИ (M9<=H9;0;ЕСЛИ (G9<M9<=H9;0,8+0,2/(H9-G9)*(M9-G9);ЕСЛИ (H9I9;1+0,5/((I9-H9)*(M9-H9)));ЕСЛИ (M9>I9;1,5)))
1) G9<M9<=H9
excel не понимает двойного неравенства
2) ваша формула не дописана
правильно так
И (G9<M9;M9<=H9)
или по формуле жирафа
2) у вашей формулы нет окончания . формула недописана
3) «. эксель говорит слишком много аргументов. «
если правильно записывать, то 64 вложения позволяет делать 13-ый офис
16-ый, возможно больше
P.S.
Озвучте ваше «Хочу» и мы поможем с формулой
помогите, очень нужно определить статус по последней дате в строке. Максимальную дату нашла, теперь по ней — отразить название соответствующей колонки
ЕСЛИМН в Excel
Добрый день, уважаемые читатели и подписчики канала. Сегодня мы поговорим о новых функциях Excel. Одной из полюбившихся мне — ЕСЛИМН.
Функция представляет собой привычную нам функцию ЕСЛИ, только без третьего аргумента — «Значение если ложь».
Зачем такой трюк? Всё просто — вспомним случай когда нужно учесть много условий. Приходилось звать функцию ЕСЛИ, указывать значение «Если истина», вкладывать следующую формулу ЕСЛИ и так до достижения нужного количества условий.
Вот тут и приходит на помощь функция ЕСЛИМН. Давайте взглянем на её синтаксис.
Нужно указать «логическое выражение» и «значение если истина». Всё.
Представим вот такую таблицу, где для каждого сотрудника нужно указать три условия для получения премии.
А теперь взглянем на формулу для этого столбца.
То есть нужно перечислить условия и результат их выполнения. Записывать можно как угодно, в рамках правил конечно же. Результат ниже.
В данном случае получается ошибка «Недопустимое значение». Она появилась из-за того, что не указана альтернатива — что будет если условие не выполняется. Это нормально. Воспользуемся помощью функции ЕСЛИОШИБКА.
В ней всего два аргумента — в первый (значение) подставим нашу формулу ЕСЛИМН, затем точку с запятой и 0, чтобы вместо ошибки нам показало его.
Протянув за маркер автозаполнения вниз — получим нужный результат и никаких зубодробительных конструкций из вложенных друг в друга функций!
Логические функции в excel с примерами их использования
Не принимает никаких аргументов и просто возвращает логическое значение «ИСТИНА».
Синтаксис: =ИСТИНА()
Функция ЛОЖЬ
Аналогична функции ИСТИНА, за исключением то, что возвращает противоположный результат ЛОЖЬ.
Синтаксис: =ЛОЖЬ()
Функция ЕСЛИОШИБКА
Предназначена для проверки возврата выражением ошибки. Если ошибка обнаружена, то она возвращает значение второго аргумента, иначе первого.
Функция принимает 2 аргумента, все они являются обязательными.
Синтаксис: =ЕСЛИОШИБКА(значение;значение_если_ошибка)
Пример использования функции:
В приведенном примере видно, что выражение в первом аргументе возвращает ошибку деления на ноль, но так как оно вложено в нашу функцию, то ошибка перехватывается и подменяется вторым аргументов, а именно строкой «Делить на ноль нельзя», которую мы ввели самостоятельно. Вместо данной строки могли бы быть другие функции, все зависит от поставленной перед Вами задачи.
Формула ЕСЛИ в Excel – примеры нескольких условий
Довольно часто количество возможных условий не 2 (проверяемое и альтернативное), а 3, 4 и более. В этом случае также можно использовать функцию ЕСЛИ, но теперь ее придется вкладывать друг в друга, указывая все условия по очереди. Рассмотрим следующий пример.
Нескольким менеджерам по продажам нужно начислить премию в зависимости от выполнения плана продаж. Система мотивации следующая. Если план выполнен менее, чем на 90%, то премия не полагается, если от 90% до 95% — премия 10%, от 95% до 100% — премия 20% и если план перевыполнен, то 30%. Как видно здесь 4 варианта. Чтобы их указать в одной формуле потребуется следующая логическая структура. Если выполняется первое условие, то наступает первый вариант, в противном случае, если выполняется второе условие, то наступает второй вариант, в противном случае если… и т.д. Количество условий может быть довольно большим. В конце формулы указывается последний альтернативный вариант, для которого не выполняется ни одно из перечисленных ранее условий (как третье поле в обычной формуле ЕСЛИ). В итоге формула имеет следующий вид.
Комбинация функций ЕСЛИ работает так, что при выполнении какого-либо указанно условия следующие уже не проверяются. Поэтому важно их указать в правильной последовательности. Если бы мы начали проверку с B2<1, то условия B2<0,9 и B2<0,95 Excel бы просто «не заметил», т.к. они входят в интервал B2<1 который проверился бы первым (если значение менее 0,9, само собой, оно также меньше и 1). И тогда у нас получилось бы только два возможных варианта: менее 1 и альтернативное, т.е. 1 и более.
При написании формулы легко запутаться, поэтому рекомендуется смотреть на всплывающую подсказку.
В конце нужно обязательно закрыть все скобки, иначе эксель выдаст ошибку
Основные операции
Создание формулы в Excel не сопровождается особыми сложностями, если пользователь полноценно освоит некоторые азы работы с табличным редактором. Начинать изучение этого офисного приложения лучше всего с тех вычислительных примеров, которые являются самыми простыми и максимально распространёнными. Это позволит понять суть и важные правила работы с табличным редактором.
Освоив простейшие азы, можно приступать к созданию логических формул.
Ведение простейших подсчётов
Для начала работы следует запустить само офисное приложение. Далее важно определиться, что должно посчитаться автоматически. Чаще всего к работе приступают, когда уже имеется числовая информация, на основе которой приходится осуществлять множественные операции при помощи калькулятора. Теперь эту счётную машинку нужно отложить в сторону и полностью довериться электронной таблице.
Запись любого числового выражения совершается со знака «=». Не выставив его, Excel воспримет введённый запрос, как текстовую запись, отобразит её, но не осуществить подсчёт.
Часто необходимо не просто осуществлять подсчёты, используя данные в таблице, а проводить анализ, сопровождаемый несколькими условиями. Опять-таки всё это проделывать самостоятельно вручную неразумно, когда имеются такие уникальные возможности Excel , способной выполнять любые требования пользователя.
В категории «Логические» самой распространённой является функция ЕСЛИ. Эта функция рассматривает предложенные варианты, а далее определяет, выполняется это условие или нет. Результат функции ЕСЛИ зависит от того, что в итоге желает видеть пользователь. А для того чтобы результат правильно отображался, следует знать, как задать условие в Excel.
Функция ЕСЛИ состоит из трёх аргументов:
- Логического (основного) выражения (требование, которое пользователь желает проверить в таблице);
- значения, отображающегося, если условие будет полностью соблюдаться;
- значения, если заданное требование не выдерживается.
Итак, можно попробовать создать простейшую вычислительную таблицу, взяв за основу пример, где главной будет логическая функция ЕСЛИ.
В частности, в ячейку А1 ввести числовой показатель «5», а в ячейку А2 показатель «8». Если пользователю необходимо сравнить два показателя и выдать автоматический итог произведённых действий, составляется выражение, которое, безусловно, начинается со знака «равно»: =ЕСЛИ(А1>А2; «Больше»; «Меньше»). После введения этой записи в любую свободную ячейку, нажатия Enter, в ней сразу будет демонстрироваться ответ. Если пользователь заменит значения в А1 или А2, то ответ также автоматически перестроится.
В тех случаях, когда важно выявить несовпадение двух показателей, введённых в соседние столбцы, первоначально нужно вникнуть, как в Excel правильно записать условие неравно, после чего создать запрос, используя логические функции. Знак «неравно» в Excel обозначается двумя операторами — «<>». Соответственно, нужно записать так: =ЕСЛИ(А1<>А2; «Значения разные»; «Значения одинаковые»).
Логический набор
Количество логических функций меняется в зависимости от версии программы. В приложении 2007 года их было 7, впоследствие добавилось еще несколько. Список доступных логических операций можно посмотреть так:
- зайти во вкладку «Формулы» на главной панели;
- кликнуть по иконке fx с надписью «Вставить формулу
Большинство имеют аргументы, задающие условия применения. Формат записи следующий: «=оператор(аргумент1;аргумент2…)». Логическая запись включает в себя знаки сравнения.
ИСКИЛИ
Появилась в версии программы 2013. Реализует операцию «Исключающее ИЛИ». Написание аналогично «И»: =ИСКЛИЛИ(логический_вопрос1;логический_вопрос2;…) и может иметь до 255 аргументов.
Если присутствует только 2 варианта действия, то общий результат будет «ИСТИНА» при наличии одного аргумента с таким же ответом. В этом работа «ИСКИЛИ» совпадает с «ИЛИ». Если оба решения получат ответ ИСТИНА или ЛОЖЬ, то итог будет ЛОЖЬ. Для пояснения приведена следующая таблица:
Исходные данные | Результат | Примечания |
---|---|---|
=ИСКЛИЛИ(3>0; 4<1) | ИСТИНА | В итоге ИСТИНА, потому что одно из значений ИСТИНА. |
=ИСКЛИЛИ(3<0; 4<1) | ЛОЖЬ | ЛОЖЬ, так как имеется 2 ответа ЛОЖЬ . |
=ИСКЛИЛИ(3>0; 4>1) | ЛОЖЬ | ЛОЖЬ, так как имеется 2 ответа ИСТИНА |
ЕСЛИМН (УСЛОВИЯ) и ПЕРЕКЛЮЧ
«ЕСЛИМН» и «ПЕРЕКЛЮЧ» появились в Excel 2016 и 2019 соответственно. Предназначены для облегчения составления формул, так как уменьшают количество вложений.
«ЕСЛИМН» ранее называлась «УСЛОВИЯ». Введение ее связано с попыткой облегчить работу при вложении нескольких «ЕСЛИ». Не надо писать несколько раз «ЕСЛИ» и открывать многочисленные скобки. Синтаксис: «=ЕСЛИМН(условие1; значение1;условие2; значение2;условиe3; значение3…)». Можно создать до 127 условий.
«ПЕРЕКЛЮЧ» имеет следующую структуру: «=ПЕРЕКЛЮЧ(значение для переключения; значение, которое должно совпасть1…[2–126]; значение, возвращаемое при совпадении1…[2–126]; значение, возвращаемое при отсутствии совпадений)».
Первый аргумент указывает на местоположение проверяемого выражения, остальные присваивают ячейке первую совпавшую величину.
Оформление и примеры использования
Алгоритм написания логических формул в Эксель следующий:
- Нужно выделить пустую ячейку, в которую будет записываться формула и выводиться результат действия.
Вписывать можно и в строке формул, после выделения ячейки. - Перед формулами в программе ставится знак «=». Поставить его.
- Напечатать название оператора.
- После этого вписываются аргументы, если они есть. Начинается запись со знака «открывающаяся круглая скобка “(“».
- Аргументы вводятся последовательно через знак ”;”. Также, если после ввода названия функции нажать клавиши Ctrl + A, то откроется меню аргументов и вписать их можно здесь.
- В конце ставится символ «закрывающаяся круглая скобка “)”». Контролировать написание можно в строке формул.
- После завершения нажать кнопку ENTER. Результат появится в ячейке.
Работа с ПЕРЕКЛЮЧ
Сравнивает указанную величину в ячейке или формулу со списком данных и вписывает в ячейку первое совпавшее значение. Если совпадений не будет, и не проставлена величина по умолчанию, оператор выдаст ошибку «#Н/Д». Функция схожа с ЕСЛИМН, но в отличие от нее условие ставится точно, без сравнительных знаков.
Работа оператора иллюстрируется на рисунке.
Здесь вместо чисел 1, 2, 7 — нужно проставить прописью дни недели им соответствующие. Если будут другие цифры, то возвратится значение по умолчанию «Нет совпадений (No match)».
Использование ЕСЛИОШИБКА
Оператор используется для нахождения ошибки в таблице. Найдя ее, функция не пишет в ячейке какую-либо из ошибок, а возвращает указанный ответ, который может быть текстом, пустой строкой: =ЕСЛИОШИБКА(Что_проверять;Что_выводить_вместо_ошибки).
Например, нужно поделить значения в столбце А на величины в столбце В. Если по ошибке в строках стоят 0, то получится деление на 0.
Применение оператора «=ЕСЛИОШИБКА(A2/B2;»»)» скрывает ошибки.
Здесь сравнивается выражение A2/B2. В случае обнаружения ошибки в ячейку ставится пустая строка, указанная пробелом в кавычках ““.
ЕСЛИОШИБКА появилась в Excel 2007. До этого использовалась функция ЕОШИБКА, которая самостоятельно не могла обработать ошибку, так как имела только один аргумент, проверяющий указанную ячейку. Для ввода ответа в случае обнаружения ошибки, нужно было использовать оператор ЕСЛИ: «ЕСЛИ(ЕОШИБКА(А2/В2);”“;А2/В2)».
Простые операторы, редко применяются без связки с другими функциями.
На рисунке показан принцип действия функции И.
Пример использования: «=И(A1>B1; A2<>25)». Здесь созданы два условия:
- Значение в ячейке А1 должно быть больше числа в В1.
- Число в А2 должно быть не равно 25.
При исполнении обоих получается ИСТИНА.
Если одно из заданий нарушено, получается ЛОЖЬ. В данном случае число в А1 меньше чем в В1.
Ниже представлен алгоритм функционирования оператора ИЛИ.
Пусть даны 3 выражения: A1>B1; A2>B2; A3>B3. Требуется применить к ним действие ИЛИ: «=ИЛИ(A1>B1; A2>B2; A3>B3)». Возможные варианты показаны на рисунках:
Здесь конечный результат ИСТИНА, так как из трех выражений одно верно: A3>B3. На следующем изображении функция выдала ответ «ЛОЖЬ», так как на все вопросы получены аналогичные ответы.
Основные операторы
Существуют и менее распространенные логические функции.
У каждого из вышеуказанных операторов, кроме первых двух, имеются аргументы. Аргументами могут выступать, как конкретные числа или текст, так и ссылки, указывающие адрес ячеек с данными.
Функции ЕОШИБКА и ЕПУСТО
Функция ЕОШИБКА проверяет, не содержит ли определенная ячейка или диапазон ячеек ошибочные значения. Под ошибочными значениями понимаются следующие:
- #Н/Д;
- #ЗНАЧ;
- #ЧИСЛО!;
- #ДЕЛ/0!;
- #ССЫЛКА!;
- #ИМЯ?;
- #ПУСТО!
В зависимости от того ошибочный аргумент или нет, оператор сообщает значение ИСТИНА или ЛОЖЬ. Синтаксис данной функции следующий: = ЕОШИБКА(значение) . В роли аргумента выступает исключительно ссылка на ячейку или на массив ячеек.
Оператор ЕПУСТО делает проверку ячейки на то, пустая ли она или содержит значения. Если ячейка пустая, функция сообщает значение ИСТИНА, если ячейка содержит данные – ЛОЖЬ. Синтаксис этого оператора имеет такой вид: =ЕПУСТО(значение) . Так же, как и в предыдущем случае, аргументом выступает ссылка на ячейку или массив.
Пример применения функций
Теперь давайте рассмотрим применение некоторых из вышеперечисленных функций на конкретном примере.
Имеем список работников предприятия с положенными им заработными платами. Но, кроме того, всем работникам положена премия. Обычная премия составляет 700 рублей. Но пенсионерам и женщинам положена повышенная премия в размере 1000 рублей. Исключение составляют работники, по различным причинам проработавшие в данном месяце менее 18 дней. Им в любом случае положена только обычная премия в размере 700 рублей.
Попробуем составить формулу. Итак, у нас существует два условия, при исполнении которых положена премия в 1000 рублей – это достижение пенсионного возраста или принадлежность работника к женскому полу. При этом, к пенсионерам отнесем всех тех, кто родился ранее 1957 года. В нашем случае для первой строчки таблицы формула примет такой вид: =ЕСЛИ(ИЛИ(C4<1957;D4=»жен.»);»1000″;»700″) . Но, не забываем, что обязательным условием получения повышенной премии является отработка 18 дней и более. Чтобы внедрить данное условие в нашу формулу, применим функцию НЕ: =ЕСЛИ(ИЛИ(C4<1957;D4=»жен.»)*(НЕ(E4<18));»1000″;»700″) .
Для того, чтобы скопировать данную функцию в ячейки столбца таблицы, где указана величина премии, становимся курсором в нижний правый угол ячейки, в которой уже имеется формула. Появляется маркер заполнения. Просто перетягиваем его вниз до конца таблицы.
Таким образом, мы получили таблицу с информацией о величине премии для каждого работника предприятия в отдельности.
Как видим, логические функции являются очень удобным инструментом для проведения расчетов в программе Microsoft Excel. Используя сложные функции, можно задавать несколько условий одновременно и получать выводимый результат в зависимости от того, выполнены эти условия или нет. Применение подобных формул способно автоматизировать целый ряд действий, что способствует экономии времени пользователя.
Практический пример использования логических функций
В примере ниже попробуем частично использовать описанные выше функции для решения задачи, приближенной к реальной ситуации с расчетом премии, зависящей от определенных условий.
В качестве исходных данных – таблица со сведениями о работниках, в которой указан их пол и возраст.
Нам необходимо произвести расчет премии. Ключевые условия, от которых зависит размер премии:
- величина обычной премии, которую получат все сотрудники без исключения – 3 000 руб.;
- сотрудницам женского пола положена повышенная премия – 7 000 руб.;
- молодым сотрудникам (младше 1984 г. рождения) положена повышенная премия – 7 000 руб.;
Выполним необходимые расчеты, используя логические функции.
- Встаем в первую ячейку столбца, в которой хотим посчитать размеры премий и щелкаем кнопку “Вставить функцию” (слева от сроки формул).
- В открывшемся Мастере функций выбираем категорию “Логические”, затем в предложенном перечне операторов кликаем по строке “ЕСЛИ” и жмем OK.
- Теперь нам нужно задать аргументы функции. Так как у нас не одно, а два условия получения повышенной премии, причем нужно, чтобы выполнялось хотя бы одно из них, чтобы задать логическое выражение, воспользуемся функцией ИЛИ. Находясь в поле для ввода значения аргумента “Лог_выражение” кликаем в основной рабочей области книги на небольшую стрелку вниз, расположенную в левой верхней части окна программы, где обычно отображается адрес ячейки. В открывшемся списке функций выбираем оператор ИЛИ, если он представлен в перечне (или можно кликнуть на пункт “Другие функции” и выбрать его в новом окне Мастера функций, как мы изначально сделали для выбора оператора ЕСЛИ).
- Мы переключимся в окно аргументов функци ИЛИ. Здесь задаем наши условия получения премии в 7000 руб.:
- год рождения позже 1984 года;
- пол – женский;
- Теперь обращаем внимание на строку формул. Кликаем в ней на название первоначального оператора ЕСЛИ, чтобы переключиться в аргументы этой функции.
- Заполняем аргументы функции и щелкаем OK:
- в значении “Истина” пишем цифру 7000;
- в значении “Ложь” указываем цифру 3000;
- Результат работы логических операторов отобразится в первой ячейке столбца, которую мы выбрали. Как мы можем видеть, окончательный вид формулы выглядит следующим образом:
=ЕСЛИ(ИЛИ(C2>1984;D2=»жен.»);7000;3000) .
Кстати, вместо использования Мастера функций можно было вручную составить и прописать данную формулу в требуемой ячейке. - Чтобы рассчитать премию для всех сотрудников, воспользуемся Маркером заполнения. Наведем курсор на правый нижний угол ячейки с формулой. После того, как курсор примет форму черного крестика (это и есть Маркер заполнения), зажимаем левую кнопку мыши и протягиваем выделение вниз, до последней ячейки столбца.
- Все готово. Благодаря логическим операторам мы получили заполненные данные для столбца с премиями.
Логическая функция ИСКЛИЛИ в Excel
В Excel 2013 Microsoft представила функцию ИСКЛИЛИ, которая является логической функцией исключающего ИЛИ. Для тех, кто не знаком с понятием «Исключающего ИЛИ», сначала может быть немного сложно понять суть логической функции, но, надеюсь, приведенное ниже объяснение иллюстрируемое примерами формул поможет прояснить суть.
Синтаксис логической функции ИСКЛИЛИ идентичен синтаксису ИЛИ:
В простейшей версии формулы ИСКЛИЛИ, содержащей только 2 логических оператора, логическая функция Excel ИСКЛИЛИ вернет ИСТИНУ, если любой из аргументов имеет значение ИСТИНА. Если оба аргумента ИСТИНА, либо оба ЛОЖЬ, ИСКЛИЛИ возвращает ЛОЖЬ. Рассмотрим примеры формул:
Логическая функция возвращает ИСТИНА, потому что первый аргумент ИСТИНА, а второй аргумент ЛОЖЬ.
Логическая функция ЕСЛИ в Экселе – одна из самых востребованных. Она возвращает результат (значение или другую формулу) в зависимости от условия.
Функция имеет следующий синтаксис.
ЕСЛИ(лог_выражение; значение_если_истина; [значение_если_ложь])
лог_выражение – это проверяемое условие. Например, A2<100. Если значение в ячейке A2 действительно меньше 100, то в памяти эксель формируется ответ ИСТИНА и функция возвращает то, что указано в следующем поле. Если это не так, в памяти формируется ответ ЛОЖЬ и возвращается значение из последнего поля.
значение_если_истина – значение или формула, которое возвращается при наступлении указанного в первом параметре события.
значение_если_ложь – это альтернативное значение или формула, которая возвращается при невыполнении условия. Данное поле не обязательно заполнять. В этом случае при наступлении альтернативного события функция вернет значение ЛОЖЬ.
Очень простой пример. Нужно проверить, превышают ли продажи отдельных товаров 30 шт. или нет. Если превышают, то формула должна вернуть «Ок», в противном случае – «Удалить». Ниже показан расчет с результатом.
Продажи первого товара равны 75, т.е. условие о том, что оно больше 30, выполняется. Следовательно, функция возвращает то, что указано в следующем поле – «Ок». Продажи второго товара менее 30, поэтому условие (>30) не выполняется и возвращается альтернативное значение, указанное в третьем поле. В этом вся суть функции ЕСЛИ. Протягивая расчет вниз, получаем результат по каждому товару.
Однако это был демонстрационный пример. Чаще формулу Эксель ЕСЛИ используют для более сложных проверок. Допустим, есть средненедельные продажи товаров и их остатки на текущий момент. Закупщику нужно сделать прогноз остатков через 2 недели. Для этого нужно от текущих запасов отнять удвоенные средненедельные продажи.
Пока все логично, но смущают минусы. Разве бывают отрицательные остатки? Нет, конечно. Запасы не могут быть ниже нуля. Чтобы прогноз был корректным, нужно отрицательные значения заменить нулями. Здесь отлично поможет формула ЕСЛИ. Она будет проверять полученное по прогнозу значение и если оно окажется меньше нуля, то принудительно выдаст ответ 0, в противном случае — результат расчета, т.е. некоторое положительное число. В общем, та же логика, только вместо значений используем формулу в качестве условия.
В прогнозе запасов больше нет отрицательных значений, что в целом очень неплохо.
Формулы Excel ЕСЛИ также активно используют в формулах массивов. Здесь мы не будем далеко углубляться. Заинтересованным рекомендую прочитать статью о том, как рассчитать максимальное и минимальное значение по условию. Правда, расчет в той статье более не актуален, т.к. в Excel 2016 появились функции МИНЕСЛИ и МАКСЕСЛИ. Но для примера очень полезно ознакомиться – пригодится в другой ситуации.
Формула ЕСЛИ в Excel – примеры нескольких условий
Довольно часто количество возможных условий не 2 (проверяемое и альтернативное), а 3, 4 и более. В этом случае также можно использовать функцию ЕСЛИ, но теперь ее придется вкладывать друг в друга, указывая все условия по очереди. Рассмотрим следующий пример.
Нескольким менеджерам по продажам нужно начислить премию в зависимости от выполнения плана продаж. Система мотивации следующая. Если план выполнен менее, чем на 90%, то премия не полагается, если от 90% до 95% — премия 10%, от 95% до 100% — премия 20% и если план перевыполнен, то 30%. Как видно здесь 4 варианта. Чтобы их указать в одной формуле потребуется следующая логическая структура. Если выполняется первое условие, то наступает первый вариант, в противном случае, если выполняется второе условие, то наступает второй вариант, в противном случае если… и т.д. Количество условий может быть довольно большим. В конце формулы указывается последний альтернативный вариант, для которого не выполняется ни одно из перечисленных ранее условий (как третье поле в обычной формуле ЕСЛИ). В итоге формула имеет следующий вид.
Комбинация функций ЕСЛИ работает так, что при выполнении какого-либо указанно условия следующие уже не проверяются. Поэтому важно их указать в правильной последовательности. Если бы мы начали проверку с B2<1, то условия B2<0,9 и B2<0,95 Excel бы просто «не заметил», т.к. они входят в интервал B2<1 который проверился бы первым (если значение менее 0,9, само собой, оно также меньше и 1). И тогда у нас получилось бы только два возможных варианта: менее 1 и альтернативное, т.е. 1 и более.
При написании формулы легко запутаться, поэтому рекомендуется смотреть на всплывающую подсказку.
В конце нужно обязательно закрыть все скобки, иначе эксель выдаст ошибку
Функция Excel ЕСЛИМН
Функция Эксель ЕСЛИ в целом хорошо справляется со своими задачами. Но вариант, когда нужно записывать длинную цепочку условий не очень приятный, т.к., во-первых, написать с первого раза не всегда получается (то условие укажешь неверно, то скобку не закроешь); во-вторых, разобраться при необходимости в такой формуле может быть непросто, особенно, когда условий много, а сами расчеты сложные.
В MS Excel 2016 появилась функция ЕСЛИМН, ради которой и написана вся эта статья. Это та же ЕСЛИ, только заточенная специально для проверки множества условий. Теперь не нужно сто раз писать ЕСЛИ и считать открытые скобки. Достаточно перечислить условия и в конце закрыть одну скобку.
Работает следующим образом. Возьмем пример выше и воспользуемся новой формулой Excel ЕСЛИМН.
Как видно, запись формулы выглядит гораздо проще и понятнее.
Стоит обратить внимание на следующее. Условия по-прежнему перечисляем в правильном порядке, чтобы не произошло ненужного перекрытия диапазонов. Последнее альтернативное условие, в отличие от обычной ЕСЛИ, также должно быть обязательно указано. В ЕСЛИ задается только альтернативное значение, которое наступает, если не выполняется ни одно из перечисленных условий. Здесь же нужно указать само условие, которое в нашем случае было бы B2>=1. Однако этого можно избежать, если в поле с условием написать ИСТИНА, указывая тем самым, что, если не выполняются ранее перечисленные условия, наступает ИСТИНА и возвращается последнее альтернативное значение.
Теперь вы знаете, как пользоваться функцией ЕСЛИ в Excel, а также ее более современным вариантом для множества условий ЕСЛИМН.
Поделиться в социальных сетях:
Функция ЕСЛИ позволяет решать большинство задач в Excel, вычисления в которых выполняются не последовательно, шаг за шагом, а с некоторыми ветвлениями. Например, был определен некоторый коэффициент, от значения которого полностью зависит ход дальнейших расчетов. Кроме того, часто требуется выполнить какую-либо операцию над диапазоном данных (суммированием, вычисление среднего значения и т. д.) с использованием какого-либо критерия. Например, найти сумму чисел из диапазона, значения которых не менее 10.
Существует как минимум три способа заменить использование функции ЕСЛИ:
- Заменить данную функцию другой встроенной функцией Excel, при этом необязательно логической. Например, одну и ту же задачу можно решить тремя разными способами (с использованием формулы ЕСЛИ, с помощью СУММЕСЛИ или без логических функций вовсе), что будет показано в одном из примеров.
- Использовать простейшие логические конструкции в связке с арифметическими действиями.
- Создание пользовательских функций с помощью VBA.
Примечание: синтаксис функции ЕСЛИ достаточно прост, поэтому избегать ее использования при решении несложных задач не нужно. Многие формулы с использованием ЕСЛИ выглядят просто и наглядно. Важными критериями итоговых формул является их краткость и понятность. Длинные формулы с большим количеством вложенных функций могут ввести в недоумение других пользователей или в будущем самих их создателей. Если критериев проверки слишком много, лучше создать пользовательскую функцию на VBA, тщательно протестировав ее поведение в различных ситуациях (насколько корректны результаты при различных условиях).
Примеры замены функции ЕСЛИ в Excel с помощью формул
Пример 1. В таблице Excel хранятся данные о доходах компании за каждый месяц (обозначен номером) прошедшего года. Реализовать алгоритм расчета суммы доходов за любых несколько месяцев года без использования функции ЕСЛИ в Excel.
Вид исходной таблицы данных:
Для расчетов суммы доходов за любой из возможных периодов в ячейке C3 запишем следующую формулу:
Описание аргументов функции СМЕЩ:
- A6 – ячейка, относительно которой ведется отсчет;
- ПОИСКПОЗ(A3;A7:A18;0) – функция, возвращающая ячейку, с которой будет начат отсчет номера месяца, с которого ведется расчет суммы доходов за определенный период;
- 1 – смещение по столбцам (нас интересует сумма доходов, а не номеров месяцев);
- ПОИСКПОЗ(B3;A7:A18;0)-ПОИСКПОЗ(A3;A7:A18;0)+1 – выражение, определяющее разность между указанными начальной и конечной позициями в таблице по вертикали, возвращающее число ячеек рассматриваемого диапазона;
- 1 – ширина рассматриваемого диапазона данных (1 ячейка).
Функция СУММ принимает в качестве аргумента диапазон ячеек, возвращаемый функцией СМЕЩ, и вычисляет сумму содержащихся в них значений.
Для примера приведем результат расчетов с 3 по 7 месяц:
Для сравнения, рассмотрим вариант расчета с использованием функции ЕСЛИ. Формула, которая приведена ниже, должна быть выполнена в качестве формулы массива (для ввода CTRL+SHIFT+Enter), а для определения суммы доходов для различных периодов ее придется видоизменять:
Диапазон ячеек, для которых будет выполняться функция СУММ, определяется двумя условиями, созданными с использованием функций ЕСЛИ. В данном случае расчет производится для месяцев с 3 по 7 включительно. Результат:
Как видно, полученные результаты совпадают. Несмотря на кажущуюся сложность формулы с использованием функции СМЕЩ, она является более простой, наглядной и не требует внесения изменений для каждого нового расчета.
Формулы решений при нескольких условиях без функции ЕСЛИ
Пример 2. В таблице Excel содержатся значения вероятностей попадания в цель для стрелков из трех различных видов оружия. Рассчитать вероятность попадания в цель хотя бы из одного оружия для каждого стрелка. В некоторых ячейках содержатся ошибочные данные (значения взяты не из диапазона допустимых значений для вероятности). Для таких случаев рассчитать вероятность как 0. При условии, что в формуле нельзя использовать логическую функцию ЕСЛИ.
Вид исходной таблицы:
Для расчета вероятности используем формулу P(A)=1-q1q2q3, где q1,q2 и q3 – вероятности промахов (событий, противоположным указанным, то есть попаданию в цель). Используем следующую формулу:
Часть формулы «И(B3>=0;B3<=1;C3>=0;C3<=1;D3>=0;D3<=1))» необходима для выполнения операции сравнения содержащегося в каждой ячейке значения с диапазоном допустимых (от 0 до 1). Функция ИСТИНА возвращает логическое ИСТИНА, если все выражения вернули результат ИСТИНА, и ЛОЖЬ, если хотя бы одно из проверяемых выражений вернуло ЛОЖЬ. Поскольку за данным выражением следует знак «*» (умножение), Excel автоматически преобразует полученное логическое значение к числовому (1 или 0).
Результаты расчета для всех стрелков:
Таким образом, расчет производится только в том случае, если все три ячейки A, B и C содержат корректные данные. Иначе будет возвращен результат 0.
Пример кода макроса как альтернативная замена функции ЕСЛИ
Пример 3. В МФО выдают кредиты на срок от 1 до 30 дней на небольшие суммы под простые проценты (сумма задолженности на момент выплаты состоит из тела кредита и процентов, рассчитанных как произведение тела кредита, ежедневной процентной ставки и количества дней использования финансового продукта). Однако значение процентной ставки зависит от периода, на который берется кредит, следующим образом:
- От 1 до 5 дней – 1,7%;
- От 6 до 10 дней – 1,9%;
- От 11 до 15 дней – 2,2%;
- От16 до 20 дней – 2,5;
- Свыше 21 дня – 2,9%.
Выполнить расчет суммы к возврату для нескольких клиентов организации.
Вид исходной таблицы данных:
Вместо проверки множества условий с использованием функции ЕСЛИ напишем простую пользовательскую функцию с помощью макроса (ALT+F11). Исходный код пользовательской функции MFODebt:
Public Function MFODebt(amount As Double, period As Double) As Double
Dim interest As Double
Select Case period
Case 1 To 5
interest = 0.017
Case 6 To 10
interest = 0.019
Case 11 To 15
interest = 0.022
Case 16 To 20
interest = 0.025
Case 21 To 30
interest = 0.029
End Select
MFODebt = amount + amount * interest * period
End Function
Для определения размера процентной ставки используется простая и наглядная конструкция Select Case. Воспользуемся созданной функцией для расчетов:
=MFODebt(B3;C3)
«Растянем» формулу на остальные ячейки и получим следующие результаты:
Как видно, формулы с большим числом проверок лучше реализовывать в виде пользовательских функций.