網友再次詢問到在 Excel 中,萬年月曆的做法。
在下圖中,只要在儲存格A3中輸入西元年,即可產生該年裡12個月的月曆,每個日期可以分別對照到星期幾。
【公式設計與解析】
儲存格B4:=DATE($A$3,COLUMN(A1),1)-WEEKDAY(DATE($A$3,COLUMN(A3),1),2)+ROW(1:1)
複製儲存格B4,貼至儲存格B4:M41。
(1) DATE($A$3,COLUMN(A3),1)
在 DATE 函數裡利用 COLUMN 函數來產生 1~12 月的參數。
COLUMN 函數會傳回欄的號碼,公式向右複製時,COLUMN(A3)=1→COLUMN(B3)=2→COLUMN(C3)=3→…。
DATE 函數可以產生每個月的第一天。(下圖中已設定儲存格的數值格式:mm/dd)
(2) WEEKDAY(DATE($A$3,COLUMN(A1),1)-2)
利用 WEEKDAY 函數取得每月第1天傳回值。
在 WEEKDAY 函數中使用參數「2」,作用為:
傳回 1,表示日期是星期一。
傳回 2,表示日期是星期二。
…
傳回 7,表示日期是星期日。
(3) DATE($A$3,COLUMN(A1),1)-第(2)式
儲存格B4是因為設定由星期一開始,所以要找出每個月對應第一個星期一的日期。
而 DATE($A$3,COLUMN(A1),1)-第(2)式,即為第一個日期。
如果你想要將非每個月的日期,要以淡灰色顯示,可以使用設定格式化的條件。
(1) 選取儲存格B4:M40。
(2) 在設定格式化的條件裡:
規則類型:使用公式來決定要格式化哪些儲存格
設定規則:=MONTH(B4)<>COLUMN(A:A)
設定格式:文字色彩為淡灰色
公式:=MONTH(B4)<>COLUMN(A:A)
以儲存格B4為例,將每個儲存格裡的日期,以 MONTH 函數取出月份,再和 COLUMN(A:A)=1 比較,若不是 1 者(12月或2月)即會顯示淡灰色。
留言列表