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))}
在 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))}