INDEX/MATCH 最接近特定日期的值

INDEX/MATCH for closest value to a certain date

在 sheet "Dividends" 中,我有一个 table,股息按每日日期排序。例如,A 列和 B 列包含以下条目:

6/14/2015    
6/13/2015    
6/12/2015    0.045
6/11/2015
6/10/2015

这意味着该股票在 2015 年 6 月 12 日支付了 0.045 的股息。

在另一个 sheet "AdjClose" 中,我有一个包含每周日期和股票价格的 table,例如

6/15/2015   1.23
6/8/2015    1.24
6/1/2015    1.06
5/30/2015   1.10
5/23/2015   1.22
5/16/2015   1.20

我现在要计算收益率,用股息除以最接近股息支付日期但小于该日期的股票价格。

结果应该是:

0.045/1.24

我该怎么做?非常感谢任何输入。

为简化代码,以下 4 个命名范围: "Dividends":股息日期(A 列);已付股息(B 列) "AdjClose":股票日期(A 列);股票价格(B 列)

尝试(在 "Dividends" 的 C 列中:

{=INDEX(StockPrice;MATCH(MAX(IF((StockDates<=A1);StockDates));StockDates;0))}

假设您要查找调整后股票价格的股息日期在单元格 A1 中。

并抄下每个股息日期。这将为您提供最接近分红日期但早于分红日期(如果是同一日期)的股票价格。然后除以你当天的股息(在我写的公式中,或者在单独的专栏中。总是很好地展示你的计算步骤,所以更容易理解。

并且记得在输入公式时按 CTRL + SHIFT + ENTER,而不仅仅是 ENTER,因为它是一个数组公式。

编辑:此外,您需要更改 ;到 ,如果这是您所用语言的公式分隔符。

不是最好看的,但是一个选项:

{=B3/INDEX(AdjClose!$B:$B,MATCH(MAX((AdjClose!$A:$A<=Dividends!A3)*AdjClose!$A:$A),AdjClose!$A:$A,0))}

选项 #2 - 更好,因为没有重复范围:

{=B3/INDEX(AdjClose!$B:$B,MATCH(1,--(AdjClose!$A:$A<=Dividends!A3),0))}