又快到了228連假,每年這時就會想起今年是否為閏年,是否有2/29?
先前這二篇利用 Excel 為工具,用不同的方式來判斷每一年是否為閏年。
這篇是以判斷每一年是365天還是366天來判斷是否為開年。
這篇是以判斷每一年有沒有2/29來決定該年是否為閏年。
以下提供幾種方式,都是依 Excel 特性所建立的公式,藉此來練多個公式的使用。
【設計與解析】
(1) 儲存格B4:=NOT(DATE(A4,2,29)=DATE(A4,3,1))
因為,在 Excel 裡的 DATE 函數裡,如果日期超過該月的最大天數,則會自動進位到下一個月。所以如果沒有2/9,則會顯示 3/1。以此認定是否為閏年。
(2) 儲存格B4:=DATE(A4+1,1,1)-DATE(A4,1,1)=366
計算代入的年份所有的天數是否為366天,若是則為閏年。
(3) 儲存格B4:=DAY(DATE(A4,3,0))=29
因為,在 Excel 裡的 DATE 函數裡,如果日期小於該月的最小天數(1),則會自動顯示為上一個月。所以沒有3/0,則會顯示二月的最後一天。以此認定是否為閏年。
(4) 儲存格B4:=COUNT((A4&"/2/29")*1)=1
利用 A4&"/2/29" 轉換日期格式為數值,如果有2/29,則 COUNT 函數會傳回「1」。
(5) 儲存格B4:=ISNUMBER((A4&"/2/29")*1)
利用 A4&"/2/29" 轉換日期格式為數值,再以 ISNUMBER 函數判斷是否為數值。以此判斷是否存在 2/29。
(6) 儲存格B4:=MONTH(DATE(A4,2,29))<>3
因為,在 Excel 裡的 DATE 函數裡,如果日期超過該月的最大天數,則會自動進位到下一個月。所以如果沒有2/9,則會顯示 3/1。所以如果 MONTH 函數取出的月份為「3」者,表示 2 月份沒有 29 天。
(7) 儲存格B4:=TEXT(DATE(A4,2,29),"m/d")="2/29"
利用 TEXT 函數將 DATE 函數取得的日期格式顯示為 m/d 格式,再和 2/29 比對是否相等。
還有很多函數可以來判斷是否為閏年,你也來想想吧!
如果你想判斷年份是否為閏年,則可以利用微軟提供的說明:
https://docs.microsoft.com/zh-tw/office/troubleshoot/excel/determine-a-leap-year