星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
) J- m% g. J% v a$ s( H7 {
2 i# b, [% P' Z% C一、身份证号码的构成
4 |( h0 R8 t1 P2 e
' A, D) C C4 e3 |& V# i
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
+ X& S4 [' W& w: I$ z' l
2 |; w. x' ]) ^- }2 b% I地址代码(1-6位)
) b8 ~+ v. a ]- {# |; i1 i* U+ A" X+ R9 k
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
# n; m7 @# K/ t8 R
" K" j- [3 ]- `$ q% a' B5 }
生日代码(7-14位)
+ ^/ j3 u5 o7 ]
3 [) E" {! O8 ~" P- u( G1 O' d7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
( Y8 C% J4 N- ~# r
& a/ N$ p9 Z, F- e顺序码(15-17位)
( R' z: U" Z4 t5 h- w0 H! T& s# h5 l: t1 o
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
7 P, E7 z' N% d" ~3 T$ @2 r. h1 }3 M
8 t* `( \) {4 b( [9 e
校验码(18位)
2 B) G7 Y. T, @) [6 h6 T
2 o, G: d0 z: g* Z
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
3 |/ ^: X5 M1 t2 o6 b5 h7 d' i3 c: A8 I- S( h% ?$ l
二、计算规则
- _4 a& W" [7 {2 O8 l
! K/ ]6 c) S- R1.计算余数
. Q. u5 z& M2 f
* z! h# Z4 `# m8 L" S! F3 L
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
1 e& X$ @3 G; G+ C# x* N
/ m) {" N+ w O1 S
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
8 F) t! Z, J% x" n+ w& o
# J2 k+ d3 `- J=SUMPRODUCT(B2:B18,C2:C18)
9 M' U! [$ m( K3 }; _" T
8 M$ ]) x q# v4 M' B# q随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
" Z8 S1 _) t9 r% @( N
" `( D. w" }' O0 r: }5 S- l公式=MOD(D19,11)
" g& C* e. d; {" ]
' e; Z- @/ f D( d* c, c! \
2.计算校验码
5 p8 }9 [% h, p9 f2 u0 X7 P$ r
8 B6 ~( O1 f; A# ~3 s% ?. F求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
; C& M8 r4 n* N0 c9 {9 A5 k
8 f1 {5 ~8 X. Z/ C% ^
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
6 L, k' M* z5 ]* P
8 Q" Q$ u* @4 p0 ^! H三、禁止录入错误的号码
! S5 r9 {+ t) W+ l$ N* R2 f! z4 }
! Q/ R; {2 k- I3 O7 c0 T利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
3 j$ ^! l0 ]; F' j, y J/ y$ B- C) y' r8 @9 D8 _; h
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
1 I9 x% x0 T$ Y
- Q1 q- A5 O3 X( `公式:=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)
" G5 Q. I' F* o0 \( F" n4 t
$ @& Q4 h1 F2 J# U6 B* ]以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
8 M' [2 N7 \, q: P
+ m0 u: r7 \, O0 P* d; w0 ~