Страницы: 1
RSS
Накопленная сумма при разных шагах
 
Здравствуйте, прошу помочь с решением задачи. Пытаюсь рассчитать накопленную сумму для шкал, где есть количество и ставка. Шаги в шкалах неодинаковые.

Вручную получается (зелёные ячейки), но хочется чтобы это считалось одной формулой без дополнительных столбцов — только на основе выделенной жирным таблицы. Прошу помочь! Файл прилагаю.
 
Формула массива: Не формула массива:
=СУММПРОИЗВ((СТРОКА(A$1:ИНДЕКС(A$1:A$100;G11/100))^0)*100;ИНДЕКС(G$5:G$8;Ч(ИНДЕКС(ПОИСКПОЗ((СТРОКА(A$1:ИНДЕКС(A$1:A$100;G11/100))-1)*100;$F$5:$F$8;1);))))
Изменено: Максим В. - 11.02.2020 17:10:52
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В.,спасибо! Тут есть 2 загвоздки:
1. Если поставить количество меньше 100, то выдаётся неверное значение
2. Если задавать большие значения, то выдаётся #ссылка или неверное значение
Изменено: medvedevda - 11.02.2020 17:24:26
 
С 1 замечанием согласен, нужно подумать как обойти.
Со вторім частично. На сколько большие значения планируете вводить?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Поправил формулу для чисел меньше 100:
=СУММПРОИЗВ((СТРОКА(A$1:ИНДЕКС(A$1:A$100;ОКРВВЕРХ(G11/100;1)))^0)*100;ИНДЕКС(G$5:G$8;Ч(ИНДЕКС(ПОИСКПОЗ((СТРОКА(A$1:ИНДЕКС(A$1:A$100;ОКРВВЕРХ(G11/100;1)))-1)*100;$F$5:$F$8;1);))))
Максимальное число при котором формула вернет результат ограничено максимальной строкой диапазона выделенного красным цветом. Т.е. 100*100=10 000. При вводе большего числа, формула вернет ошибку. Играйтесь с нижней строкой и все должно работать.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В.,с большими числами все ок при расширении диапазона А. Спасибо!
но с числами до 100 по-прежнему не работает  
 
medvedevda, смотрите файл
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., при количестве — 3 возвращается 1700, хотя должно 3*17 = 51.  
 
А при 103 что должно быть?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., 100*17+3*16 = 1748
 
Ещё вариант, проверьте.
Код
=СУММПРОИЗВ(ПРОСМОТР((СТРОКА($A$1:$A$100)-1)*100;$F$5:$F$8;$G$5:$G$8)*(((СТРОКА($A$1:$A$100)-1)*100)<G11))*100
Цитата
100*17+3*16 = 1748
Странный какой то расчет. Шаг 100, а 3*16. 3 это же не 3 шага, это 3 из начала следующего шага. Так как полный шаг не пройден,3<100, то 3 принимаем за полный следующий шаг. Или что то не так?

Изменено: gling - 11.02.2020 19:00:53
 
Моя формула возвращает результаты по другой логике. Как тогда понять это?
Цитата
medvedevda написал:
Максим В. ,с большими числами все ок
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., я проверил до 1500 — было все ок, но дальше уже не совпадает.
 
gling,да, если шаг не пройден, то ставка умножается на фактичное значение количества в диапазоне.  
 
Тогда так, для значений не более 100 тыс
Код
=СУММПРОИЗВ(ПРОСМОТР((СТРОКА($A$1:$A$100000)-1);$F$5:$F$8;$G$5:$G$8)*((СТРОКА($A$1:$A$100000)-1)<G12))
Изменено: gling - 12.02.2020 21:59:23
 
gling,спасибо! Теперь все ок!
Страницы: 1
Наверх