Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вычисление скидки при помощи рекурсии - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Вычисление скидки при помощи рекурсии
fpister Дата: Вторник, 11.08.2015, 17:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, коллеги.
Вот рабочий файл. Пытался автоматизировать подбор скидки при помощи рекурсии.
Медиаплан - это график размещения рекламы. Общий объем заказа до всех скидок и коэффициентов (брутто) является отправной точкой для размера скидки. Например, объем заказа 5 млн., скидка 45%. Но скидка дается не на брутто, а на объем ПОСЛЕ всех скидок и пр. Например, 5 000 000 - 45% = 2 750 000. Соответственно, скидка уменьшается, в данном случае до 30%. Считаем: 5 000 000 - 30% = 3 500 000. Теперь скидка считается уже от этой суммы, в данном случае это 35%. Считаем: 5 000 000 - 35% = 3 250 000. Вот это и есть искомая скидка, поскольку попадает в нужный диапазон: от 3 000 000 до 3 999 999.
На вкладке "Не трогать" зеленым выделена формула с диапазоном. На второй вкладке красным выделен размер скидки, зеленым объем заказа нетто.
х=z-y
y=f(x)
Где x - это объем заказа со скидкой (нетто), z - первоначальный объем заказа без скидки (брутто), y - скидка, являющаяся, в свою очередь, функцией от объема заказа со скидкой (x, т.е. нетто). Проще говоря, размер скидки на объём заказа вычисляется методом приближения после нескольких итераций. Пример я приводил выше. Цифры по диапазону вообще условны - вы можете установить любое соотношение объема заказа и скидки. Другое дело, что формула не работает! Точнее, выдает РАЗНЫЕ результаты при ОДИНАКОВЫХ исходных параметрах, что в принципе невозможно!
К сообщению приложен файл: 6853395.xls (60.0 Kb)


В задачах тех ищи удачи, где получить рискуешь сдачи.
 
Ответить
СообщениеДобрый день, коллеги.
Вот рабочий файл. Пытался автоматизировать подбор скидки при помощи рекурсии.
Медиаплан - это график размещения рекламы. Общий объем заказа до всех скидок и коэффициентов (брутто) является отправной точкой для размера скидки. Например, объем заказа 5 млн., скидка 45%. Но скидка дается не на брутто, а на объем ПОСЛЕ всех скидок и пр. Например, 5 000 000 - 45% = 2 750 000. Соответственно, скидка уменьшается, в данном случае до 30%. Считаем: 5 000 000 - 30% = 3 500 000. Теперь скидка считается уже от этой суммы, в данном случае это 35%. Считаем: 5 000 000 - 35% = 3 250 000. Вот это и есть искомая скидка, поскольку попадает в нужный диапазон: от 3 000 000 до 3 999 999.
На вкладке "Не трогать" зеленым выделена формула с диапазоном. На второй вкладке красным выделен размер скидки, зеленым объем заказа нетто.
х=z-y
y=f(x)
Где x - это объем заказа со скидкой (нетто), z - первоначальный объем заказа без скидки (брутто), y - скидка, являющаяся, в свою очередь, функцией от объема заказа со скидкой (x, т.е. нетто). Проще говоря, размер скидки на объём заказа вычисляется методом приближения после нескольких итераций. Пример я приводил выше. Цифры по диапазону вообще условны - вы можете установить любое соотношение объема заказа и скидки. Другое дело, что формула не работает! Точнее, выдает РАЗНЫЕ результаты при ОДИНАКОВЫХ исходных параметрах, что в принципе невозможно!

Автор - fpister
Дата добавления - 11.08.2015 в 17:29
_Boroda_ Дата: Вторник, 11.08.2015, 18:10 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16892
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Формулой можно вот так, например (оранжевая ячейка.
Код
=СУММПРОИЗВ((ПОИСКПОЗ(AV$39*(1-AT40:AT46%);AS40:AS46)=СТРОКА(1:7))*AT40:AT46)

Но работать будет не всегда.
В Вашем же файле сумма
2774400 * (1 - 25%) = 2080800 > 2000000
2774400 * (1 - 30%) = 1942080 < 2000000
Ни так, ни эдак не подходит
К сообщению приложен файл: 6853395_1.xls (62.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеФормулой можно вот так, например (оранжевая ячейка.
Код
=СУММПРОИЗВ((ПОИСКПОЗ(AV$39*(1-AT40:AT46%);AS40:AS46)=СТРОКА(1:7))*AT40:AT46)

Но работать будет не всегда.
В Вашем же файле сумма
2774400 * (1 - 25%) = 2080800 > 2000000
2774400 * (1 - 30%) = 1942080 < 2000000
Ни так, ни эдак не подходит

Автор - _Boroda_
Дата добавления - 11.08.2015 в 18:10
fpister Дата: Среда, 12.08.2015, 09:36 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, вы навели на мысль - здесь просто необходимо доп. условие. В противном случае программа будет всегда выдавать два варианта ответа. Вы мне помогли!


В задачах тех ищи удачи, где получить рискуешь сдачи.
 
Ответить
СообщениеСпасибо, вы навели на мысль - здесь просто необходимо доп. условие. В противном случае программа будет всегда выдавать два варианта ответа. Вы мне помогли!

Автор - fpister
Дата добавления - 12.08.2015 в 09:36
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!