Как с суммировать с опредленный условие, помогите пожулуйста
Модератор: Naeel Maqsudov
-
- Сообщения: 2
- Зарегистрирован: 11 фев 2008, 11:25
Как можно реализовать с помощью Exсel & Vb следующие действия : Имеется ряд производльных чисел например 1, 2, 2, 4, 2.4, 3.4, 5 и так далее Есть критерий по которому нужно их суммировать, верней что бы сумма не превышала допустим 10 (заданное число) Суммировать нужно так чтобы было как можно чисел составляющих в сумме 10 (возможно погрешность +-1, тоесть 9,5 тоже сойдет как результат )чтобы не включать самые большие числа в расчет. Если не понятно выразился сформулирую по другому.
если вам нужно, чтобы сумма не превышала заданное число, то сделайте так:
numbers - массив ваших чисел
sum = 0
i = 0
While sum < 10
sum = sum + numbers(i)
i = i + 1
Wend
А чтобы в сумму включались минимальные значения, просто отсортируйте свой массив чисел по возрастанию
numbers - массив ваших чисел
sum = 0
i = 0
While sum < 10
sum = sum + numbers(i)
i = i + 1
Wend
А чтобы в сумму включались минимальные значения, просто отсортируйте свой массив чисел по возрастанию
-
- Сообщения: 2
- Зарегистрирован: 11 фев 2008, 11:25
В этом и проблема нельзя отсортировать по возрастанию, очень большая база несколько тысяч ячеек, надо что бы сравнение , можно создать сначало копию с адресацией , отсортировать , а потом вернуть, но не уверен что прокатит.
создайте список на основе своего массива
отсортируйте его по возрастанию
а потом его можно удалить
Код: Выделить всё
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$A$200"), , xlNo).Name = _
"list"
Код: Выделить всё
Range("A1:A2000").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Код: Выделить всё
ActiveSheet.ListObjects("list").Unlist