身份证统计与出生日期常见错误!
前言
当需要对身份证等超过15位的数字统计个数时,我们发现以前学过的COUNTIF函数不好用了,就像牛顿经典力学不适用于在微观领域一样。举例如下:
很明显10个身份证是不同的,虽然前16位相同,但后两位有明显的区别,为什么公式统计出来是10个相同的呢?
这归根到底,还是EXCEL的精度造成的,因为EXCEL只能精确到15位,15位之后的数字会变成0,我们验证一下:将身份证改成数字格式时,结果如下图所示,这就不能难理解为什么10个都是重复的了!
1解决方法
将公式改动一下,把原来的A2改成A2&”*”
完整的公式为:=COUNTIF($A$2:$A$11,A2&'*')
通过身份证与*连接起来,相当于加了一个通配符,强制将身份证转化成文本格式,以实现不重复统计。
2取身份证出生日期
取身份证出生日期,总公式:
=--TEXT(MID(A2,7,8),'0000-00-00')
分解如下
=--TEXT(MID(A2,7,8),'0000-00-00')
=--TEXT(“20001101”,”0000-00-00”)
=--“2000-11-01”
=36831
=#2000/11/1#
解释:
出生日期1=MID(A2,7,8):从身份证号码中取中间第7位开始,长度为8位的数字,生成的是文本格式“20001101”
出生日期2=TEXT(MID(A2,7,8),'0000-00-00'):对取出的文本,设置格式为0000-00-00,仍然是文本格式”2000-11-01”
出生日期3=--TEXT(MID(A2,7,8),'0000-00-00'):将文本格式强制转化成数字为:36831
出生日期4:设置出生日期3为日期格式,从而实现从身份证中取出并返回真正的日期格式:2000/11/1
知识点
身份证统计方法
身份证取出生日期方法
MID
TEXT
--
END
赞 (0)