2017-02-08 49 views
0

這是這裏的問題稍微調整形式:Calculating Weekly Returns from Daily Time Series of Prices這是由@Scott克拉納回答:計算從價格的每日時間序列週報返回v2的

我想從時間計算基金的收益週報系列每日價格。我的數據如下:

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 
.  
.  
.  

我正在尋找一種方式來告訴練成「找到對應於連續兩週的分平日價格,應用公式「(下週第一個工作日的價格 - 本週第一個工作日的價格)/(本週第一個工作日的價格)」。

我希望有任何幫助!連續幾年,每日價格爲20只共同基金)

回答

1

在我看來,你可以生成你的專欄E與th是公式中E2

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

這是限制從聲明新的一週每一行的下一個7行的VLOOKUP。

複製到所有單元格中將顯示第一個表格中顯示的結果。要將此結果轉換爲列表(Week, Return)是一個過濾器,它隱藏了E的空白。

注意如果達到新的一年,當從一個WeekNum重新啓動時可能出現的問題,但因爲你說,每個表的是一個(日曆)以來,它不應該發生的。

+0

謝謝@ A.S.H,用分號取代昏迷,該公式完美運作。我手動檢查了週數少於五個工作日的週數,即以1-5周以外的平日開始的週數。沒問題。它將研究IF和VLOOKUP函數來找出這個公式實際做了什麼,再次感謝! – orkanoid

+0

@orkanoid很高興知道它幫助:)。基本上,「IF」只用於顯示具有新周編號的行。核心是'VLookup',我們依靠它保證返回第一個匹配的行。 –