从价格的每日时间序列 v2 计算每周 Returns
Calculating Weekly Returns from Daily Time Series of Prices v2
这是此处问题的略微调整版本: @Scott Craner 回答:
我想根据每日价格的时间序列计算每周 return 秒的共同基金。我的数据如下所示:
A B C D E
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
日期为(dd/mm/yy)格式,“,”为小数点分隔符。这将通过使用以下公式来完成:(下周第一个工作日的价格 - 本周第一个工作日的价格)/(本周第一个工作日的价格)。例如,第一周的 return 是 (2,7288 - 2,7587)/2,7587 = -0,0108,第二周是 (2,7470 - 2,7288)/2,7288 = 0,0067.
问题是这个列表持续了一年,有些周因为节假日或其他原因少于五个工作日。有些星期从工作日 2 开始,有些星期从工作日 3 结束。所以我不能简单地复制并粘贴上面的公式。我使用 WEEKNUM 和 WEEKDAY 函数为周数和工作日添加了额外的两列,认为这可能有帮助。我想用公式自动执行此操作,并希望得到这样的 table:
WEEK RETURN
1 -0,0108
2 0,0067
3 0,0511
.
.
.
我正在寻找一种方法来告诉 excel 到 "find the prices that correspond to the min weekdays of two consecutive weeks and apply the formula "(下周第一个工作日的价格 - 本周第一个工作日的价格)/(当前周第一个工作日的价格周)”。
如有任何帮助,我将不胜感激! (我连续几年有 5 个单独的工作表,每个都有 20 个共同基金的每日价格)
在我看来,您可以使用 E2
中的公式生成您的列 E
:
=IF(B2=B1, "", (VLOOKUP(1+B2, B3:D9, 3, FALSE) - D2)/D2)
这是一个 VLookup,仅限于声明新一周的每一行的接下来的 7 行。
复制到所有单元格将给出第一个画面中指示的结果。将此结果转换为列表 (Week, Return)
是一个过滤器的问题,它从 E
.
中隐藏空白
请注意,如果 WeekNum
在新的一年从一个重新开始,可能会出现问题,但由于您说每个工作表都是一年(日历年),所以它不应该发生.
这是此处问题的略微调整版本:
我想根据每日价格的时间序列计算每周 return 秒的共同基金。我的数据如下所示:
A B C D E
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
日期为(dd/mm/yy)格式,“,”为小数点分隔符。这将通过使用以下公式来完成:(下周第一个工作日的价格 - 本周第一个工作日的价格)/(本周第一个工作日的价格)。例如,第一周的 return 是 (2,7288 - 2,7587)/2,7587 = -0,0108,第二周是 (2,7470 - 2,7288)/2,7288 = 0,0067.
问题是这个列表持续了一年,有些周因为节假日或其他原因少于五个工作日。有些星期从工作日 2 开始,有些星期从工作日 3 结束。所以我不能简单地复制并粘贴上面的公式。我使用 WEEKNUM 和 WEEKDAY 函数为周数和工作日添加了额外的两列,认为这可能有帮助。我想用公式自动执行此操作,并希望得到这样的 table:
WEEK RETURN
1 -0,0108
2 0,0067
3 0,0511
.
.
.
我正在寻找一种方法来告诉 excel 到 "find the prices that correspond to the min weekdays of two consecutive weeks and apply the formula "(下周第一个工作日的价格 - 本周第一个工作日的价格)/(当前周第一个工作日的价格周)”。
如有任何帮助,我将不胜感激! (我连续几年有 5 个单独的工作表,每个都有 20 个共同基金的每日价格)
在我看来,您可以使用 E2
中的公式生成您的列 E
:
=IF(B2=B1, "", (VLOOKUP(1+B2, B3:D9, 3, FALSE) - D2)/D2)
这是一个 VLookup,仅限于声明新一周的每一行的接下来的 7 行。
复制到所有单元格将给出第一个画面中指示的结果。将此结果转换为列表 (Week, Return)
是一个过滤器的问题,它从 E
.
请注意,如果 WeekNum
在新的一年从一个重新开始,可能会出现问题,但由于您说每个工作表都是一年(日历年),所以它不应该发生.