
我正在開發一個 Excel 項目,其中有一個 Excel 工作表,其中包含 20 年每天的每日百分比收益率數據。我只對每個月第一個條目的收益率感興趣。我怎麼才能使用Excel來完成這個任務?
我對 Excel 相當陌生,非常感謝任何詳細的幫助。
tl:dr 以某種方式將每日資料轉換為每月資料(每月第一次出現)
答案1
要產生每個月的第一個條目,請遵循以下所示的方法:
怎麼運作的:
儲存格 O58 中的陣列 (CSE) 公式:
{=MIN(IF(TEXT($K$58:$K$73,"MMMM")=$N58,$K$58:$K$73))}
儲存格 P58 中的公式:
=IFERROR(INDEX($L$58:$L$73,MATCH($O58,$K$58:$K$73,0)),"")
注意
如果你想跳過O列中的Helper數據,那麼你可以使用這個數組(CSE)公式:
{=IFERROR(INDEX($L$58:$L$73,MATCH(MIN(IF(TEXT($K$58:$K$73,"MMMM")=$N58,$K$58:$K$73)),$K$58:$K$73,0)),"")}
完成數組公式Ctrl+Shift+Enter。
您可以根據需要調整公式中的儲存格參考。
答案2
假設您的日期位於 A 列,收益率資料位於 B 中。並將此公式輸入到 C2 中:
=DAY(A2)=1
或跳過週末(即每月的第一個工作天)
=DAY(A2)=DAY(WORKDAY(EOMONTH(A2,-1),1))
或更簡單的選項(以防錯過日期/數據點)
=MONTH(A3)<>MONTH(A2) ...start from C3 (make C2 = TRUE)
這實際上將獲取月份發生變化的第一個數據點(與上面的行相比)。
雙擊儲存格 C2 的右下角(點擊先前滑鼠遊標將變為加號)。這將自動向下填充公式以及所有資料(只要公式列和資料之間沒有空白列)。
現在選擇整個標題行,按一下「開始」>「排序和過濾」>「過濾」。您應該會看到每個列標題旁邊出現小箭頭。點選“是第一天嗎?”旁邊的箭頭並取消選取“FALSE”。現在,該月所有非首次出現的事件都將被隱藏。如果需要,您可以將此資料複製並貼上到新工作表中。若要再次查看所有數據,請按一下“主頁”>“排序和過濾”>“清除”。