星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
/ T* b8 {6 a0 O% I& }
/ D5 t, T S) T; K一、身份证号码的构成
0 _& X% Q% `' [0 k) ?8 z4 w6 [) `; \
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
: N- V# v# F0 @, L$ Z K/ i& \8 c8 Y$ |: S$ G/ q5 R' r! Q+ `/ e* V0 ~
地址代码(1-6位)
+ t! w3 A+ ? L9 ?( L: q
# m6 {) n [: e0 X7 C% b8 v; C1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
O1 f8 z9 I8 `4 N+ R4 S- }1 D
+ y' I1 f. H; U) B( i% P+ B
生日代码(7-14位)
' B6 g/ C) E( [# z1 ^$ E, R$ t2 e
' [, X8 g' M# V
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
+ |: q! h% E; R
% h0 N/ Y: ?' _" U/ x
顺序码(15-17位)
2 a4 \* Y, m8 }# J
5 @ \0 ^! S! @
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
* x9 v/ ^$ ^8 R1 [8 M/ Q8 n8 Q
6 c+ b. W2 ]( _& m4 q校验码(18位)
8 }8 o) v; b7 j, g
* B; W- n% [; e: ?# g ^ b$ W. \顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
0 ~) M& C: y/ j2 t4 e( s. S. J' a0 ^
8 e5 e6 A+ B. R5 P' R# J二、计算规则
6 K5 G6 p; z6 U4 q1 q- }. i7 _' b9 l, _3 b
1.计算余数
, w) i4 P+ E9 a3 m$ o6 U+ f' t5 k' X" t" v. K
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
/ U) F* Y8 s! z' x5 Y
# S# H/ Z* d3 I/ X
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
2 T, y* O. w) {* J7 T+ ^
5 Z6 u' R' S3 I. g! ~ H=SUMPRODUCT(B2:B18,C2:C18)
: x M; J8 M- J* _! y
( y% j8 m* x1 M# r" B7 k随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
, z$ J. o! y2 ?' N+ D0 n& e
' u9 h9 |2 T& Y) q
公式=MOD(D19,11)
5 a/ d o5 G' m8 Y7 A4 W
; Q, N, f7 @% X7 E% F! m' h1 `2.计算校验码
1 P1 n9 _0 S* M6 i' V2 h
; r& o. ~6 v% p1 J, s
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
0 z& g" [) f. {7 }
9 D. {- p: h; f0 R6 g因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
$ C8 {' ]& _% {' w$ D
* b7 T" T% M" I4 e) v
三、禁止录入错误的号码
: v; _, z: X$ t2 k( K, l d
6 B7 w0 ?: S' ^1 Q. [利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
# j1 E4 O U# Q8 e3 y5 f
: N7 H# I5 q" z" P- m3 J
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
' P1 r+ O4 f1 I/ |/ X8 o- a
- A1 u7 w3 B" O3 |% D/ o h- J0 [公式:=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)
! K! K2 ?3 O8 e6 C. r0 R% s6 n+ } v, U# ~
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
9 z3 K5 [6 }0 \- w/ I/ J" ]6 u- r
( g7 T+ i; p& Y9 ]- |$ j8 u