当前位置: 首页 > 实用技巧 > Excel – 根据身份证号码计算年龄,生日没过的减去一岁

Excel – 根据身份证号码计算年龄,生日没过的减去一岁

2021年02月16日 15:49:58 来源:Excel学习世界 访问量:90

大家去医院看病的时候,不知道有没有注意过,医生打印出来的单据上,年龄是生物学上的真正年龄(当然,希望大家都身体健康,不要生病)。

这是什么意思呢?举个极端的例子,两个人的出生年月日可能只相差一天,但显示的年龄却差了一岁。

为何如此?因为其中一个人的生日还没有到,就被视为尚未满下一岁,因此会自动扣除一岁。

在 Excel 中是否能按这个规则计算出年龄呢?

案例:

根据下图中 A 列的身份证号码,在 C 列提取出生日期,在 D 列计算出实际年龄,如果生日还没到,则自动减去一岁。

效果如下图 2 所示。

Excel – 根据身份证号码计算年龄,生日没过的减去一岁
Excel – 根据身份证号码计算年龄,生日没过的减去一岁

解决方案:

1. 在 C2 单元格中输入以下公式 --> 下拉复制公式:

=TEXT(MID(A2,7,8),"0-00-00")

公式释义:

  • MID(A2,7,8):从 A2 单元格字符串的第 7 位开始,一共提取 8 位字符串
  • =TEXT(...,"0-00-00"):将 MID 函数提取的字符串转换日期的样子;但此时的结果仅仅是看上去像日期,还不是真正的日期格式,尚且不能参与后续的计算

有关 text 函数的详解,请参阅 Excel函数(七)–用Text看我格式72变 

Excel – 根据身份证号码计算年龄,生日没过的减去一岁
Excel – 根据身份证号码计算年龄,生日没过的减去一岁

2. 在 B2 单元格中输入以下公式 --> 下拉复制公式:

=DATEDIF(--C2,TODAY(),"y")

公式释义:

  • --C2:
    • 刚才已经说过,text 提取出来的字符不是真正的日期格式,所以需要在 C2 前面添加两个减号,这叫做减负运算,即负负得正,从而将文本格式的数值变成真正的日期格式;
    • 如果将“--”替换成“1*”,也可以实现同样的效果
  • TODAY():今天的日期
  • DATEDIF(--C2,TODAY(),"y"):
    • 计算出生日期和今天日期之间的差值,返回整年数;
    • 第一个参数是开始日期,第二个参数是结束日期;
    • "y"表示时间段中的整年数

有关公式中“--”的含义和 datedif 函数的详解,请分别参阅以下推文:

  • Excel – 公式中的“--”是什么意思?
  • Excel函数(五) – 用 datedif 写情书
Excel – 根据身份证号码计算年龄,生日没过的减去一岁
Excel – 根据身份证号码计算年龄,生日没过的减去一岁
Excel – 根据身份证号码计算年龄,生日没过的减去一岁

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

编辑:王应平
评论区
发表评论

评论仅供会员表达个人看法,并不表明网校同意其观点或证实其描述
教育部 中国现代教育网 不良信息 垃圾信息 网警110
静乐县杜家村学区版权所有
中华人民共和国电信经营许可证 京ICP备13002626号-8
联系地址:静乐县杜家村
京公网安备11010502032087
现代教育网 提供技术支持 违法和不良信息举报中心
Copyright 2006-2021 us.jldjcxq.30edu.com.cn , All Rights Reserved
忻州师范学院五寨分院 忻州教育网 静乐县教育科技局 阜宁县实验初级中学 忻州市和平小学 山西省忻州市七一路学校 代县职业技术学校 大英县隆盛镇小学校 百花齐放网 山西省左权县寒王学校 保德县教育科技局 五台县龙泉学校 陕西省宝鸡中学 霍山县黑石渡中心学校 新晃一中 山西省忻州市长征小学 北大荒知青网 四川省南充龙门中学 舒城县干汊河中心校 中国正能量 黎平县第八中学