星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
0 x6 I( u4 H$ K/ l9 R+ r
7 W$ n/ r# f3 f5 t% z) B% M一、身份证号码的构成
/ ^1 j( r& H( _& F8 l- [4 C e! b" T: k6 W
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
! w) W3 J/ l$ F
' j2 i5 P; C$ P0 `
地址代码(1-6位)
3 i% q# `! N3 V P, S4 N6 l1 r4 W; A6 C
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
$ a4 {5 X$ ~6 u# i$ Z) _+ ]. S) i8 O, {. V/ k! a3 W* a
生日代码(7-14位)
8 P) y+ e4 ?! o$ L- ^# m6 u5 W0 P, `! e# {5 _; C* [
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
; E4 E S3 L' J. m- S+ F- A2 N
# ]8 a3 V6 }# K2 A) G- N顺序码(15-17位)
5 L, J% |/ ~3 H% }8 \5 @; [% X# T1 r, B6 }5 x- I% W0 ^
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
3 U/ G; z* T6 }& K4 M6 Z9 N0 |
/ d. p% O. u& F, D
校验码(18位)
% R( }; }$ | T2 g
. {' l/ P( S) v+ i2 u# }- e
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
* |/ P9 u0 x, c9 P2 E9 @ L6 q$ f
! n( l' m* j6 t5 _1 t+ f- r
二、计算规则
) W/ n. L3 O4 m" i1 r- V+ W4 ~) u. z. M# G) H3 x' Q& i5 @
1.计算余数
2 ]: l3 n+ A" C! K; v# r. ~- |4 r" |/ t6 a& j8 e( W2 v
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
' W" |" W# f4 S
c; d: k: ?% K: R& B& l% g( {7 e首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
& g9 a4 H6 ^. f8 D Y% u
( t" w! ? T2 u; d& }& z: P
=SUMPRODUCT(B2:B18,C2:C18)
0 O) ^; X) S2 i+ l$ M4 }3 [' J7 {. C x `. H6 X
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
' y" u& P/ z( o3 S9 p
1 c/ T0 f n, s+ |公式=MOD(D19,11)
5 [' B3 |( ^9 O3 `' ~
. a3 z3 U& P# W5 D$ h
2.计算校验码
3 I8 N( _" k4 e! Y% ~+ k5 ]5 {
! [6 Y% Y8 W) e& }8 @4 G7 X( M求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
" s) |4 q6 R, U( T7 l6 \0 V# d# \; s6 k- P8 {% J# D: Y* Z
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
) b' L: ?# G9 k$ K) `
! H/ w- P8 l2 A0 n
三、禁止录入错误的号码
e2 _& I5 x8 X# s
4 S, l. _1 { {) b; v利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
E. J% |1 C D6 h7 N" S' h
" d5 I- V8 `+ K' C* `# x) O
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
6 Z% p! ^" ?0 l0 }5 j
; j$ [# ~; e+ z/ S2 s( h; H/ M; E% r公式:=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)
1 o( k. I0 H U/ f) C
! G+ T8 Q8 A# Q4 n4 Z) \
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
8 P8 w3 H5 [2 q9 e8 F! V
0 u# G; U! P- u) J u, `" u