请帮我翻一下VBA的用公式法提取身份证信息中的年龄信息的这一句语言。
发布网友
发布时间:2022-04-22 23:05
我来回答
共1个回答
热心网友
时间:2023-10-08 16:08
比较长但不难理解,分开理解:
一、DATEDIF(【求两个日期之间的周年数】,即身份证上的出生日期与今天的日期之间的周年数;
二、DATE(【确定出生年、月、日】;
三、MID(B3,7,4-(LEN(B3)=15)*2),MID(B3,11-(LEN(B3)=15)*2,2),MID(B3,13-(LEN(B3)=15)*2,2)),【这里看着很长,分开三部分看,实际就是分别取身份证上的"年"、"月"、"日"。MID(B3,7,4-(LEN(B3)=15)*2):B3单元格,从第七个字符开始,取连续4减(这里要判断减数“(LEN(B3)=15)”,意思是B3单元格身份证号码是否是15位,如果是则4减1=3,如果不是则4减0=4)个(即第7、8、9这3个或第7、8、9、10这4个)字符,后面同理,只不过取的是”月“、”日“,也是根据身份证长度判断到底取哪一位】
四、NOW(),【今天的日期,作为与身份证上的日期比较】
五、"Y")【两个日期的比较取”周年“为结果,如果把”Y“换成”m“则返回”月份“的个数,换成"d"则返回”天数”】
给你另外一个公式:
=IF(LEN(B3)=18,DATEDIF(DATE(MID(B3,7,4),MID(B3,11,2),MID(B3,13,2)),NOW(),"Y"),DATEDIF(DATE(MID(B3,7,2),MID(B3,9,2),MID(B3,11,2)),NOW(),"Y"))
一样可以用,看看这个公式与你给出的有什么区别。