星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
; l d: S7 J6 U% f/ g6 d
. c8 t- Y5 a& g/ Z. _9 \" e; X
一、身份证号码的构成
7 {% j e6 |% S0 o3 L) T) M& o
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
5 H: p1 ~# R) X3 J2 B3 r9 r+ ~6 C
! P0 C z0 V4 O2 J" ?* \地址代码(1-6位)
9 D/ Z# {* n! y* I0 q' u
% z2 b( C7 Q9 O- U; L; {1 |1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
+ f5 T- H; d) q( C! j. P
6 l+ T/ I q3 S" V# f9 o生日代码(7-14位)
! y0 }: S# [2 \$ L1 u- c7 ]2 ~4 x9 O& [: R, w- y" E- B
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
5 u0 i6 w6 o- X
6 O8 K# `5 a6 @! ~9 d& h4 C4 \8 q
顺序码(15-17位)
- _# k2 s |; I6 g4 Y: _! p; v& t& B9 T' P5 L4 V; Y
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
9 ^) U! C/ V1 S
& ^4 I) Q% H3 a' R( f) Z校验码(18位)
# P! E q7 [- P; K# ?( r9 m6 w& ~! |# n
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
: M! s8 ]5 Q1 E/ ?
# E& y; @2 f- w8 b0 c7 F0 e4 b6 s
二、计算规则
& y4 M2 n1 P' T
5 }! O" a; k& J; T1.计算余数
; ^) X: A$ @$ [: w% N
' T' r. o8 }8 \6 n0 A2 k身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
& @8 B& _- _% C+ S C) h; o6 J, L
) p: q Z6 h o) |& i
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
" b+ p' M) a9 { ~, |& Z0 P
& K+ w' |1 G* Y=SUMPRODUCT(B2:B18,C2:C18)
, o# y+ l& }* z' `, ?* s' [9 W, z+ n, m. h1 S
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
+ x- r7 O7 I6 c. O
% j+ q6 C% Q6 E; O" N5 W公式=MOD(D19,11)
+ Y! B# I% {- _/ N5 M# t, @8 k, j1 s3 I, S$ U7 @" b, `0 o+ w
2.计算校验码
3 a! i/ k0 R0 t4 G
( \- @/ z1 |. s" V1 E% M% q2 B求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
' N( p( Z% V. }! h/ a
/ U+ V# V9 A2 [& q2 ^
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
, \/ Y) ^1 }3 `
% f; g6 L) f. f0 ?. O3 W* H p三、禁止录入错误的号码
: C6 @: F6 x1 \
" `1 k& U1 }' j0 L7 N
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
! O( }, ~4 T: u9 a6 B9 y
w, Z% u+ T' Y5 q首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
! f, U- l2 o! n6 E7 w( I# J* _2 H3 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)
?9 p) c( |: w7 ^! [7 G
! v* P# ?& \6 P以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
' Z3 i% i5 _4 A; [) K, [2 f
5 ]4 E8 b3 m# q) o