如何assemble 偏移函数与条件?

How to assemble Offset function with Condition?

我在 A 列中有日期数据,在 B 列中有数值数据。

我的目标是对于 A 列中的每个日期: 查看 1 年内的某个值(B 列)是否小于该日期相应值的 90%。

这是我的数据:

输出示例:

我从第一个日期 (31/12/1986) 开始,看到 900.82 值。 我计算 900.82 * 0.9 = 810.73 所以我看看第 3 行中的值是否低于 810.73,

我看看第 4 行的值是否低于 810.73, 第 5、6、7、8 行......在 1 年期间(这意味着我在 1987 年 12 月 31 日停止)。

我停下来查看下一个日期 (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 尝试过的:

但它只工作 1 天而不是 1 年

我认为这就是您所追求的。我将计算分成多列以显示步骤。

首先,我在 C 列中计算 90% 的值。

D 列是最神奇的地方。在 D 列中,我找到所有日期 < 当前日期 + 1 年的行,并获取这些行中每一行的值 (Col B)。然后我取所有这些值中的最小值。请注意,这是一个数组公式,因此您需要在输入后按 shift-ctrl-enter。

现在我有了每个范围的最小值,我只需要将其与 90% 的值进行比较。