|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 wwwconsumer 于 2013-10-6 08:30 编辑
笔者所在的一家大型跨国公司,员工有几千人,但在汇总身份证时发现有以下错误:出身日期有时为1950年的错录为2050年,月、日都没错。笔者也想通过身份证号码转化出生日期函数直接更改,函数是这样的:=IF(LEN(f2)=18,CONCATENATE(MID(f2,7,4),"-",MID(f2,11,2),"-",MID(f2,13,2)),CONCATENATE(19,MID(f2,7,2),"-",MID(f2,9,2),"-",MID(f2,11,2))) ,但发现有以下几个问题:1、根据中国身份证号修改时,但个别中国身份证号是错误的(见图一),
还有就是如果是港澳台、外国人的话也函数也不适用(见图二)。
图二
笔者的思路是:1、首先判断是否为中国身份证,如果是的话(15位或18位数字),就直接通过函数转成出生日期和后面的性别;2、如果中国身份证录入错误的话,或者港澳台外国身份证的话(非15位或18位数字),就对出生日期直接进行判断,如果是2053年的就改成1953年,后面的性别一列保持原来的格式不变。这个可以VBA做到吗?
员工身份证.rar
(4.07 KB, 下载次数: 21)
|
|