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

Пример таблицы
Надо найти сумму первых
n=18

Из первой строки массива 10*100, из второй 7*150, остается взять из 3-строки (18-7-10)*1000

Итого 1000+1050+1000=3050

Массив
Кол-воСреднееСумма
10 100 1000
7 150 1050
3 1000 3000
15 200 3000
Пример дублируется в гугл таблицах

Массив может меняться в размерах, а также изменятся n кол-во, а формула должна работать.
Изменено: Chel777 - 17.07.2016 13:41:04
 
Цитата
Пример в гугл таблицах
Желательно прикладывать пример к сообщению. Не все горят желанием бегать по ссылкам.
 
Если правильно понял, то так можно
=СУММПРОИЗВ((СТРОКА(СМЕЩ(B2;0;0;СЧЁТ(B2:B10000)))<2+E2)*СМЕЩ(B2;0;0;СЧЁТ(B2:B10000))*СМЕЩ(C2;0;0;СЧЁТ(C2:C10000)))
 
Арфы - нет, возьмите бубен.
 
Спасибо, но у вас считает сумму строк, а надо считать сумму чисел на 1шт.

т.е. если хочу найти сумму из Массив1 первых 5 тогда результат должен быть 500
n=11 результат 1150
n=18 результат 3050
n=21 результат 5250
и т.д.
Массив1
Шт.СреднееСумма
10 100 1000
7 150 1050
3 1000 3000
15 200 3000
 
Вы бы СВОЙ файл-пример приложили. Как есть - Как надо. См. Правила форума
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Chel777 написал: т.е. если хочу найти сумму из Массив1 первых 5 тогда результат должен быть 500
Приложите нормальный пример и объясните как получаете результат. Из первого поста как раз получается количество*среднее и это суммируем по строкам.
Вот это вообще непонятно откуда
Цитата
Chel777 написал: остается взять из 3-строки (18-7-10)
нет в 3 строке таких чисел
Изменено: Udik - 17.07.2016 14:48:11
Арфы - нет, возьмите бубен.
 
пример
 
Полтора часа впустую и какое-то время помогающих убито - результат отсутствия примера в теме.
Теперь понятна необходимость файла?
 
Да понятно.
 
От примера путаницы стало больше. Откуда n=10, если строк 5. Для  n=1  ссылка на Е5, для   n=2 E5*D5, т.е. сумма предыдущей строки, дальше ещё и  дополнительный столбец внезапно появляется в формулах.  
Арфы - нет, возьмите бубен.
 
n - это требуемое количество из первого столбца.
По строкам суммируем значения первого столбца до получения n. Лишнее отбрасываем.
В результате нужна сумма произведений первого и второго столбца, но с ограничением n

Пример.
Первый столбец: 1, 2, 5
n=4
n=1+2+1, т.е. из третьей строки берем для умножения только 1
 
Чет на формулах сразу не соображу как сделать
Арфы - нет, возьмите бубен.
 
UDF
Код
Function summ_pervyh(tabliza, shtuk)
Dim m, r
m = tabliza.Value
For r = 1 To UBound(m)
If shtuk > m(r, 1) Then
    summ_pervyh = summ_pervyh + m(r, 1) * m(r, 2)
    shtuk = shtuk - m(r, 1)
Else
    summ_pervyh = summ_pervyh + shtuk * m(r, 2)
    Exit For
End If
Next r
End Function
 
с доп столбцом.
=СУММПРОИЗВ(СМЕЩ(D2;0;0;СЧЁТ(D2:D10000))*СМЕЩ(C2;0;0;СЧЁТ(C2:C10000)))
=ЕСЛИ(СУММ($B$1:B3)>=$E$2;0;ЕСЛИ(СУММ($B$1:B4)<=$E$2;B4;$E$2-СУММ($B$1:B3)))
Арфы - нет, возьмите бубен.
 
Задача для Избушки
 
Спасибо!
Страницы: 1
Читают тему
Наверх