星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
/ l- p2 _* T: |5 h0 o0 q% z
$ O) ~5 K$ b1 I1 c一、身份证号码的构成
1 a* [! W8 Y+ j- P% ?0 }7 R) M! o. W( F5 e+ O" m; G% b
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
6 s1 U& J( R! U; \* G
+ L q: x$ X/ }1 W3 m3 L地址代码(1-6位)
7 Q+ r7 l0 R; g" }; H
' F- c/ W7 E+ V9 w/ g3 ~1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
/ q s. c8 ?8 v' T) W# d
. e, F! h: ], a$ S" K生日代码(7-14位)
/ \( E; }3 A! p& V8 S7 ]+ ~
! r0 A2 D7 p' u: }. v7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
& ^7 Z) X6 p) @. H7 Q# r$ I4 x) i& j
/ ~. C. [# }* }/ s/ {
顺序码(15-17位)
6 k5 w1 D& F3 b! B. H) k; n. o3 g% q3 o2 \
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
, M! [9 b y; H2 p7 B+ F5 d, p% e( Z- J+ A- v% a( p% x: E Z# p
校验码(18位)
n/ r) d. q/ V" }
+ ^! X+ D% b- W, @$ T9 J
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
+ Q6 E. I2 P# h/ Z% J
+ R, \7 X4 q% G9 K j( {% |二、计算规则
]1 U: O3 Q- g9 v; Q7 V( A% l
% Z1 }5 ?* e0 }7 ]) U- R9 \, V5 G
1.计算余数
. H/ G. H l; a0 ?" H7 ~7 X+ x: J6 R- Y* e4 e
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
) q8 c( t. N& {* x0 p, @+ |
& J3 F$ z) ?; C9 Y% a5 |首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
8 K2 D0 ? C4 k4 n: S3 N: l6 g( M
2 K7 X* ^( t6 Z* e) A=SUMPRODUCT(B2:B18,C2:C18)
/ t& d# U# G; \9 C2 H0 V! T' Z; s% l1 _$ G" L
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
/ D; [2 S: r! i: P0 w; c
( T) e# e* S* [; a公式=MOD(D19,11)
* `0 ]: C# a+ w
3 m7 O5 G" T0 F6 c+ P! U l) y2.计算校验码
( T* M! x( P" q# k! y# h/ l: t9 _ r/ a- J. h$ m* k4 `
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
' I- |) }( u0 W% V2 b! o+ j3 l1 X0 h" n$ A
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
0 [1 e8 n% s k! B+ q
' |4 K( M6 T( N) }$ o: L5 F
三、禁止录入错误的号码
* W+ m; k2 V# Y+ L, S2 ^; t2 \6 `# [
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
0 S6 q- ?6 b7 d+ R" C- C
2 D" ^9 b4 x7 t& p0 |% g首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
9 [4 p" z4 \0 c" [$ V8 e: \: o+ o
: k# v4 ~; B/ g: s6 e3 D1 T
公式:=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)
7 U0 ~( ~, r1 M: F$ l/ b# T
+ Z, J6 _+ b }% b ~2 P( s' Q" v) |以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
6 E5 Z' p3 m& Y$ m
" x! c, H2 H' I4 f