如何用条件组装偏移功能?

问题描述 投票:-2回答:1

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

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

这是我的数据:

enter image description here

输出示例:

我从第一个日期(1986年12月31日)开始,看到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年

excel vba excel-formula excel-2010 excel-2016
1个回答
0
投票

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

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

Column C formula

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

Column D formula

现在我从每个范围中得到最小值,我只需将其与90%值进行比较。

Column E formula

© www.soinside.com 2019 - 2024. All rights reserved.