星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
" d1 X$ {# X" k4 m- Q7 L: Q* X& C# l( [ R( S& B
一、身份证号码的构成
- g5 r. K4 c+ _8 u, C; \0 x. y }
6 ?" F( \$ |5 i- \; m& ]% t现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
5 w! C2 U' ]+ q: w) A
! p& O/ u# e6 L: A; ?- r& B E
地址代码(1-6位)
% U) Y( S' g# {! u5 d. `
# K# i% @" D' j
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
1 F& I: F1 P1 L" P' u
+ w" T( t0 ~: K# {+ M+ ^生日代码(7-14位)
# a3 N5 H" |2 I$ c3 @' h3 _
; ^, \" Z, o7 N9 `# ^( F7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
) Q: g( V0 B5 R2 z9 G" W/ h' p! g* m8 N: Z- l- g* Q
顺序码(15-17位)
# H, v3 Q5 c$ r5 l
' `2 R" F* u* [8 f5 B15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
9 ~6 @+ A3 y _# @2 N3 J$ S
" J* h( s! q$ ~* H L
校验码(18位)
) {- c# Q" I& I) x. G# d
7 U3 V1 y6 J, [4 B顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
1 X" B1 T% ^, `
3 g. J9 X# f% w% M9 l u5 R! k二、计算规则
5 f$ l9 b+ I* \. ]8 M5 C, O
! v- ~3 t! Q6 R5 b8 ^$ P! X/ G1.计算余数
* j( J1 Z+ J# d4 M a+ P' m
: z2 V' m( o% j0 l. E5 j身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
/ Q8 h* w I/ d" V& Y5 n/ S3 D8 D) w0 q/ r, K, G5 E# }
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
; y& S2 u/ e/ C. H! n& s
6 |- ], e, C3 I=SUMPRODUCT(B2:B18,C2:C18)
. z6 B s3 p. E! D0 P# F
- P9 d# G' Y4 m随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
+ {$ ` t( v7 h$ o l
+ w. @0 C- G) _) Z# J# g! k' i公式=MOD(D19,11)
/ e" }/ O7 L8 U6 h ~5 d+ E% g0 t7 p3 {9 [5 {: l; b1 `
2.计算校验码
2 {' \) Y: g& ^, N% b: _9 A( F
% [* i9 ^+ C6 a+ [求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
6 I P# ]' Z2 @& `% {7 s8 h0 A
z1 N2 k; e. @+ P, ~因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
9 G. m. l. T! K4 Z" E3 }# R) B e
5 A) `" \1 O+ B. o三、禁止录入错误的号码
* }. q0 P' j7 c& Q
8 t2 f6 F1 D. U利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
7 {2 }/ b/ q" w! x/ E8 s. K8 F4 G. K1 T9 U# c
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
/ k$ W. Z2 o! \
. A! `5 _! c: L& r: Q; K6 n
公式:=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. [. V. @- j6 W
7 ?) ^ [( c8 m' _# [
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
0 W! E/ T) Q$ {) f( ~5 H
' y* o0 s! m: k0 L* N+ q