- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EXCLE中最精确的计算年龄的公式
中午一个同事请教我有关 EXCLE自动计算年龄的方法,当时告诉她应该有一堆公式但是一时
没有谁能记得清楚,答应他回来以后上网查查。
到网上一搜,大失所望。几乎没有一种方法是精确的。
网上搜到的公式大概有这么几种:
1、计算出生日期到某一指定日期(一般选用某年的最后一天入 2006 年 12 月 31 日)的的天
数,然后除以 360 ,得到一个数值,然后用 int() 函数取整,得出需要的年龄。一般使用的
公式如下:
=IF(C12=,,INT(DAYS360(C12,2006-12-31)/360))
聪明一点的人知道使用这个公式,
=IF(C12=,,INT(DAYS360(C12,TODAY())/360))
这个方法, 这个公式的弊端在于, 一、将每个月默认为 30 天去计算两个日期之间的天数, 二、
将每年默认为 360 天去计算年龄。这种方法显然不精确。
2、年份直接相减
计算周岁
=YEAR(NOW())-YEAR(C12)
计算虚岁
=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 日生人,如果要在 2007 年 3 月 23 日这天计算他的年龄,通常采
用这样的方法。
首先,人们会用 2007 减去 1983 得出的年龄为 24 岁,然后再看看他“满没满” 24 岁,就是
看看出生的月份和日期比今天早还是晚,如果出生日期晚于今天则表示没有满,那么他的年
龄就应该是 2007-1983-1=23 岁。如果出生日期早于今天或者就是今天,就说明他已经满了
24 岁或者正好满 24 岁,则他的年龄就是 2007-1983=24 岁。
分析清楚了计算年龄的过程我们再根据这个过程编写公式就很容易了。
综上所述,我编写了如下公式,在实际应用中将公式中所有的 C12 替换为你所使用的出生日
期所在的表格行号列号组合即可。如( A1,B2等等)
=IF(MONTH(NOW())MONTH(C12),INT(YEAR(NOW())-YEAR(C12))-1, IF(MONTH(NOW())MONTH(C
12),YEAR(NOW())-YEAR(C12), IF(DAY(NOW())=DAY(C12),YEAR(NOW())-YEAR(C12),YEAR(NOW
())-YEAR(C12)-1)))
公式说明
IF ( MONTH(NOW())MONTH(C12) , INT(YEAR(NOW())-YEAR(C12))-1 ,
// 如果当前日期的月份小于所需计算日期的月份,则表示今年没有过生日,年龄数为
YEAR(NOW())-YEAR(C12)-1。如果不是这种情况,进入下面的判断
IF ( MONTH (NOW())MONTH(C12) , YEAR(NOW())-YEAR(C12),
// 如果当前日期的月份大于所需计算日期的月份,则表示今年已经过生日,年龄数为
YEAR(NOW())-YEAR(C12)。如果也不是这种情况,则表示这两个月份相等,进入下面的判断
IF ( DAY(NOW())=DAY(C12) , YEAR(NOW())-YEAR(C12) ,
// 如果今天的日期大于或者等于出生年月日中的日期,则表示已经过了生日,或者正在过生
日,则年龄数为 YEAR(NOW())-YEAR(C12),否则表示今年没有过生日,年龄数应该选择下面
您可能关注的文档
最近下载
- 河南省信阳市2024-2025学年普通高中高三第二次教学质量检测英语试卷含答案.pdf VIP
- 解读《GB_T 23850-2024工业高氯酸钠》全面解读.docx VIP
- 总经理股东会汇报.docx
- 2025-2030中国二甲基氨基丙胺(DMAPA)行业市场现状供需分析及投资评估规划分析研究报告.docx
- 上海市浦东新区立信会计金融学院附属高行中学2025-2026学年高三上学期9月教学质量检测数学试题+答案.docx VIP
- 点石斋画报.12集.24册.申报馆编印.1884-1889年.pdf VIP
- 印学话西泠 教学课件.pptx VIP
- 慢性呼吸疾病肺康复护理专家共识.pptx
- 七年级数学上册动点问题练习.docx VIP
- GB50666-2011 混凝土结构工程施工规范.docx
原创力文档


文档评论(0)