怎样从Excel表格中根据身份证号码提取出生日期、性别和怎样计算工龄?本例完成下图所示任务:利用身份证号码、入职日期,自动计算出性别、出生日期、工龄三项数据。一、身份证号码的结构国内身份证号码一共由18位组成,整体格式为 ABCDEF YYYYMMDD XXXY这4个段组成。其中:1-6位:即ABCDEF,用于表示地址码,即户口所在地编码。7-14位:即YYYYMMDD,表示出生年月日,其中年占4位,月日各占两位。15-17位:即XXX,表示顺序码,同一地址、同一出生日期的人的顺序编号。其中第17位用于对性别进行编号,男为奇数,女为偶数。18位:即Y,表示校验码,根据前17位通过加权公式计算得出,用于检验号码是否合法。结果为 0-9 或 X(罗马数字10,对罗马数字感兴趣可以查阅穿越千年的符号:一文读懂罗马数字的奥秘!)。二、根据身份证号码求性别1、用MID函数获取身份证号码中的第17位数字MID函数的格式为:MID(内容C, 起点S, 数量L)。其作用是从C的第S个符号开始,连续取L个符号。如前图中,甲同志身份证号码第17位的获取公式为:=MID(B2, 17, 1)。表示从身份证号码的第17位开始,取1位符号。2、用MOD函数判断身份证第17位的奇偶性MOD函数格式为:MOD(n, x)。其作用是取n除以x的余数。判断一个数字n的奇偶性,只要看n除以2的余数,余数为0则是偶数,否则就是奇数。所以,我们只需要将MOD(n, x)中的n用身份证号码的第17位替换,x用2替换即可,得出公式:=MOD((MID(B2,17,1), 2)。3、用IF函数根据MOD函数的值确认结果IF函数的格式为:IF(条件c, 成立时的值t, 不成立时的值f)。其作用是:如果条件c成立,则结果为t,否则结果为f。所以,我们可以得出一个基本公式框架为:=IF(身份证第17位为偶数, "女", "男")。那么身份证第17位为偶数如何表示呢?根据第1、2点可得出对应公式为:MOD(MID(B2,17,1), 2)=0,即第17位除以2的余数为0。最后,得出甲同志的性别公式为:=IF(MOD(MID(B2,17,1),2)=0, "女", "男")公式中,红色部分为身份证号码的第17位,绿色部分表示该位数字为偶数。结果如下图所示三、获取出生日期1、用MID函数从身份证号码中分别获取出生年、月、日。通过身份证号码的组成结构,可知第7-10位是年(共4位),第11-12位是月(共2位),第13-14位是日(共2位)。那么可得:年=MID(B2, 7, 4),月=MID(B2, 11, 2),日=MID(B2, 13, 2)⚠️注意:MID的最后一参数是截取的个数,不是截取的目标位置对应的序号。2、将获取的年月日构造成一个日期数据⚠️许多文章中提到:获取到出生日期的年月日以后,就用字符串拼接或TEXT函数强制显示为日期的样子,其实这样得到的结果不是一个有效的Excel日期数据,我们应该使用date函数来正确构造一个日期,这样才能参与日期的运算。DATE函数的格式:DATE(年, 月, 日)。其作用是:根据指定的年、月、日构造出一个对应的日期格式的数据。所以,我们只需要将DATE函数中的年、月、日用第1步中的年、月、日替换掉即可,最终得出甲同志的出生日期公式为:=DATE(MID(B2,7,4), MID(B2,11,2), MID(B2,13,2))公式中的红、绿、蓝分别代表年、月、日。最终结果如下图所示从上图可以看出:我们不仅得到了正确的出生日期,而且这个结果的类型是“日期”型。四、计算工龄在实际工作应用中,计算工龄都是按周年为单位,比如:每满干满一年,工龄工资累加100元。即:如果未满3年,只能算2年。要计算出工龄年份,我们需要3个条件:(1)入职日期(已知)。(2)今天日期(未知)。(3)计算今天的日期与入职日期满了几年?TODAY函数格式:TODAY()。其作用是获取今天的日期。DATEDIF函数格式:DATEDIF(小日期, 大日期, "类型")。其作用是计算从小日期开始,到大日期满了几年(或几月,或几日。具体由“类型”来决定)。这正好符合我们的工龄计算需求,其中,类型可以是:Y(或y)、M(或m)、D(或d),分别表示年、月、日。现在3个条件都有了,我们得出甲同志的工龄计算公式为:=DATEDIF(C2, TODAY(), "Y")公式中,红色为入职日期,绿色为今天日期,蓝色表示求年份差。最终结果如下图所示用这个方法,同样可以求是否可以退休,计算周岁等。⚠️注意:日期的大小关系是“今天>昨天”,即较早的日期较小。在DATEDIF函数中,如果把两个日期大小搞错了,可能得到#NUM!的错误。今天的内容涉及的函数相对较多,但都比较简单,您可以照着文章中的数据和要求自行练习、掌握。遇到问题可以评论区交流~~~