计算年龄公式
一个同事请教我有关Excel自动计算年龄的方法,本人不太了解,晚上到网上一搜,
大失所望,几乎没有一种方法是精确的。寻寻觅觅了好久,终于发现了Shally的博客里
的一篇文章,试了一下,这个公式计算非常精确,在此和大家分享一下。
以下为博客全文:
网上搜到的共式大概有这么几种:
1、计算出生日期到某一指定日期(一般选用某年的最后一天入2019年12月31日)
的的天数,然后除以360,得到一个数值,然后用int()函数取整,得出需要的年龄。一
般使用的公式如下:
=IF(C12="","",INT(DAYS360(C12,"2019-12-31")/360))
聪明一点的人知道使用这个公式,
=IF(C12="","",INT(DAYS360(C12,TODAY())/360))
这个方法,这个公式的弊端在于,一、将每个月默认为30天去计算两个日期之间的
天数,二、将每年默认为360天去计算年龄。这种方法显然不精确。
2、年份直接相减
计算周岁
=YEAR(NOW())-YEAR(C12)
-1-
计算虚岁
=YEAR(NOW())-YEAR(C12)+1
这种算法的精确程度显而易见,粗略估算还算可以。
3、使用DATEDIF函数
这种方法与第一种方法采用了相同的思路,但是其的精确程度显然比第一种方法要高,
这取决于DATEDIF函数本身的精确性。
=IF(C12="","",INT(DATEDIF(C12,"1983-3-20","D")/365))或者,
=IF(C12="","",INT(DATEDIF(C12,now(),"D")/365))
但是这种方法强行将一年固定为365天,我们知道通常情况每个四年就有一年是366
天所以这种算法也不是很精确。
通过认真分析,我觉得只有结合我们计算年龄的实际方法,才能编制出准确无误的公
式。首先分析人们计算年龄的方法,例如,笔者系1983年3月20日生人,如果要在2019
年3月23日这天计算他的年龄,通常采用这样的方法。首先,人们会用2019减去1983
得出的年龄为24岁,然后再看看他“满没满”24岁,就是看看出生的月份和日期比今天
早还是晚,如果出生日期晚于今天则表示没有满,那么他的年龄就应该是2019-1983-1=23
岁。如果出生日期早于今天或者就是今天,就说明-2-
他已经满了24岁或者正好满24岁,则他的年龄就是2019-1983=24岁。分析清楚了
计算年龄的过程我们再根据这个过程编写公式就很容易了。
综上,我编写了如下公式,在实际应用中将公式中所有的C12替换为,你的所使用的
出生日期所在的表格行号列号组合即可。如(A1,B2等等)
=IF(MONTH(NOW())MONTH(C12),YEAR(NOW())-
YEAR(C12),IF(DAY(NOW())>=DAY(C12),YEAR(NOW())-YEAR(C12),YEAR(NOW())-YEAR(C12)-
1)))
公式说明
=IF(MONTH(NOW())
INT(YEAR(NOW())-YEAR(C12))-1,
//如果当前日期的月份小于所需计算日期的月份,则表示今年没有过生日,年龄数为
YEAR(NOW())-YEAR(C12)-1,如果不是这种情况,进入下面的判断
IF(MONTH(NOW())>MONTH(C12),YEAR(NOW())-YEAR(C12),//如果当前日期的月
份大于所需计算日期的月份,则表示今年已经过生日,年龄数为YEAR(NOW())-YEAR(C12),
如果也不是这种情况,则表示这两个月份相等,进入下面的判断过程去判断,日期的情况。
-3-
IF(DAY(NOW())>=DAY(C12),YEAR(NOW())-YEAR(C12),
//如果今天的日期大于或者等于出生年月日中的日期,则表示已经过了生日,或者正
在过生日,则年龄数为YEAR(NOW())-YEAR(C12),否则表示今年没有过生日,年龄数应该
选择下面的公式,大小为YEAR(NOW())-YEAR(C12)-1)))
-4-
本文发布于:2023-01-29 21:47:51,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/158744.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |