星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
& K4 f7 G( n' |9 W- V9 G0 @2 Y: @ |( Y; g r5 B2 R; Y
一、身份证号码的构成
# F3 e0 i$ y9 o* v( Y1 m
& `! b& ~1 h h现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
2 B& e v/ M4 T
4 v0 Y3 E; _9 a地址代码(1-6位)
7 v$ b, ^2 c( j$ ]0 |* D# a
; D3 s7 P( a4 B1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
, K {, R3 s" |$ s6 `3 G- C8 o0 D
* c, |- B, C# K5 c生日代码(7-14位)
4 h7 C* q+ J3 u" D
$ H0 H0 t9 ^4 i' Z. E3 g0 d: O
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
" Z) e9 k' y1 L# `8 m, j$ V" n- ~7 _3 ?; B
顺序码(15-17位)
( g5 m: O3 V5 z7 z+ r: V9 C$ c' b, d* h. e' O6 q) T. ^5 b8 v
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
' k5 R, g9 _+ ` E: i; \
+ I) G0 `5 H4 H4 m校验码(18位)
+ i$ a3 L9 d" x0 [$ j3 s! E! d% G5 ]; k4 j% R" R
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
1 { e/ b. R' Z* b( a2 ~' j
0 z% }4 F2 `; \6 u
二、计算规则
: o, Q# q I W8 ^
8 R+ U8 i. L: n" k8 B6 V c( f1.计算余数
6 ]4 u# t: [: `9 s+ d
+ m. n* X% m& B. [( a w- w, v身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
4 m6 n& L! o5 x" x
( S9 {2 h4 G6 M" ~- d首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
7 w! {1 }2 ?& J- Q
1 _5 r+ n$ u* X' y7 j" d( ^6 v: p, G
=SUMPRODUCT(B2:B18,C2:C18)
5 l- N. \7 ^( C; v2 [
, B- a3 s) S; L# Z随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
1 N. K7 c! _1 L4 x% g: `9 j2 U: @1 w5 ?! [
公式=MOD(D19,11)
4 s, i7 I4 F* K& ~, e
7 M, W$ ?7 t% P l4 ^& L
2.计算校验码
& j, C+ `$ Z/ r6 R" ]* N, {5 H: S- G) R! |5 Q
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
. W* Q' W7 W' P9 r/ }% r! w2 K
! O* ]- @, }; j0 C因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
3 [1 f% e+ S3 }8 X+ |$ B
% M9 H a+ i" e* f三、禁止录入错误的号码
8 H7 W7 m6 t5 W+ J( Z$ u1 l: v* p
; E, l" T# B5 j2 ?# h利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
/ c1 S3 _# I! s
6 E6 c1 R8 y( Z* M, Z Z首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
2 c6 |. N: z0 \) ^/ L( w
: Y1 ~& F" F7 r% D6 @公式:=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)
5 Z1 N7 ?6 K3 g
" L5 a: n. x( @! x; |- ~; y
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
, v, [% y5 W0 Q3 ?% |9 d2 d
9 S- k4 C6 A9 `- c/ H0 P