EXCEL中如何判断闰年?

近日,在讨论群里有人讨论excel判断的闰年的问题。现在,笔者就分享一下excel用函数判断闰年的方法,以供大家阅读和学习。

我们知道,年份只需要符合以下两种情况中的一种就是闰年:

1.能被4整除,但是不能被100整除;

2.能被400整除。

这样,我们就可以在excel中以这个方法来写判断闰年的公式了:

公式1:=IF(OR(AND(MOD(A2,4)=0,MOD(A2,100)<>0),MOD(A2,400)=0),"闰年","平年")

由于能被400整除的年份,一定能被4整除,我们的公式还可以这样写:

公式2:=IF(MOD(IF(MOD(A2,100)=0,A2/100,A2),4)=0,"闰年","平年")

以上公式是根据闰年的定义来判断闰年的,但有的小伙伴马上想到了,在EXCEL中,只要判断年份有无2月29日,就可以知道该年份是不是闰年了。那么我们就来思考一下以这个思路来怎么写公式:

公式3:IF(COUNT(--(A2&"-2-29")),"闰年","平年")

公式解析:A2&"-2-29"部分返回一个文本日期格式,比如"2008-2-29"。再用减减该文本,如果2008-2-29这个日期存在(也就是闰年时),文本会变成数字,否则变成错误值。而COUNT函数只统计数字的个数,所以如果是闰年COUNT返回TRUE,是平年返回FALSE。

也可以不实用COUNT函数,公式可以这样写:IF(ISERR(--(A2&"-2-29")),"平年","闰年"),利用ISERR函数来判断是不是错误值,如果是错误值就返回TRUE,也就是平年,否则返回FLASE,也就是闰年。

公式4:IF(MONTH(DATE(A2,2,29))=2,"闰年","平年")

公式解析:=DATE(年,月,日)返回一个日期,DATE(A2,2,29)这个函数如果A2年份2月只有28天,就会自动变成DATE(A2,3,1),也就是“日”会自动进位到“月”。只要判断DATE(A2,2,29)这个日期的月份就可以了。而MONTH函数就返回日期的月份,只要判断返回结果是不是2就可以了。

公式5:=IF(DAY(DATE(A2,3,0))=29,"闰年","平年")

公式解析:DATE(A2,3,0)由于最后的“日”输入的是0,所以返回3月1日前一天的日期。DAY()函数返回日期“年月日”中的“日”。如果3月1日的前一天是29号(也就是闰年时)结果返回TRUE,否则返回FALSE。

公式3至公式5都是通过判断2月29日来判断年份是否为闰年的。但是,细心的小伙伴发现了1900年实际上并不是闰年,但公式3至公式5都判断1900年为闰年了。这是怎么回事呢?原来,这是微软公司当年开发EXCEL的时候,为了兼容当时流行的表格处理软件Lotus,保留了1900-2-29这个不存在的日期。这也算是EXCEL一个小小的bug吧!为了避免这个bug,我们的公式还可以这样写:

公式6:=TEXT(A2+400&-2&-29,"闰年;;;平年")

公式解析:A2是年份,加上400不影响闰年的判断,但屏蔽了excel表格中对1900年的特殊规定。“年份&-2&-29”返回一个日期格式,如果确实是日期,则TEXT返回大于0时的结果“闰年”,如果不是日期则判断为一个文本,返回文本时对应的“平年”。

以上就是整理的判断闰年的方法,欢迎大家留言讨论!

举报
评论 0