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