Спасибо, но у вас считает сумму строк, а надо считать сумму чисел на 1шт.
т.е. если хочу найти сумму из Массив1 первых 5 тогда результат должен быть 500 n=11 результат 1150 n=18 результат 3050 n=21 результат 5250 и т.д. Массив1
Chel777 написал: т.е. если хочу найти сумму из Массив1 первых 5 тогда результат должен быть 500
Приложите нормальный пример и объясните как получаете результат. Из первого поста как раз получается количество*среднее и это суммируем по строкам. Вот это вообще непонятно откуда
Цитата
Chel777 написал: остается взять из 3-строки (18-7-10)
От примера путаницы стало больше. Откуда n=10, если строк 5. Для n=1 ссылка на Е5, для n=2 E5*D5, т.е. сумма предыдущей строки, дальше ещё и дополнительный столбец внезапно появляется в формулах.
n - это требуемое количество из первого столбца. По строкам суммируем значения первого столбца до получения n. Лишнее отбрасываем. В результате нужна сумма произведений первого и второго столбца, но с ограничением n
Пример. Первый столбец: 1, 2, 5 n=4 n=1+2+1, т.е. из третьей строки берем для умножения только 1
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)))