Excel公式由身份证号码计算性别年龄出生日期
来源:网络收集 点击: 时间:2024-03-30首先介绍Microsoft Excel中的一个字符串函数mid函数的用法,它是专门截取字母串中的部分字符的函数。
函数语法格式=mid(text,start_num,num_chars)
mid(字符串,开始截取位置,截取字符个数)
那么从身份证号(A2)的第17位开始截取1个字符,及身份证的第17位,如下图所示在B2的位置输入“=mid(A2,17,1)”,剩下的下拉句柄即可。
如第一个身份证截取的17号位置为1。

第二个函数是求余函数——mod函数,判断17号位的数字是奇数还是偶数的,按规则:奇数表示男性,偶数表示女性。
函数语法格式=mod(number,divisor)
mid(字符串,开始截取位置,截取字符个数)
身份证第17位除以2的余数,即=mod(mid(A2,17,1),2)

第三步就是利用if函数判断给定的对错了,满足返回前一个,不满足返回后一个
即=IF(MOD(MID(A2,17,1),2)=1,男,女),这个也就是最终的答案使用时用这个即可。函数字母的大小写都可以。


出生年月日其实比较直观,数字的提取采用上面的mid函数。从身份证第7位提取4个字符作为年份,在第11位提取2字符作为月份,在第13位提取2字符作为日期。
然后使用Date函数,将提取的数字变为日期格式进行显示。DATE函数的基本构型是DATE(year,month,day)
2/5在出生日期(E2单元格)输入下列公式,然后下拉句柄即可。
=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2))

DATE其实只是在年月日间插入了\字符,而如果需要更多样式,则可以自行设计。这里介绍一个“”符号的作用(称作AND) ,起着字符串的连接作用。
例如,=百度 经验,结果是百度经验。
这里也给大家准备了多种示例,供大家参考,见下图。
例如,=MID(A58,7,4)年MID(A58,11,2)月MID(A58,13,2)日
的结果是1976年05月12日,它就是利用年,成功地将所需字符插入到年月日中间。

还可以使用一个文本函数——TEXT函数来完成这项工作,Excel中的TEXT函数是将一数值转换为按指定格式表示的文本的函数,也就是把数字转换成文本格式。其语法格式为:TEXT(value,format_text),Value可以是数值、计算结果为数值的公式,或对数值单元格的引用。而Format_text是所要选用的文本格式。
而输出成日期格式的Format_text,0-00-00,这个format是从后往前计算的,最后的两个字符占据最后的00,然后中间的两个字符占据中间的两个00,
剩下的字符占据第一个0,这里的第一个0可以写成0000、000、00、0,但不能多,否则日期前会加一个0。

具体的函数格式如下,含义为从第七号位截取8个字符,按照0-00-00格式排列:=TEXT(MID(A67,7,8),0-00-00)
如果你问我怎么知道这个格式的,右键单元格,悬着“单元格格式”对话框中选择“数字”选项卡,在“分类”列表框中选择“特殊”,然后在右侧的“类型”框中选择“中文小写数字”最后再返回到左侧“分类”列表框中单击“自定义”, 就能看到format_text的具体格式样式了。

利用DATEDIF函数计算两日期之差。
函数语法为:DATEDIF(start_date,end_date,unit)
分为三种,计算年龄选用第一种。
=DATEDIF(A1,TODAY(),Y)计算年数差
=DATEDIF(A1,TODAY(),M)计算月数差
=DATEDIF(A1,TODAY(),D)计算天数差
2/2我们已经知道出生年月的DATE了
=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2))
再将它与today比较一下年数差即可,输入下列公式,然后下拉句柄。
=DATEDIF(DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)),TODAY(),y)
也可以使用TEXT函数。
=DATEDIF(TEXT(MID(A73,7,8),0-00-00),TODAY(),y)

学习资料我已经上传到百度文库中:https://wenku.baidu.com/view/f5dfa04278563c1ec5da50e2524de518964bd3fd
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_385279.html