星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
3 Y" L+ ?1 R: Q# L" f& o
7 G4 D+ H! H! U; Q2 Q5 W J _一、身份证号码的构成
3 r: H: ^! ?! ?5 @" e2 e
" k0 b8 }- y+ s4 ]现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
( N6 i2 H& x& `* S1 w) f; H
. z# N: {+ a B2 R/ M地址代码(1-6位)
t7 W! P0 {4 {6 p/ S
/ l2 D5 K( i( @1 Y$ R1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
7 s P7 f! C3 y, Q% S, Y' s% w! [# B
0 d( X- N2 {; P生日代码(7-14位)
8 r, n& _' t* P$ G0 l* x. q/ h. k
/ u, B& f2 R: c5 ?1 H: Y3 Z7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
" v0 g# }# F5 O' }* w
9 F# ?8 I8 {9 u8 t* L顺序码(15-17位)
: l: \ ?7 w4 Q5 |; ]
$ U* P: H( p- K R15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
5 U0 X6 ^5 G1 G
& ^% h; m L* ^校验码(18位)
% N, @7 e# q& j: t2 o4 m. K# R( |
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
6 z" a1 z3 F* Y6 D. Q8 [# \3 d) d+ {8 j7 K+ \
二、计算规则
v( b. |6 @% j3 ^: p4 P# d0 A3 G$ a
& h/ r2 `" F! q: [4 L: C+ ^1.计算余数
2 x9 N1 V: i$ M6 v ?9 X6 N# k
- @" ?: ^% p/ G
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
: K9 _# W' w+ u2 S7 h9 X7 |
3 |3 s6 g5 p2 H3 k8 r4 Q首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
" h3 ]' _8 N' H7 j1 Y3 j* W5 s- k% ^+ j! `. _
=SUMPRODUCT(B2:B18,C2:C18)
2 E3 q, C# m: k; X r6 i; Q; l9 @ V+ D3 {1 y
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
- |( N+ o* L$ ~1 s% ~* G7 B$ D& w& N0 E0 t
公式=MOD(D19,11)
# N# `1 T0 r) ?$ y5 ?# q, P9 H
5 k- o e6 e" ?5 G- m4 J5 O2.计算校验码
% P: L5 m) y. Q9 K7 f
5 n# g8 j6 t7 F) G求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
% d$ R, r* _: N) ]* \1 r
. i1 `1 ]3 P Y% h$ A因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
/ s6 S* F+ [1 @! N+ U4 S
: @4 R" u% F" o- ^' _
三、禁止录入错误的号码
5 P7 E) t; q/ ^% Z6 D; M) b
! p/ u2 Z+ e& T1 O# c% l v利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
0 T3 j3 r* R1 Y2 H- b' d2 \0 ~6 R, Y
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
/ n5 P( B# i: f% F3 T" u+ h* p/ H9 O% i
公式:=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)
+ W9 I; Q# M( c0 O% J7 b$ a8 b
* a% a5 l' a# y+ c. |以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
( B% I9 v3 t; Q% U C
; }- v6 j' U( m& X5 n0 F