【问题标题】:Calculating Weekly Returns from Daily Time Series of Prices v2从每日价格时间序列计算每周收益 v2
【发布时间】:2023-04-10 16:12:02
【问题描述】:

这是此处问题的略微调整版本:Calculating Weekly Returns from Daily Time Series of Prices @Scott Craner 已回答:

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

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) 格式,“,”为小数分隔符。这将通过使用以下公式来完成:(下周第一个工作日的价格 - 本周第一个工作日的价格)/(本周第一个工作日的价格)。例如,第一周的回报是 (2,7288 - 2,7587)/2,7587 = -0,0108,第二周的回报是 (2,7470 - 2,7288)/2,7288 = 0,0067。

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

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

我正在寻找一种方法来告诉 excel“找到与连续两周的最小工作日相对应的价格并应用公式”(下周第一个工作日的价格 - 本周第一个工作日的价格) /(当周第一个工作日的价格)"。

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

【问题讨论】:

    标签: vba excel excel-formula finance


    【解决方案1】:

    在我看来,您可以使用E2 中的这个公式生成您的列E

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

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

    复制到所有单元格将给出您的第一个画面中指示的结果。将此结果转换为列表(Week, Return) 是一个过滤器的问题,该过滤器将E 中的空白隐藏起来。

    请注意,如果 WeekNum 在新的一年到来时从一个重新启动,则可能会出现问题,但由于您说您的每张工作表都是针对一个(日历)年的,因此不应该发生。

    【讨论】:

    • 谢谢@A.S.H,用分号替换逗号,公式效果很好。我手动检查了少于五个工作日的周,即以 1-5 以外的工作日开始的周。没问题。它将研究 IF 和 VLOOKUP 函数以找出这个公式的实际作用,再次感谢!
    • @orkanoid 很高兴知道它有帮助:)。基本上,IF 仅用于显示具有新周数的行。核心是VLookup,我们依赖于它保证返回第一个匹配行的事实。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多