星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
8 ~+ ^- w1 f2 @0 I
( T2 x2 V& z% o; d! z9 h- X
一、身份证号码的构成
3 c0 T& H4 x+ Z6 K; x/ v9 Y
) f6 X4 Q/ m7 m+ r2 Q, K
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
, [- p2 Y, H+ }* C' J6 C
# ]0 x8 c$ n3 o! o地址代码(1-6位)
( _3 |' ^$ _) A$ L
& X! R( i" c9 v' l2 D6 O1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
; V7 u3 R( s# g% d$ b& z3 S: h! l- C
生日代码(7-14位)
( X$ ^, Y7 O E/ d3 t4 V9 B% R0 D2 C+ G2 @1 l" c- t& ]
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
6 |: j# ~. T `& z
: U+ \4 m4 y5 I
顺序码(15-17位)
. y; @7 x& d4 k$ ]) \% W" o: k0 I/ `: _4 {: f& |$ t9 @9 n
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
+ @% R, U' L2 I$ c4 t. _
$ G2 j& S j1 `. X校验码(18位)
6 h# N4 V0 b9 x7 j, {. m- V* {* D$ w( Y, {- @: l% A [
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
3 |, V6 L; T6 b! @8 m$ i+ Z6 b
E8 l9 J% s8 b i( T* G+ t二、计算规则
' \6 @3 W y6 y& k8 L" }; G' `* u0 S- h
1.计算余数
% B& N1 A* _5 V) Z+ ]5 t+ z$ H% P/ G0 g
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
; W) q1 I. J3 c) E+ O f% Z
3 U. N* D; B' g0 T6 l1 h) P9 [$ n* @首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
) \% F9 Z+ D ]3 u2 h, F f4 t* o
; y( \, Q. G) B* }=SUMPRODUCT(B2:B18,C2:C18)
8 A7 K" b+ D5 \" s9 Y' J6 m& `. ?; l5 x
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
# x. n2 s7 p- C- \
* g' u0 B# E: y' P: m) M公式=MOD(D19,11)
; g; H1 T8 c5 g# l5 p9 d8 Y
9 L( Y* q [' S2 X3 y7 D! |
2.计算校验码
/ U ~; C# m8 g1 ?1 ^
, s' X& j: h9 n+ \
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
" U0 F9 i7 _4 k, @
) }' O$ r+ G f4 c; j6 ^1 b& r因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
# }9 K3 g) s+ |. K
) J/ Z2 k5 Y: }" e/ O三、禁止录入错误的号码
u0 R* B/ E/ b; L
, x3 L( |9 e2 A5 B$ @
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
3 B/ p5 o) d) s4 L7 z k1 y7 i0 {' J1 R
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
: F, C1 H, K2 A& n
A/ X a5 U# L9 C
公式:=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)
- e* H/ f; a$ a+ }, T) }) f; |" X. V) n& ]6 d K
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
3 w/ n6 Y1 {' V1 [! a
. ]& g' N4 [" o, W {. x2 r1 v& y