如果要在Excel中確定某年是否為閏年,可以用下面的方法,假如指定的日期在A1單元格。
使用公式:
=IF(OR(MOD(YEAR(A1),400)=0,AND(MOD(YEAR(A1),4)=0,MOD(YEAR(A1),100)<>0)),"閏年","非閏年")
例如A1單元格為“1900-1-1”,公式返回“非閏年”。
還可以使用下面的公式,對于閏年公式返回“1”,非閏年返回“0”。
=(MOD(YEAR(A1),4)=0)-(MOD(YEAR(A1),100)=0)+(MOD(YEAR(A1),400)=0)
下面的公式比較簡潔,除1900年外都能正確判斷:
=IF(DAY(DATE(YEAR(A1),2,29))=29,"閏年","非閏年")
使用自定義函數:
按Alt+F11,打開VBA編輯器,單擊菜單“插入→模塊”,在右側的代碼窗口中輸入下面的VBA代碼:
Public Function IsLeapYear(ByVal Date1 As Date) As Boolean
Y = Year(Date1)
IsLeapYear = Month(DateSerial(Y, 2, 29)) = 2
End Function
或:
Function IsyLeapYear(ByVal Date1 As Date) As Boolean
Y = Year(Date1)
IsyLeapYear = IIf(Y Mod 100 = 0, Y Mod 400 = 0, Y Mod 4 = 0)
End Function
關閉VBA編輯器,在A1單元格中輸入日期格式的數據,在另一單元格中輸入:
=IsLeapYear(A1)
或:
=IsyLeapYear(A1)
對于閏年公式將返回“TRUE”,非閏年返回“FALSE”。
上述公式或自定義函數對1900年以前年份的判斷也是正確的。如果只需要判斷1900年以后的年份,還可以用下面的幾個公式:
=IF(DAY(DATE(A1,3,0))=29,"閏年","非閏年")
=IF(MONTH(DATE(A1,2,29))=2,"閏年","非閏年")