Возвращает заголовок столбца, когда прогрессивная разница значений в строке становится <= 0
У меня есть таблица Excel с начальным запасом для позиции и прогнозируемого потребления на основе соответствующих дат в заголовке. Я хотел бы получить дату, когда будет дефицит, вычисляя прогрессивную разницу. Я показываю только одну строку, но обычно у меня около 3000 строк. Я хотел бы найти формулу, которая возвращает дату дефицита для каждой строки.
Чего я хотел бы достичь:
1 ответ
Может быть, это можно сделать с помощью формулы, использующей SUM, OFFSET и INDEX.
Однако я не беспокоюсь о сложных формулах и вместо этого прибегаю к ALT + F11.
Sub DateOfShortage()
StartLine = 2
EndLine = 6
StartColumn = 3
EndColumn = 7
For Line = StartLine To EndLine
Stock = Cells(Line, 2)
For Column = StartColumn To EndColumn
Stock = Stock - Cells(Line, Column).Value
If Stock <= 0 Then
Cells(Line, EndColumn + 1).Value = Cells(1, Column).Value
Exit For
End If
Next Column
Next Line
End Sub
Пример данных и результатов:
Если вы добавите строку " Расчет" для каждого элемента, как показано на одном из ваших снимков экрана, вы можете легко получить требуемую дату с помощью формулы массива (все еще выглядит слишком сложной для моих вкусов):