如何用EXCEL函数计算年份是否为闰年?

例如A1 1954年

工具:office excel

步骤

    判断公式一:=COUNT(--(B1&"-2-29"))

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

    判断公式二:=MONTH(DATE(B1,2,29))=2

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

    判断公式三:=DAY(DATE(B1,3,0))=29

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

    判断公式四:=TEXT(B1+400&-2&-29,"闰年;;;平年")

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

    TEXT(参数,"结果1;结果2;结果3;结果4"),TEXT对第一参数判断,分大于0、小于0、等于0和文本四种情况分别返回:=TEXT(参数,"大于0时;小于0时;等于0时;是文本时")。上例中第一参数是日期,是一个大于0的数字,则返回第一个分号之前的内容,如果是文本则返回最后一个分号后的内容。

    判断公式六(基础的IF函数判断):

    =IF(MOD(B1,4)>0,"平",IF(MOD(B1,100)>0,"闰",IF(MOD(B1,400)>0,"平","闰")))

    含义:MOD()函数是取余数的函数,比如说MOD(10,4)就是10除以4的余数,返回2。MOD(8,4)返回0,因为8能被4整除,余数是0。

    IF判断过程如下:如果年份除以4余数大于0,就是不能被4整除,是平年,返回“平”;下一步能被4整除但不能被100整除,是闰年,返回“闰”;再下一步能被100整除,但不能被400整除(也就是mod(B1,400)>0)是平年,返回“平”,反之返回“闰”。


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-29
设A1单元格为年份录入格,在其他任意单元格录入此公式:=IF(OR(AND(MOD(A1,4)=0,MOD(A1,100)<>0),AND(MOD(A1,400)=0,MOD(A1,3200)<>0)),"闰年","非闰年")。公式原理基于闰年的计算方法:公元纪年的年数可以被四整除但不能被100整除或者被400整除不能被3200整除的为闰年。如2000年是闰年,而1900年不是。3200年不是闰年,3600年是闰年。
第2个回答  2017-06-21
=IF(DAY(DATE(LEFT(A1,4),3,1)-1)=29,"闰年","平年")
第3个回答  2013-10-29
你把时间除以4,得整数就是闰年,整数年像2000年之类的除外
相似回答