星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
+ x3 Z7 G4 B; d' l% s+ f
7 @ _ G2 X( H, x2 \5 o1 J0 n( Z4 x
一、身份证号码的构成
. T( | I' P1 t, e* L
4 N! F6 t' x7 A6 Q/ Z" L
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
' }- i7 ^. ^5 h- E! r
: R: `7 G% L. ]: ~( B
地址代码(1-6位)
5 A5 F; n- c" J8 [* p$ T
) n+ p' e* @' {! }1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
/ K w6 o6 }9 E
5 s1 \, W c- F$ Y- z& F1 j生日代码(7-14位)
6 }4 L+ ?8 I l5 M. ]
$ I2 Q, r- m) P( U7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
7 h6 @, T9 _: b0 J" O$ k' y2 y* K% ?/ Y7 `
顺序码(15-17位)
% C, ^* x4 `$ @5 l: V$ K. x' f* G( q
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
3 h5 d! F2 T1 A2 F( N1 W3 [4 y3 j
$ E; y" m8 [4 T9 o2 K8 Z8 @校验码(18位)
# x6 Z0 @& N# i
& K7 b$ Y' x' O% n7 e0 O# W
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
% g; t6 _. n# S$ |* o
4 }/ k0 U; ^( [+ X! W
二、计算规则
; t* i \( r2 k! Y7 l/ V; h
( ^/ r. D+ P7 i7 U$ `1 f4 L% L1.计算余数
1 g, R9 v. L- @! q" ?. J9 B
+ N, b) n" O- q4 S% l身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
$ ~/ I$ @& [$ X6 U7 L" [& M1 I
; Q- Y' U& Q/ U8 d; v2 O首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
0 L8 B5 x5 c* H0 U; a# f# y$ K4 K9 g1 z5 Y+ G
=SUMPRODUCT(B2:B18,C2:C18)
1 _' t3 K- h5 y
+ ]7 x a! ~4 Y& ?: B0 G" X随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
! R7 J+ c2 W6 Q3 H( _6 F
# X- O g4 u" F) Z; f公式=MOD(D19,11)
5 a$ p8 r5 u M( w
- D, d, y# z+ q
2.计算校验码
7 J3 \8 O7 g6 P) L: b& q9 {+ T4 ~9 z$ \( D/ @# }. @
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
5 g& C" X7 h1 a' V' }+ Q, z* D0 P" Z" `- e( k0 s
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
: h( Q- N( b+ c6 I% ?$ V
4 L5 ?1 p: O. ?# t三、禁止录入错误的号码
- O/ `" N5 {5 [* n, Y
# y% ~! \) X* C: d) |! X! J利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
& _) q( H( [2 S5 O6 E* p+ k, C
! a z6 r0 w' e& e; U; @首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
7 d" Z/ ^8 n z$ B& j& Y; } X: p. c+ T2 r# Z
公式:=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)
C3 B& H$ z9 z! b" w2 V* H
, d/ g3 A+ [ ^6 S
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
! m1 A5 Y' x2 K
* a$ v' ?; k: g