如果要在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程式碼:
PublicFunctionIsLeapYear(ByValDate1AsDate)AsBoolean
Y=Year(Date1)
IsLeapYear=Month(DateSerial(Y,2,29))=2
EndFunction或:FunctionIsyLeapYear(ByValDate1AsDate)AsBoolean
IsyLeapYear=IIf(YMod100=0,YMod400=0,YMod4=0)
EndFunction
關閉VBA編輯器,在A1單元格中輸入日期格式的資料,在另一單元格中輸入:
=IsLeapYear(A1)或:=IsyLeapYear(A1)
對於閏年公式將返回“TRUE”,非閏年返回“FALSE”。
上述公式或自定義函式對1900年以前年份的判斷也是正確的。如果只需要判斷1900年以後的年份,還可以用下面的幾個公式:
=IF(DAY(DATE(A1,3,0))=29,"閏年","非閏年")
=IF(MONTH(DATE(A1,2,29))=2,"閏年","非閏年")
如果要在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程式碼:
PublicFunctionIsLeapYear(ByValDate1AsDate)AsBoolean
Y=Year(Date1)
IsLeapYear=Month(DateSerial(Y,2,29))=2
EndFunction或:FunctionIsyLeapYear(ByValDate1AsDate)AsBoolean
Y=Year(Date1)
IsyLeapYear=IIf(YMod100=0,YMod400=0,YMod4=0)
EndFunction
關閉VBA編輯器,在A1單元格中輸入日期格式的資料,在另一單元格中輸入:
=IsLeapYear(A1)或:=IsyLeapYear(A1)
對於閏年公式將返回“TRUE”,非閏年返回“FALSE”。
上述公式或自定義函式對1900年以前年份的判斷也是正確的。如果只需要判斷1900年以後的年份,還可以用下面的幾個公式:
=IF(DAY(DATE(A1,3,0))=29,"閏年","非閏年")
=IF(MONTH(DATE(A1,2,29))=2,"閏年","非閏年")