新的一年又要到了,有人想要列出每一年裡的星期六和星期日的日期,該如何設計?
在下圖中,只要輸入年份,即可產生當年的所有星期六和星期日列表。
【公式設計與解析】
為了簡化公式,先定義儲存格範圍名稱:DATA
參照到:=ROW(INDIRECT(DATE($B$1,1,1)&":"&DATE($B$1,12,31)))
DATE($B$1,1,1))和DATE($B$1,12,31),用以產生每年第一天和最後一天的日期。
透過 INDIRECT 函數將DATE($B$1,1,1)&":"&DATE($B$1,12,31)轉換成儲存格參照。
再透過 ROW 函數取得儲存格範圍,ROW 函數會傳回數值。例如,
DATE(2022,1,1)換算為數字:44562,DATE(2022,12,31)換算為算字:44926。
結果可得「44562:44926」
接著輸入公式:
儲存格D3:{=IFERROR(SMALL(IF(WEEKDAY(DATA,2)>5,DATA,""),ROW(1:1)),"")}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
複製儲存格D3,貼至儲存格D3:D108。
透過條件:WEEKDAY(DATA,2)>5,判斷是否為星期六或星期日,
如果成立,則傳回列號,如果不成,則傳回空字串。
再利用 SMALL 函數由小至大取出每一筆並列出。
因為可能傳回錯誤訊息,所以利用 IFERROR 函數將錯誤訊息轉為空字串。
文章標籤
全站熱搜
留言列表