Необходимо уменьшить сумму значений, сохраняя при этом другую сумму как можно более постоянной - PullRequest
0 голосов
/ 04 марта 2020

Мне было дано задание уменьшить одну сумму значений, сохранив при этом другую как можно более постоянной. У меня есть два вклада:

Номер товара, вклад 1, вклад 2 1, 100, 200 2, 150, 300 3, 200, -400 4, 300, 500 5, 100, -200 ...

(Примерно 5000 таких записей, с vatiable Contribution 1 и 2).

Мне нужно удалить один элемент (строку) за раз и вывести следующие результаты для каждой итерации: Сумма вклада 1 Сумма вклада 2

Я сделал это с помощью следующего кода VBA:

For i = 1 To 5000
    If .Cells(i, 2) <> 0 Then
        .Cells(i, 2) = 0
        .Cells(i, 3) = 0



        Application.Calculate

.Cells(i, 5) = Sheets("results").Cells(45, 5)
.Cells(i, 6) = Sheets("results").Cells(25, 5)
//where results sheet contains the sum of column 2 and 3
    End If

    If i Mod 500 = 0 Then
        Debug.Print i
    End If
Next i
End With

Однако мне нужно добавить противопоставления, где: Хотя получить сумму взносов 1 как можно ближе Держите сумму взносов 2 такой, какой она была. (в пределах 10% от первоначального значения)

Перед удалением элемента код должен проверить, приблизит ли сумма вкладов 1 к нулю, а сумма вкладов 2 все еще находится в пределах 10% от исходного значения.

Сильно ценим вашу помощь. Может быть сделано в VBA или Python. Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.

С уважением,

Макс

...