Допустим, имеется магазин. Магазин дает скидки на оптовые закупки, причем процент скидки зависит от количества купленного товара. Например, при покупке от 5 до 20 штук дается скидка 2%, при покупке от 20 до 50 штук — 6% и при закупке партии от 50 и более штук — 10%. Как быстро и красиво вычислить процент скидки при вводе количества купленного товара?
Можно было бы пойти классическим путем и использовать вложенные функции ЕСЛИ для проверки попадания значения ячейки в заданный диапазон, но это, во-первых, будет очень громоздкая формула, а, во-вторых, поскольку нельзя вкладывать функции ЕСЛИ друг в друга больше 7 раз, то и проверять мы можем максимум 7 условий. А если их больше?
Есть другой способ. Простой и красивый.
Нам потребуется таблица скидок следующего вида (диаграмму строить не нужно — она здесь для наглядности):
Для расчета процента скидки используем следующую формулу:
где:
ВПР — функция, которая проверяет значение первого столбца таблицы скидок и ищет в нем значение максимально похожее на количество купленного товара (С1)
B6:C9 — ссылка на таблицу скидок (без «шапки»)
2 — порядковый номер столбца в таблице скидок, из которого мы хотим получить значение скидки
ИСТИНА — здесь и зарыта «собака». Если в качестве последнего аргумента функции ВПР указать ЛОЖЬ, то функция будет искать строгое совпадение в столбце количества (и в случае на рисунке выдаст ошибку, поскольку значения 22 в таблице скидок нет). А вот если вместо ЛОЖЬ написать ИСТИНА, то функция будет искать не точное, а ближайшее наименьшее значение и выдаст процент скидки для него. Что и требуется!