星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
1 \( P- {) Z8 `" X: M) G* |8 Q
8 e; R: l3 ~& Q7 W$ B- \6 r* x3 r
一、身份证号码的构成
_ i# _! \% B$ |
6 x& d9 `" q* B现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
2 G6 \/ k) {0 E7 H8 c8 H' t+ S6 e8 `
地址代码(1-6位)
' l' Z" d- f; J6 F0 e
4 h" F/ {# c2 M: e1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
/ _/ ?3 m l' u# q& c% Q; b5 K/ n
1 [- \. _ U' h) o" L/ w8 ?: \2 l6 j生日代码(7-14位)
' q1 C& n6 \/ q' o: n- S
3 Z. B) m& ]6 R# X9 ~; _! b7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
3 Q2 a: S6 ?3 W" U/ R8 r) \
( `: |: G& H& k# y& n$ ]3 w4 q
顺序码(15-17位)
: f, `( @" Q0 A# T- v. m% |: f' O4 ~& C* J5 _$ m3 q3 |
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
: B' Q* V7 r7 j6 k. r
" I/ C {! a1 _6 j: h
校验码(18位)
9 `/ x; H* \$ z$ s9 i) r. Y! A' T% v7 B. K* L' i) r# p
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
* L. e4 D8 Y' h
7 P: ^% o- h! r8 e" t7 ?
二、计算规则
# L% s- K' x6 G T7 z% C, ~, N2 I6 b! E1 I1 P! R. t
1.计算余数
0 x9 f3 J) e9 @ | g
0 o: ?4 N1 E2 \- m' c: z身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
9 Q2 v2 Q6 U( }% _, G2 G6 {" R2 W* D- _7 \0 [
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
: k6 u% o( r4 m$ {
$ K7 W' t" E8 Q2 d0 c; b
=SUMPRODUCT(B2:B18,C2:C18)
) ^% c, X e, P% X0 i
8 H9 ?( u3 |9 c" ?" L随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
, P) h' ?% }" W, v2 `
) n- t9 _7 k! `, X' m+ g- c9 `" ?; s公式=MOD(D19,11)
- L& ?9 y& O) Q: r. M
% X/ w9 W7 ?! Z) H3 r) |2.计算校验码
' o2 d: J7 T8 U7 z
/ o: |0 R2 b* D4 A: z% G求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
3 h$ [: C3 f) X6 M' `' _7 i
" A9 Y3 J: m6 G5 ?因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
1 l; Q. M0 v9 P5 P) y* }; O U7 e& ~3 C$ O* L) D* y6 t0 D
三、禁止录入错误的号码
& ?: ^( b5 `1 W) v0 g/ P- R( I0 F; p
" U# y) B3 r: U9 M# E3 f
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
7 V" {0 h" d& P) ^# L \
5 K' ^' d4 b7 A首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
$ O9 b. z* w/ ~! [5 Q3 B; l7 \4 Z
$ ~- w) w, u) w8 s0 _; A& f! b
公式:=IF(RIGHT(A2,1)="X","X",--RIGHT(A2,1))=VLOOKUP(MOD(SUMPRODUCT(--MID(A2,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1),{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2},2,0)
, _( Z2 H$ _5 e0 d0 \9 W
: ]7 h8 h5 s; Y+ A以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
! G8 p. p2 `* f1 z! z8 t* l/ W( u6 _% Q