星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
% u# @4 W& W. T# w8 z8 ?$ E4 L
U3 N) a- K5 z$ `: P% S一、身份证号码的构成
( C+ k# ^7 W5 u; v2 t. B6 l6 L* ?- O$ K% C4 g7 Z! R' r, N
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
9 [' u, u4 P$ @ {
5 h8 c/ N6 W! t0 p1 D, p地址代码(1-6位)
1 Y3 e8 }1 w8 _; j* G. Z5 e& o) u5 g- S& K2 K7 ~) |0 K
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
- S. t0 b* q) V. m5 x
6 d' E$ Y' g6 g生日代码(7-14位)
) d) c- d1 P4 T& x) G( u3 e6 |" X& d. g1 z* N2 {0 g
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
9 F5 J' m2 o5 W4 \* [4 W( s
+ |( I: y6 w7 u T& Z顺序码(15-17位)
9 D& A7 f' Y: z; M& }6 a$ W5 G& i% _7 r# ]
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
) N7 m) f: D7 S- C; O y
' q% H9 U/ o8 B2 D) o校验码(18位)
* V% W- f& g% A& ^2 K! D% c- O5 `8 M9 {) H. d# v
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
# {' b. v' u( I) H# p, g
* D# L% I& r# |8 E二、计算规则
' \8 _$ f3 C& e% i
; N3 I; x; f; S
1.计算余数
: j- C0 }# Y& C2 h k8 ^, m6 l
' U$ B, O1 J$ ?- h7 Q身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
6 m$ }7 `3 B7 V/ j: M% S
! `; a8 |" ?% d$ C2 k8 Y/ H首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
. m' e7 Y, i* d s7 H& u8 X# \* j* M# l2 h
=SUMPRODUCT(B2:B18,C2:C18)
/ E+ {2 E) h. F. Q p
. {' l! L5 {, z
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
6 [3 o' d2 Q0 g' N! `
2 \. c' e. e3 w) R公式=MOD(D19,11)
- M% ^& j6 u) x& L1 T- n
! O6 o5 p, J/ P5 R2 v4 S2.计算校验码
8 [. w' B' X* a1 p
- R7 z. W, N5 i8 }7 t+ N; a; P求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
6 L6 @' ^' `, Z! H# d& O+ A& i. m' Y# d3 L5 O% d! d
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
9 b W; b6 m' t4 i) A6 V! D' O0 s4 }& F) ?1 l7 g
三、禁止录入错误的号码
+ E+ m6 M9 c% p7 y9 f% q. K3 z: o+ I. I
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
. x* E: L3 B |
; U1 v- d/ b' J! y# ?; Q4 R
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
0 k- R8 z; U3 w0 b1 b7 L
5 t) p5 p" M! d公式:=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)
9 h4 y/ Q: \! E3 j4 D9 J$ n
8 n5 X* v4 `/ c- l, l以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
& L" \ M+ O' s
1 j& [9 n% ?' r& @# m3 K