星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
" j* o; B& c! c: I7 p3 Y' }: |
' h7 l: ^( o, n! R. t- R一、身份证号码的构成
: a+ p9 _3 e z
( z( [0 e7 {" u5 e" P现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
. ^/ S! L2 A/ X4 g b; T4 i, |3 F( g
Z' b" A) l$ e4 [( W" X地址代码(1-6位)
" y+ `, r A- I. A4 F( V" J$ A7 `8 W* C* L f* \" \
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
( Q$ N9 N& t1 p, P3 B; T* y7 E
7 {2 _0 g4 B$ _, n' i4 x% w生日代码(7-14位)
% o! ^. ]$ {& x
p, g0 ^3 x( I. Z! D& x& W
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
]( q8 v( B; o) f, J4 [3 _% A; c- f
, C" I; u( p* N- u$ V1 I顺序码(15-17位)
+ E8 J& Y% w8 w4 R! L) n% |6 }
5 u& ] |6 s- O& e15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
5 A8 ]' q4 }* q: Q/ m3 P/ `& R |1 e4 r
校验码(18位)
8 ]' o& S% B% W4 U" d% m; I# N
M+ j& m8 m! Q) f顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
, L3 q3 G5 N- j/ P: K1 D5 i) ]1 e' U7 a" s- O" s3 t, q
二、计算规则
8 k" k9 }4 f! V4 g1 q8 ~
+ P3 ]4 }4 {9 i2 @+ C0 s3 e2 N
1.计算余数
, e7 U% P) V5 D( F5 T9 o6 j
+ i# A% H. H0 |& N: q
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
0 I \; e: f, a
! z: ~. f5 k; b6 j. L1 ]: k% A/ \首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
F8 S5 Q5 K8 \$ }* ~ I
3 ^ S- u1 F+ I# J( y3 `=SUMPRODUCT(B2:B18,C2:C18)
3 P) |+ Q& y& U: I
5 k- ^1 E. Q! T随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
0 [. V! `9 j8 D' q$ M4 ^; P+ c* i1 \ e: A% a' T! A/ u) h3 u5 W
公式=MOD(D19,11)
# C+ w& b: a0 y4 B% ? w. q0 f( g& K1 W, r, s0 D$ K# w- N# c
2.计算校验码
! Y& \: w. s2 q1 A. i' t* R* n/ ]/ ~) b( E9 j; `, E
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
1 g: P3 j3 h" m) O
; x+ r/ s: H+ ]# e1 J. ~, c* v% v
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
2 {+ S5 V+ y; t6 k) Z, c# A1 ^+ K7 W z% }
三、禁止录入错误的号码
2 g/ I: M- }; U* c- `8 U# b
* F" d \. k3 B: c7 t利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
5 j, x( d3 s, X i2 o
" K1 K+ t4 v2 D! l
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
' v P1 _4 ?& K; Q% U. a! x
, D7 Y. H( p7 O, p$ S/ i4 _+ K公式:=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)
; c- _- Y. L; `* f5 U) w7 ~$ E) R9 A/ L' E- ^2 U
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
' K) H9 u" I6 i Y! f9 f3 d' }/ F