星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
( O% b0 G- `6 w+ z( p/ b* x W
8 U. }5 l8 J o7 e
一、身份证号码的构成
8 w; B; a/ Q7 y! A, l6 r! }6 S5 Q/ m# z3 Z. u( x) Z
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
$ B* K$ o" S2 h/ K. ?( J" @) t) E9 e! E& R! \% x
地址代码(1-6位)
# F$ ?) ~ t# v9 S# Q) W: v1 k5 O
S$ K7 v& I% F3 ]7 F6 I' }+ H y
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
, N9 e" V% F9 L ?& k& \) J- G0 C' ^. a$ U* `
生日代码(7-14位)
; w* _9 p! h+ j
a+ v7 \. x7 r+ Y
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
4 u4 R+ V0 X8 h9 s( o2 c1 u2 R+ [. ]5 y' L3 n- v& i
顺序码(15-17位)
+ D; K+ s! n7 F" h |& u1 U" o$ }. C" H0 L, N6 B/ L
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
! X3 l4 x' Y7 E* ]0 [; T+ y2 j4 k
1 r0 L4 A& O- S校验码(18位)
/ A& v4 A, [0 U: m, w3 n% J# A% G, L% y4 v% G0 d$ L( B
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
& ~0 g# `1 ~5 D- L( d1 G( i
0 U, w, R% P3 Y9 U
二、计算规则
% T- D) v! u* Z. e. n7 T! {' G* z! ?! z) g8 }% x0 Y3 x) M& W4 @
1.计算余数
; L% E/ j' j9 h/ n' N
0 F$ ` s4 F- i9 c3 ?
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
+ T X3 P6 V: U/ a3 i/ }: @
" c% I* e1 ]: e/ v首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
) T& z# m# ^) I$ ?8 [: q b
3 y# f2 q2 v9 u
=SUMPRODUCT(B2:B18,C2:C18)
/ ^4 h/ V, X, p! h" S% R. x# h! t- g1 V/ z
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
8 a K# O+ E8 K2 x2 X; \! ?1 ~$ S/ g' W* i
公式=MOD(D19,11)
# {. j8 E& N* j, C
% g2 F# R5 y$ M" j% Z. e: p$ r2.计算校验码
/ @8 R# d, U; g- U4 D" W: p6 k% X9 e3 \% E0 m, R
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
5 @, S0 @/ F: V0 Y# |! f7 [5 s' o: I ]. g+ C
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
8 ^ e/ Q3 B# D0 {$ X. c9 F# y" g; k& A( M( `
三、禁止录入错误的号码
, N% V- g9 t: {8 C, n0 o7 V! p8 `3 ^1 C" O5 ~
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
# U6 l; j4 `( ]9 D/ U* P" V9 H
' }) {( A3 F: r6 _首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
# n7 r1 t( E$ ]9 g8 O4 e" `( z9 G- K; ?1 R' z
公式:=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)
; z; w3 Q0 m+ P$ d5 E1 \ r* ]
( Q; H. d( G, i2 z6 |
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
7 `) ~4 }0 m- ]% [, N7 Q- P W Z& j
/ g; C8 c! \. I* u# v b1 f) H2 B1 C+ X9 C