星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
: n* l6 x6 P1 Z" ]/ ~7 X% {: b' G* a
一、身份证号码的构成
7 k& p' T) j( e9 C0 x% ~3 ^" W; T1 g' n/ H4 b
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
4 y" L! S" h& L) N; i* j: ]
6 K3 F6 |' @0 ~地址代码(1-6位)
4 J0 g6 D7 S5 [. G3 |
$ A3 X. K6 N7 Z) b
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
% A- d' ~- w& Q" G8 N
! m6 v) B4 o+ v8 N* C生日代码(7-14位)
0 s- l3 _* U$ o
4 \1 d4 q+ z5 O5 S7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
- N4 x, \- ~5 q# @
: U5 p. x" P+ h) }7 E% p0 h: }顺序码(15-17位)
# A( x6 g. q5 m# _ Q$ g( m2 Z' Z. r
! V g( K* ?5 \, K, v15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
2 s' ^5 e0 p( S3 V" |' d
{) b4 s$ ?; X9 L校验码(18位)
/ j2 g2 I* g4 n+ _/ D
' @- B% T) ? E
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
2 K6 |- G( w( j! b$ l8 ] Q3 g# `! G0 l& d
二、计算规则
$ T! p) {) }. v. k; d
$ S) \# z3 w0 V) {# J1.计算余数
0 d/ P( P# X% k1 j! j4 G4 g
t) ~4 F1 j& z1 o2 O0 f! V
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
' k6 Y" U4 {7 t9 P8 |$ w3 w" o( g" ?1 P9 q' W1 n% @- U9 q' N
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
( P1 G& C4 F, u( L$ i' f
* T0 y% I- a& o( j=SUMPRODUCT(B2:B18,C2:C18)
5 r3 H9 u" \9 W3 Z! L# a3 h' r: a1 Y: c H% b7 h6 A8 C9 h
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
* z4 B! Z/ Z$ H% \- s* t
$ M" h5 i- ^* l9 D公式=MOD(D19,11)
' F# ^! r- z, [3 I* B; ~( b- C
9 E9 `) F6 I6 y7 ~' X: @4 \
2.计算校验码
" r: L% a# P8 G4 m
4 h' B1 V- d) d! s9 e5 m求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
2 T* w* Z1 l& I; E" c( O$ r
) g5 @1 @ Q# }7 q1 }因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
+ E" d- R1 z( u; R
5 F ]* m( f# J B" I& h1 R三、禁止录入错误的号码
5 \. W1 K/ @, }0 J7 n0 D1 }4 k, @: e/ J8 T* U* }0 s# |, b
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
. S' N2 `5 m& D# I: O
3 ~5 _9 ^1 z! c" i首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
& ~: U! Y8 r8 R0 r3 K
, n/ Y" Y3 v+ G/ K
公式:=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)
- }6 Y1 b8 W- g
* g* N" S6 I2 K; n( h9 L2 Z以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
8 M+ K1 U. I- W& A, L' i: W3 G% P% B5 J) E4 t