星级打分
平均分: 0 参与人数: 0 我的评分: 未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
; P2 K# i8 o. V W. Q 3 p& K9 W1 W/ F! M
一、身份证号码的构成
7 x4 ^9 n1 q9 y! w2 Z/ H# Q) B
9 A. {8 x4 u$ A9 t, y- `
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
6 ]0 F" M, U! }8 O/ D# @
6 m `5 n) x- n( d
地址代码(1-6位)
3 B T1 n t) N5 z' C
% x5 {8 H$ {8 E5 ]/ Y8 B$ O& c 1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
4 {, `/ G) k1 G$ m
+ i) t% t$ V6 k, @
生日代码(7-14位)
1 L0 C$ F1 V+ `
, n3 k/ I6 N( F8 R V 7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
! L) w4 T# m' z6 N; O
6 l- l/ {( C% O5 Z C 顺序码(15-17位)
* N2 K0 _# h: Z$ G3 }4 D! u
; t: n( C- A4 M$ r8 {1 G0 S 15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
' }: [7 Z: q4 }3 ]/ ~% ^% z- L0 Q $ [; f( b: l0 N! q, N" m1 I$ u. K6 a
校验码(18位)
% m4 L$ s4 a( C7 v6 I5 w
Y7 Q% [' w/ ?4 f6 X4 ^- N7 { 顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
, i2 S5 Z3 u3 Y* L; J1 {1 E6 C
% t8 L5 [4 d! q. E) n. i
二、计算规则
5 g* v b9 A% L4 A 1 g0 E$ b) v) \# |) s* L
1.计算余数
; g' \/ s6 g6 \! } 6 L3 T" h/ a! K- p* B
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
% ?; u% E$ ~5 _
0 W" n& D% G! \! ^ 首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
3 ^2 t* X# r ]$ K- Q. f2 {
! I" I% M9 F" t9 Y9 O =SUMPRODUCT(B2:B18,C2:C18)
- ?$ J' i/ e' \ p- U/ Z: J 8 w! G$ L$ A8 r- I5 Z
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
2 p' V, o- {, W- K6 C. c
( W* r4 Q+ f* B- }: I0 V6 ? 公式=MOD(D19,11)
1 m. {8 a5 g7 [
. N0 B8 c- M; z3 k: e: O
2.计算校验码
' K6 {* ]8 ^; ^9 A7 R) F- \- ?, k4 B3 V
1 q) O8 p; d% `. K4 d9 D- ` 求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
; F8 x' x) n3 v! F& J6 S3 E' O' h1 Z
( I9 V2 ?, L$ |! o( C/ k 因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
4 F. F6 I1 Q3 ^7 u5 |1 L . b- x- p2 o4 q5 D+ k: A2 y& {* t) J
三、禁止录入错误的号码
* \6 ?, Z: d& W+ f+ I1 K7 h 1 {* _2 w( d) @
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
/ N( p: Z. J$ i* m
) ~7 r: f- S& Z 首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
) U) \9 {. p3 y- e6 [( G1 o: ]- b6 g ) [( C2 g6 X( E; 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)
2 d& G) T5 U" e' L- ?
% v# w6 h7 A$ p% f( W 以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
" P8 v3 T1 A+ Y% Q
7 d3 R9 ], _' z3 h