2023-03-09 09:01来源:m.sf1369.com作者:宇宇
1、打开一个excel表格:
2、在A1单元格内输入需要查询的年份,例如1990(1990是平年,不是闰年):
3、在B1单元格内输入公式=IF((MOD(A1,400)=0)+(MOD(A1,4)=0)*MOD(A1,100),闰年",平年"):
4、输入完公式回车可以看到刚才输入1990年是否是闰年:
5、在A1单元格输入2016或者其他任意闰年检验,公式得出的结果与实际相符:
如果要在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,闰年,非闰年)
假设A1 单元格为2012-1-23
B1公式:
=IF(MOD(YEAR(A1),4),平年,闰年)
假设A1 单元格只是年份2012
B1公式:
=IF(MOD(A1,4),平年,闰年)
能被4整除的就是闰年,在A1单元格输入2007常规数值,向下以序列方式填充到2013,在B1输入
=IF((INT(A1/4)=A1/4),闰年,) 向下拖拉,就一目了然了。