星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
/ ~. @9 P) R( m1 l
( M9 @5 j7 q2 x8 S: N' f) L一、身份证号码的构成
6 R6 z& r/ J# ~% Y) Y8 x. s4 C
2 O, Q0 ~! r6 M" ^% e7 K
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
' k# B5 ~: E2 r. C5 E" \8 F4 S# [, U: w
地址代码(1-6位)
# ~/ E8 y0 ?' \7 [3 H8 @
[, t: ?& J; e. z8 E4 X1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
8 p; K& k; ]* B' s( d5 d2 D- z9 ]1 ]
& s3 K- M) E: z
生日代码(7-14位)
$ W1 K- ^, Q+ Z
( K/ @1 O. R& Y% y9 p8 }7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
1 K' P: T/ h/ @8 f' p, v
1 d# p! ?9 ?3 n5 o/ c( d
顺序码(15-17位)
5 _' h" X" z! i2 Q& R% A' f( a* I6 M' Q. ~% ~1 `
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
5 ]$ U& l& M# S* p! @
) r7 {0 E1 q+ q1 X
校验码(18位)
3 ] t7 U' N+ m3 `" s J# n. T9 Z" J, Z
Y0 K% @8 S+ }. Z顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
/ L9 }7 s H" d$ v: l2 w* T, \$ Y9 _! {4 `
二、计算规则
* w; E8 [0 D1 q
) K$ c2 x; T- ?0 O7 r* a. Q1.计算余数
2 R2 O6 S' M, L, W$ j: b! v% _# M% Y! D% s0 q: [3 z
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
, K$ O* G8 v: r. J) }
9 R1 ]) D& V5 O, y" A
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
% t( i |) D4 ]
% h2 {7 o' [4 N1 u7 ^8 D$ T6 c% m5 _=SUMPRODUCT(B2:B18,C2:C18)
M; L N f9 G$ l
: ~& L- ?) ~+ }4 G8 q) q
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
X9 x/ @9 Y+ h; h. P: a9 @& [. ?
$ N& k. K: D% {% e; j: i公式=MOD(D19,11)
1 b1 [& J1 X) m6 V; Y
6 n/ t* t m6 x; w j' g7 h2.计算校验码
! j* l# \3 Q' `7 @" A" u; _
6 f% W" @3 |9 k+ l7 B
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
% w6 i+ w4 q- ~
* n! g+ i! d [& ?: p- _' M6 J& }
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
$ I- j) C7 e- w) ^: q
; g; V' N5 |; g( R/ Y; `: n- ^三、禁止录入错误的号码
& [: X0 p! o9 s9 S# c
5 t. ?8 w( H! @' R# k+ e" }1 g7 n利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
. V3 c) i6 w) S4 A' w, ]
/ }- [8 A; L! D9 h6 O3 v首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
8 L x y- ?* t8 l# `
, D" B5 D# t c; Y
公式:=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)
% J9 M1 [& T* W2 d/ m+ R q3 w. c
7 n1 `6 N7 T. {% j/ W6 O以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
! o- F- {0 ?, \! @
+ ^$ W V! P( K& d0 T