星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
& U! Q4 ]4 x8 T1 u7 `
! f7 G6 z7 f- q! t# q: H8 e2 X
一、身份证号码的构成
: w! D6 I1 x& Q) M
, b; C, t& P6 W% X: N
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
h |* n4 j3 W b2 u
6 L& }7 m7 r% b; Q1 Z8 c ]* z/ @地址代码(1-6位)
* C3 B3 V1 P) I5 R* y+ x
! @5 ?( R. ?8 z8 Z1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
1 l p, j- ]. b$ ~ Z, T. D3 O/ G# H: G/ d' X( D0 I; [
生日代码(7-14位)
8 T H) X8 K, Y7 u+ x5 ]3 n) ~$ q+ R, H3 C/ Z
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
* w+ U" g2 c/ Y5 v8 t3 o: D( y3 P( b# }. G1 f
顺序码(15-17位)
1 C# N9 r; @( q: z# T& P* {) Q+ \! l K" ~
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
2 M8 T& q& G8 Y; a. X% d
6 e, m6 p- D) M校验码(18位)
( @' n2 O( j6 |* c
. K8 }* R7 b! \& @+ n6 v顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
* W! F1 D* ~$ k, f& [) W
$ C! K' v& a @, g二、计算规则
& z; F* \7 J7 q( \5 x3 g* M4 g0 |- ?( V) \/ f3 W8 o7 v
1.计算余数
: h* T( n! c; s+ L4 ]
+ I! B; o' G U) u- q身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
1 U4 _- [2 q% w5 ~
4 O4 A" R+ L z3 o; i3 A
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
- ]. [1 \6 W) a7 R, p6 |" b+ L4 ~$ H8 l0 j( Y: W
=SUMPRODUCT(B2:B18,C2:C18)
9 W# X4 k! |3 {
; t( ~9 ~# z2 u6 Q随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
0 V5 F' I- r. |/ T2 `# E
' p5 t" P. i Q1 c公式=MOD(D19,11)
3 b, ]- E( {% l0 W% C& ^
# L$ i0 K# `% z2.计算校验码
$ j7 J8 B1 l, T3 N& ~( o
# K' c& K5 G, ]7 {8 C5 h1 e2 r求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
- i/ a! \: u% g! W9 R! `4 G
3 Z6 y- F& u/ ]% S8 C9 c因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
, T+ ?0 E9 B v8 q0 n$ Z( @. x7 K3 }4 C8 U5 _" d% i4 c& d/ y+ \* h! V
三、禁止录入错误的号码
5 u3 e- G+ e; {- x4 Q3 z
( U; v6 n# }' f9 J利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
: u6 e3 e& n- f ?+ y
6 w. u# C0 L1 e8 v o6 k! @4 R首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
& a) A+ V9 @# f9 M
; c( g& n; k, x, w! m: h9 o公式:=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)
. n- M+ y7 V5 k! H/ V
) _; o7 K. Q$ o* A1 @以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
5 i7 f+ e, @0 w7 J% J, \: V! M. j5 `3 C% X5 R/ S% |