Возвращает заголовок столбца, когда прогрессивная разница значений в строке становится <= 0

262
Catalin Valeanu

У меня есть таблица Excel с начальным запасом для позиции и прогнозируемого потребления на основе соответствующих дат в заголовке. Я хотел бы получить дату, когда будет дефицит, вычисляя прогрессивную разницу. Я показываю только одну строку, но обычно у меня около 3000 строк. Я хотел бы найти формулу, которая возвращает дату дефицита для каждой строки.

То, что я хотел бы достичь, это:

  • добавить столбец с указанием даты дефицита: capture 2
  • дата соответствует моменту, когда акция станет отрицательной (см. рисунок, чтобы узнать, как это сделать) capture 3
1
Пожалуйста, добавьте описание и снимок экрана того, чего вы хотите достичь, чтобы другие могли попытаться получить это из ваших входных данных (пожалуйста, опубликуйте больше входных данных). Кроме того, вы упоминаете массив, но не ясно, где этот массив. Добавьте больше деталей и полный, воспроизводимый пример. simlev 5 лет назад 0
@simlev - я добавил больше информации в свой пост. пожалуйста, дайте мне знать, если сейчас ясно. У меня есть ряд значений потребления (на дату), которые будут вычтены из запаса (запас - дата1 - дата 2 - дата 3 и т. Д.). Поэтому мне интересно узнать, в какой день акции опустятся ниже 0. Спасибо! Catalin Valeanu 5 лет назад 0

1 ответ на вопрос

0
simlev

Может быть, это можно сделать с помощью формулы, использующей 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 

Пример данных и результатов:

enter image description here


Если вы добавите строку « Расчет» для каждого элемента, как показано на одном из ваших снимков экрана, вы можете легко получить требуемую дату с помощью формулы массива (все еще выглядит слишком сложной для моих вкусов):

enter image description here

Похожие вопросы