在 Excel 中有一個日期清單,如何在下拉式清單選取月份列出該月清單?
【公式設計與解析】
首先,來看看比較簡單的做法:月份以數值(1~12)表示。
選取儲存格A3:C100,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:日期、人員、數值。
1. 列出日期
儲存格G4:=FILTER(日期,MONTH(日期)=E4)
利用 MONTH 函數取出月份,再和日期陣列比,再以 FILTER 函數篩選符合條件者的日期。
2. 列出人員
儲存格H4:=FILTER(人員,MONTH(日期)=E4)
利用 MONTH 函數取出月份,再和日期陣列比,再以 FILTER 函數篩選符合條件者的人員。
3. 列出數值
儲存格I4:=FILTER(數值,MONTH(日期)=E4)
利用 MONTH 函數取出月份,再和日期陣列比,再以 FILTER 函數篩選符合條件者的數值。
如果你想以一個公數來取代三個公式,則可以利用 INDIRECT 函數:
儲存格G4:=FILTER(INDIRECT(G3),MONTH(日期)=$E$4)
複製儲存格G4,貼至儲存格G4:S4。
接著,如果月份要以文字(一月、二月、…、十二月)放在下拉式清單中。
先定義名稱「月份」,參照內容:
=MATCH($E$4,{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"},0)
在 MATCH 函數中,根據儲存格E4的內容和陣列比對,傳回位置的數值(1~12)。
調整公式:
儲存格G4:=FILTER(日期,MONTH(日期)=月份)
儲存格H4:=FILTER(人員,MONTH(日期)=月份)
儲存格I4:=FILTER(數值,MONTH(日期)=月份)
附帶說明:
如果要產生字串:{"一月";"二月";"三月";"四月";"五月";"六月";"七月";"八月";"九月";"十月";"十一月";"十二月"}
(1) 在儲存格A3中輸入「一月」。
(2) 拖曳儲存格A3右下角控制點,自動產生一月~十二月。
(3) 利用公式:=ARRAYTOTEXT(A3:A14,1)
【參考資料】
FILTER 函數參考微軟提供的說明網頁:FILTER 函數
【延伸學習】
留言列表