Мне было дано задание уменьшить одну сумму значений, сохранив при этом другую как можно более постоянной. У меня есть два вклада:
Номер товара, вклад 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. Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.
С уважением,
Макс