身份证统计与出生日期常见错误!

前言

当需要对身份证等超过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)

相关推荐