星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
+ o" W+ q) D' I4 [+ B
! ]9 p% W( I v7 Q1 X
一、身份证号码的构成
* f4 {; Y$ U3 B( w! M. l( _# i( }' y2 W6 C% Y% p' [
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
4 U& Z. l8 \# M
" H; ]6 q* S* A$ j" t$ w; E1 A8 n
地址代码(1-6位)
1 p9 X0 {! s m: [( W6 f9 Q5 Q
4 p' q7 h$ U$ {+ [2 y0 X1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
! ?( M8 A. P/ R
5 ]( E* r7 {; l+ e! u
生日代码(7-14位)
/ k4 A) U5 |5 r9 ^
! ?: J8 @/ q) o7 h. q/ ?7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
0 R, Y, Z9 H$ \/ y
. V s" a# e+ h+ _# e8 O顺序码(15-17位)
3 Z3 t4 M5 k/ R/ x2 D* G- j; s
/ ]1 t, }* [( y- c! `15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
@4 t& p* @8 I
) E% V. [) k( H; ~校验码(18位)
6 C4 ]# Z: t% p2 F
% d! }1 Z, m$ ]0 K7 X& G
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
/ x% b; X4 N+ I* \4 m# k! l
" d, ?0 Y2 W. P
二、计算规则
( g+ p: ]0 p5 C# C; j5 f; L
, I4 P! p0 Q$ \- R! l* P
1.计算余数
W6 h, e. K1 W% t4 a- T5 T4 x; K( P8 U/ C4 } i
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
4 b2 ]# `7 l) V3 Z2 }
0 t1 f- p1 d# M% k }
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
3 x! o6 R: Q% D# E- c9 w
+ `) k" Y# h2 T=SUMPRODUCT(B2:B18,C2:C18)
8 s" i1 V& A& r) Q
a) a5 [# L! ?; {% u1 E. X. T1 U
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
6 A" w% q' S8 W& I5 k
$ p ~9 O- s {8 o, \+ e! v
公式=MOD(D19,11)
. M3 ]: }) \7 M# |) v0 j- S+ u9 V) ?$ N! b n& i6 Y/ q( D& b& A+ ~
2.计算校验码
# D" N$ F( x) H/ A) i1 a
2 e) ]: i k& c" b3 P求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
; I$ T% {% d8 y9 A, r7 U" n; I( ]$ R# m
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
( E7 m* K( `! c
1 K, i0 l1 ~. G' t. k, N三、禁止录入错误的号码
' |( u1 f* ?7 I1 K
K) J: x6 O0 J& ?" C+ V$ z
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
; T' D$ n6 P/ V/ ]& o9 a. i0 e) s& W6 S X
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
8 H2 ^* p0 l/ B+ v9 R; F7 ^' ?" D) ~# z' z+ C. l! q6 j W! m) N! j
公式:=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)
" |+ `; k4 w# g' ?8 n2 |) F. l3 T7 V$ h% `% R2 s+ S
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
7 h6 H% S& S2 G% b7 L0 q
/ V1 u3 f' S4 S$ l/ T' @