星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
/ T, M* s9 i \ x3 F
( ?9 ~1 p3 Y7 c5 @5 r一、身份证号码的构成
V7 ` _8 w/ ]6 m% [8 S# K
% B! ~2 U/ k# d2 Z7 w6 p现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
9 q. I& \5 }. T& G5 E6 r" t( e# W: P: E+ `2 i6 n) y0 A# T: g
地址代码(1-6位)
g* h# v. g# }6 ^8 `8 T
( {4 m# i2 n7 O1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
3 j5 M2 o$ a( a& h% q4 I
& q" d# r! w( H6 N生日代码(7-14位)
; a1 k& {- `: a1 Q+ s; F7 r6 S+ w
8 o% k( w. H) b4 l; V3 T7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
: ~9 E( H8 H8 A6 S. N) I/ u+ Z
9 A, A, h. c" _% Q" `8 O+ z
顺序码(15-17位)
. ?4 K8 l1 v) H$ O4 Y; ~0 C+ c
R' Z7 q' p' N' J* E2 T; g15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
3 y' Z @/ Z- \3 L2 y
8 K+ w1 h/ D( \1 @1 K+ {校验码(18位)
7 U+ }- n; z+ N( D1 K1 j5 H2 F% W; m: Y2 |& C1 ^
顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
' X0 h( [" f5 p
) g0 B2 R$ }! G4 e2 m; E" V' {" d5 }, v
二、计算规则
+ T! D7 V# E1 @! o$ u" J- _
6 ` N. E+ X6 l; x8 ]0 g+ Z
1.计算余数
& Y/ a2 o, S8 z# y
: l# u3 |- h. V; `, R' O8 X2 Z9 V
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
0 L% z. e& m; B$ B) ?% d& }
6 Z% U# g4 ?/ V# v, ]# O& Y! w/ P首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
- q+ Q- R* [9 u. g7 G; O" R5 j
6 c7 {. W8 H3 V, |2 k=SUMPRODUCT(B2:B18,C2:C18)
5 v, C; z- I' k w6 a+ T) l' W1 Y/ U
随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
1 R9 _. c" J o6 P9 V
! _& x$ C" P* v1 p+ w4 V* _* ^4 Q# P; N: h
公式=MOD(D19,11)
# l( P) i, O3 R6 C: r( Z* ]; ^& ^' M( k6 t" n
2.计算校验码
8 O# X, B: Z* ?
7 f! q8 g0 |; |3 j求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
0 Z1 K) ~+ L8 {
0 M/ T6 \3 P( A7 V( g
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
0 O5 X! T0 A0 q R; Q$ v
5 J9 Z B2 M/ { S, R
三、禁止录入错误的号码
0 f# a/ @2 H6 G/ y' p: U- z7 o; |& M3 \4 F( r( e7 P5 V9 b
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
6 h5 M R1 Q( J$ e2 R5 L. s
o+ Z( L' N2 q4 [: G% B首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
1 w# c1 [" n' _ L0 s, [
2 Z3 O3 p3 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)
9 ?/ s" _, N$ Z; @7 R2 t
# A1 J) U/ H+ m+ V以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
; @4 W! Z& V0 N _
; Y8 a0 P3 C* L s2 v: I; R1 [