星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
/ Q8 ?* H7 u: a! B! u4 `) Z6 s h
/ k7 {9 f0 u3 @. ~5 p: i' W一、身份证号码的构成
; Q' M1 e" ?5 V& i; t- \
: E5 C6 q3 y% [5 K
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
- M, G8 m, C" R) |
) S( L$ ]* m7 C3 w
地址代码(1-6位)
1 i; M$ J8 L) M- G! y& t2 k
7 U: T& `1 W" t7 ~. S
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
/ Z5 p- j5 m* ]1 A
: }) ?7 V0 P: d, O3 \% `% ^* }7 b生日代码(7-14位)
: u( ^* l# {7 ^' G
( {- N3 h; N/ T7 _* P* a# @* e9 s
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
( q9 G: s# o& q5 \$ d7 T
9 Z* u1 K' F }: M* Z* t顺序码(15-17位)
; C- [) k* b% N/ x; I
) T9 b6 ~3 `, q
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
$ n1 ]- r. K" J" j4 y
- B0 _& \' E' b校验码(18位)
3 K% Y2 y6 R% J" n1 h+ n3 w/ [7 }/ P
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
5 [7 i" ^% ~8 i3 O7 b9 A- Z3 Z' O- {2 v
二、计算规则
+ L. ^% f5 g; b( G' V; @4 M; G7 A$ Y8 i
1.计算余数
! K" k" z! G% C+ }
/ w' S, z) r) }身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
% I. v" G6 E3 O, } s
$ \% Y+ J. P" {4 B% p
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
5 G/ P! v) i5 H1 s+ b8 [, L% r# g% O
6 E6 E6 X. v1 Y! Z( X=SUMPRODUCT(B2:B18,C2:C18)
6 M# T9 O3 [+ \- @3 ?0 }0 z/ T( m5 S! Y6 a
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
! r$ g/ }1 g/ U5 M, T; r
# Y, i0 T( ]. o: ^公式=MOD(D19,11)
" T8 R! ~" ]) v
! @3 H& ?& z# U2 L2 \) S" t
2.计算校验码
" `1 z+ n. {" G7 ~
- q3 _9 C4 {! h7 s求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
4 Q* K6 v/ A% e" x- P
- Q( I8 g: T* F, x" r( F因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
2 |2 D; O! l9 U" Z* D( M# n: h ?$ P
% l5 J4 V \" F& |! s7 I三、禁止录入错误的号码
7 w9 s, o% `8 T: E4 F
% u8 z! r6 {' D% h' v! h利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
2 Q6 }6 @2 p9 f0 X# t, Y3 @) w7 R
5 X: Z0 k6 z) v, O& q
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
: l/ }8 O4 Z# `6 s, M; y! B; L1 w5 E5 ^$ g" j. b
公式:=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)
0 ?7 s4 w' y1 B
, x# @% g+ ~2 y
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
! }' i2 A$ Q+ H- A, H9 Z: @( g3 _
; B4 [3 q2 l! j2 @9 ?( T4 ^