星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
* @" n- v/ S5 u4 x' s1 ?- c
. ?$ W$ }# b9 \0 K% Z, U, A
一、身份证号码的构成
6 Z/ v0 c/ o3 [* i [1 o' A! R! B8 v9 E% l5 {5 _; o5 s
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
, d7 c1 N, Y, |: ?- b3 d! w
: {. |6 ^! x0 v) C/ j9 p; h
地址代码(1-6位)
3 I+ i- d+ E% m, l! w/ z
' O% J7 q9 u% z1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
) f; H% m+ q6 }; x u) w( k* n( B+ [6 w: l" g# v( V$ j6 R
生日代码(7-14位)
8 s# M: @$ L/ p! U# x5 f
$ |3 k0 V. Z8 H, P7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
3 g) N0 O" d( N: O1 f2 T& z4 r; r# ^- e) G
顺序码(15-17位)
5 R' U' Y4 U7 F; u3 r( ?0 N
9 @" ~! E) g& C- P/ z% @
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
5 P& o( _. v- N2 }- ?( C$ D0 g/ O+ \' K5 q% Y
校验码(18位)
; c; t, {# j! i( E
5 P2 N* b0 J y; }顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
+ I6 r6 Q' x' s1 Z8 k. `
# @- H' u" G$ n6 q' k$ ~+ D二、计算规则
) Z, s2 p- a3 u. Y
7 [" J O8 }- o, P6 |# o1 G
1.计算余数
. t4 {; M2 J) c s M, C* j9 ]' ]$ l# y& ~/ n% o
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
; r6 R* h! k9 G" f, _, C6 K& [/ m8 I/ k2 F3 q& A9 g- Z
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
, K) E/ r4 T) a: X. |& o/ V# j
=SUMPRODUCT(B2:B18,C2:C18)
4 K- t- c! ]+ @1 k* L k( P8 ~$ {2 Q4 U2 f# ]0 O/ S! r
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
% l: `7 q% n2 A& W' `
8 I- [0 J7 Z( q) W) N# }+ D公式=MOD(D19,11)
1 ]4 Z7 I2 \4 |; T4 ?. t# D
8 U6 x. \6 g$ b8 E% b4 w" o/ y
2.计算校验码
) v$ Y( Z5 J. \$ z
. g$ |. a7 v( |! b V求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
+ J) C; E4 H4 u
5 M( k! z+ M6 ^9 A9 t因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
; B3 K# Q2 r( N8 W; [2 ^5 S- S2 i4 S4 }, ~7 E
三、禁止录入错误的号码
1 u# w; `' q1 D) |+ M; ~4 G) i0 Z% g! D( t4 t m6 S) C
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
9 A. V" S3 I( _9 ?3 g9 @+ [: A
# p! `, B! j J- V% Q首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
; N* M) n5 ~& ^( Q1 g3 V9 ]% t9 E; T, F' i
公式:=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)
: A9 e- T& o* g8 P" A. Q" W q% c# g1 I+ \4 r& ^' {! d+ s
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
; N7 j1 K! M1 v
! a8 L6 Y ?6 S9 V8 S( D