计算每日时间系列价格的每周回报v2

这是一个稍微调整的问题的版本在这里: 计算从每日时间系列的价格每周回报这是@斯科特回答:

我想从一个时间序列的每日价格计算共同基金的每周回报。 我的数据如下所示:

ABCDE DATE WEEK W.DAY MF.PRICE WEEKLY RETURN 02/01/12 1 1 2,7587 -0,0108 03/01/12 1 2 2,7667 04/01/12 1 3 2,7892 05/01/12 1 4 2,7666 06/01/12 1 5 2,7391 09/01/12 2 1 2,7288 0,0067 10/01/12 2 2 2,6707 11/01/12 2 3 2,7044 12/01/12 2 4 2,7183 13/01/12 2 5 2,7619 16/01/12 3 1 2,7470 0,0511 17/01/12 3 2 2,7878 18/01/12 3 3 2,8156 19/01/12 3 4 2,8310 20/01/12 3 5 2,8760 23/01/12 4 1 2,8875 

date是(dd / mm / yy)格式,“,”是小数点分隔符。 这将通过使用以下公式来完成:(下周第一个工作日的价格 – 本周第一个工作日的价格)/(本周第一个工作日的价格)。 例如,第一周的回报是(2,7288-2,7587)/ 2,7587 = -0,0108,第二周的回报是(2,7470-2,7288)/ 2,7288 = 0,0067。

问题是这个名单持续了一年,由于假期或其他原因,几个星期的时间不到五个工作日。 有些星期从星期2开始,有些星期是星期三。所以我不能简单地复制和粘贴上面的公式。 我使用WEEKNUM和WEEKDAY函数为周数和周日添加了额外的两列,可能会有所帮助。 我想用一个公式自动化这个,希望得到这样的表格:

 WEEK RETURN 1 -0,0108 2 0,0067 3 0,0511 . . . 

我正在寻找一种方法来告诉excel“find对应于连续两周最低工作日的​​价格并应用公式”(下周第一个工作日的价格 – 本周第一个工作日的价格)/(价格为本周第一个工作日)“。

我将不胜感激任何帮助! (我连续5年有5个单独的工作表,每个价格为20个共同基金)

在我看来,你可以用E2这个公式生成列E

 =IF(B2=B1, "", (VLOOKUP(1+B2, B3:D9, 3, FALSE) - D2)/D2) 

这是一个VLookup限制在每行的下一个7行声明一个新的一周。

复制到所有的单元格会给你的第一个画面显示的结果。 把这个结果转换成列表(Week, Return)是一个隐藏E空白的filter。

请注意,如果WeekNum在新的一年到达时重新启动,可能会出现问题,但由于您说每张表都是为了一个(日历)年,所以不应该发生。