powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Расчет стоимости в зависимости от объемв
6 сообщений из 6, страница 1 из 1
Расчет стоимости в зависимости от объемв
    #38065137
lowlaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сижу и не могу уже две недели решить вроде бы простую задачку

Задача: определить стоимость поездок за день, если известно

1) количество поездок в день

2) цена зависит от количества поездок и изменяется следующем образом:

При количестве поездок от 0 до 10 – 30 руб. (ц1)
При количестве поездок от 10 до 20 – 20 руб. (ц2)
При количестве поездок от 20 до 30 – 10 руб.(ц3)

Пытался сделать в виде таблички в Excel т.к. нужны были данные сколько потрачено за каждый день

- в первом столбце дата,
- во втором количество поездок совершенных в день,
- в третьем – стоимость, рассчитываемая с помощью функций excel ЕСЛИ

т.к. ничего путного в голову не пришло соорудил какие-то безумные формулы типа

[(если кол-во поездок<10,кол-во поездок, иначе 10)*цену из первого диапазона] + [(если кол-во поездок<20,кол-во поездок - 10, иначе 20)* (если кол-во поездок>10)цену из первого диапазона, иначе 0]

–т.е. если кол-во больше 10 умножаем фиксированное кол-во поездок на цену и прибавляем стоимость поездок из следующего диапазона

Но так стоимость можно получить только за 1 день

Вообще интуитивно вроде понятно – смотрим сколько поездок - допустим 11 и умножаем 10*ц1 + 1*ц2 , но это для одного дня,

В другой день можно проехать одну поездку, но она уже будет рассчитываться как 1*ц2 ,

Но как с интуитивного уровня перевести в формульный вид?

Еще один вариант размышлений: определяем – в какой интервал попадает кол-во поездок в день, если нам известна сумма кол-ва предыдущих поездок т.е. если сумма кол-ва = 9, а сегодня мы проехали 2, то 1*ц1+ 1*ц2 – т.е. получается что-то типа разложить на слагаемые по определенному условию

(хотя опять же как это воплотить в excel не понимаю)

Вообще задача довольно распространенная и называется - в общем виде - «накопительная скидка», но ее решение весьма странно

Вот например ссылка на какой-то экономический учебник – там табличка:

http://i-piar.net.ua/marketing/politika-skidok/

Шкала скидокНомер партииОбъем партии рубОбщая сумма закупок рубВеличина скидки за данную партию %Величина скидки за данную партию рубдо 1000 руб – 0 %170070000от 1001 руб до 3000 руб– 2 %210001700220

При общем объеме в 1700 скидка на объем 1000 руб. составляет 2 %, хотя по идее действие скидки начинается только после «преодоления» рубежа в 1000 руб. и скидка должна быть не на 1000, а на 1000-(1000-700 т.е. то что «не хватает» до «рубежа» - 300 руб. ) = 700*0,02=14
...
Рейтинг: 0 / 0
Расчет стоимости в зависимости от объемв
    #38065166
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lowlaw,

ABCD111020range1 price12112015range2 price23213010range3 price345DATE_WNUM_WSUM_W601.12.20129=$B6*$C$1-МАКС($B6-$B$1;0)*($C$1-$C$2)-МАКС($B6-$B$2;0)*($C$2-$C$3)702.12.201210200803.12.201211215904.12.2012122301005.12.2012193351106.12.2012203501207.12.2012213601308.12.201222370
...
Рейтинг: 0 / 0
Расчет стоимости в зависимости от объемв
    #38065843
lowlaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну во-первых – спасибо за ответ – ваш вариант действительно гораздо короче, чем использование функций ЕСЛИ, да и видимо мне надо было вначале почитать определение скидки :)

Однако хотелось бы узнать путь рассуждений, которым вы прошли и так же, обозначения что такое NUM_W и SUM_W

Как я понимаю, вы вычисляете стоимость без скидки, а затем вычитает величину скидки рассчитанную как – разница цен (т.е. скидка) умноженную на - а вот тут чет-то не совсем понятно
NUM_W – это нарастающее количество поездок или текущий номер поездки ?

Но я могу в первый день съездить, например 11 раз, а во второй только один – но цена то на этот один уже будет другая

дата поездок в день нарастающее количество стоимость поездок в день01.12.2012 9 9 =9 поездок*2002.12.2012 2 11 =1поездка*20+1поездка*1503.12.2012 11 22 =9 поездок*15+2 поездки*10
...
Рейтинг: 0 / 0
Расчет стоимости в зависимости от объемв
    #38066821
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lowlaw,

Названия NUM_W и SUM_W - произвольные
NUM_W - нарастающее кол-во поездок, SUM_W - нарастающая стоимость поездок
Алгоритм вычисления стоимости
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
- нулевое приближение: Стоимость = "кол-во поездок" * "цена для лохов"

ЦИКЛ ПОКА_НЕ_ЗАКОНЧАТСЯ_СКИДКИ, т.е. пока ещё есть "необработанные" скидки
   - поправка стоимости: предположим, что "граница скидок" у нас одна, тогда надо для количества
    ( "кол-во поездок" - "граница первой скидки" ) уменьшить стоимость, учитывая первую скидку
    "поправка стоимости" = ( "кол-во поездок" - "граница первой скидки" ) * ( "цена для лохов" - "цена с учетом первой скидки" )

   - если "поправка стоимости" ПОЛОЖИТЕЛЬНАЯ - пересчитываем стоимость: Сотимость = Стоимость -  "поправка стоимости"

   - теперь назначаем "ценой для лохов"  "цену с учетом первой скидки",
    а "ценой с учетом первой скидки" - соответственно "цену с учетом второй скидки"
ЦИКЛУ_КОНЕЦ




тот-же принцип, но выглядит "нагляднее", а формулы, соответственно, длиннееСкорее всего, можно упростить. Но я пока не вижу как...ABCDE111020range1 price12112015range2 price23213010range3 price345датакол-во поездок за деньобщее кол-во поездок (считая и текущий день)стоимость поездок текущего дня601.12.20129=СУММ($B$6:$B6)=$B6*$C$1-МИН(МАКС($C6-$B$1;0);$B6)*($C$1-$C$2)-МИН(МАКС($C6-$B$2;0);$B6)*($C$2-$C$3)702.12.201211020803.12.201211115904.12.2012112151005.12.20127191051106.12.2012322351207.12.2012123101308.12.201212410


ЗЫ: пардон за "многабукаф"
...
Рейтинг: 0 / 0
Расчет стоимости в зависимости от объемв
    #38067091
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lowlawчто-то типа разложить на слагаемые по определенному условиюМожно, при желании, сделать и так. Например, как в приложенном файле. Конечно, там решение разложено по всем составляющим - можно формулы свести и избавиться от всех дополнительных столбцов. Пример же сделан для того, чтобы напомнить про использование связки ИНДЕКС(), ПОИСКПОЗ() и СМЕЩ() .
С другой стороны, если вы не ограничены условием "сделать без макросов" - большинство таких задач проще решать, используя VBA...
...
Рейтинг: 0 / 0
Расчет стоимости в зависимости от объемв
    #38081142
lowlaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаlowlaw,

тот-же принцип, но выглядит "нагляднее", а формулы, соответственно, длиннее

ЗЫ: пардон за "многабукаф"

Ого - какой приемчик с функцией "минимум" Спасибо - у меня даже мысли такой не было
Как же вы находите такие простые решения? Может обучались алгоритмизации по какому-нибудь хитрому учебнику или это математическая подготовка?

ps

Наоборот чем больше "букаф" тем лучше
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Расчет стоимости в зависимости от объемв
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]