Как собрать функцию смещения с условием? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть данные даты в столбце A и данные значений в столбце B.

Моя цель состоит в том, чтобы для каждой даты в столбце A: посмотрите, не превышает ли одно значение (столбец B) в течение 1 года менее 90% соответствующего значения даты.

Это мои данные:

enter image description here

Пример вывода:

Я начинаю с первого свидания (31.12.1986) и вижу значение 900.82. Я исчисляю 900,82 * 0,9 = 810,73 Итак, я смотрю, если значение в строке 3 уступает 810,73,

  • Если нет

Я смотрю, если значение в строке 4 уступает 810.73, строка 5, 6, 7, 8 ..... в течение 1 года (это означает, что я прекратил это 31.12.1987).

  • Если это

Я останавливаюсь и смотрю следующую дату (01.01.1987) и делаю то же самое.

Я согласен перевести его в код VBA, но в Excel это может быть лучше.

Я впервые попробовал алгоритм, чтобы понять проблему:

-Look the first date in column A
-Look the corresponding value in Column B and save it as Value
-Offset to the next date in column A
-Look the corresponding value in Column B and save it as Range.to.compare
-If Range.to.compare < Value * 90% then write "ok" in Column C
-Else, Offset to the next date in column A...
-Untill 1 Year (Untill Year(Date in Column A)<Year(Date in Column A) +1

Я пытаюсь перевести его в Excel или VBA.

Это то, что я пробовал в Excel:

First excel try

Но это работает только на 1 день вместо 1 года

1 Ответ

0 голосов
/ 15 апреля 2019

Я думаю, это то, что вы ищете. Я разбил расчет на несколько столбцов, чтобы показать шаги.

Сначала я вычисляю значение 90% в столбце С.

Column C formula

Столбец D - это место, где происходит большая часть магии. В столбце D я нахожу все строки, у которых есть дата <текущая дата + 1 год, и получаю значение (Col B) для каждой из этих строк. Затем я беру минимум всех этих значений. Обратите внимание, что это формула массива, поэтому вам нужно нажать shift-ctrl-enter после ее ввода. </p>

Column D formula

Теперь, когда у меня есть минимум из каждого диапазона, мне просто нужно сравнить его со значением 90%.

Column E formula

...