星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
6 \7 t; A% l: K y1 ]# a( R" V; p2 ~
一、身份证号码的构成
4 T m& `( H9 R; ?' V, v
' g7 V$ J& [% F; @3 O3 j现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
' L# J: e0 v" Q# A, ~: a
( _- Q; @; n0 x0 P0 U( T地址代码(1-6位)
$ w: U5 O0 S6 |% {. m K
" o7 M4 ]0 K1 c6 _4 {0 a
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
, L3 T' \. @ [
7 A& O( E- T$ [+ K
生日代码(7-14位)
; l! T; C: D4 m% p! _3 h( C( Y) V5 o
8 D% |* I3 t1 ~/ f1 b3 C7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
! f7 q! Z) Q8 \) |2 b
! Z- s+ [ T9 M( D# d- f# u顺序码(15-17位)
" T4 j2 e9 g1 i/ s6 j0 Q4 W" p
" k- a; F5 ^0 ]
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
5 E9 ], V& X3 p( G+ Z
# L1 _0 u" z. g0 E( X
校验码(18位)
8 E+ K$ j6 g* e& O
! Z6 g6 F& R! w( E( B( U顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
. y/ D7 H6 G* c% N- w; H* g' {( l
) c/ D* J" ^: @. B0 X* ^; s6 ?7 c, Y3 h二、计算规则
/ l! A+ g) ?, A4 V3 V2 g: w
8 V% Q: G, W4 G' G/ U- D# d0 J& u1.计算余数
6 _8 w: i, |! D3 }" P
8 i0 ^9 {9 H; o) k2 l1 D( g; B. V身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
! {- b7 ^" P! l' o# N& r( b( R1 |5 i! e5 ? v
首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
# U, R' ` C/ j# _7 W4 Z. r; n, T p
% v- \5 w' d+ r( N! r7 |# X
=SUMPRODUCT(B2:B18,C2:C18)
9 q9 R! @4 _4 E! a& d
) C! i- c# m/ a2 p+ {$ u) e随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
$ M) J- {) a! ~: p
' C* O0 E' U, O& Y7 }9 [8 R公式=MOD(D19,11)
1 S' U7 ], J- M0 V+ o% R
2 T$ _2 B* b4 v% Y4 M, c. |8 T$ p2.计算校验码
7 l4 ]* |, }. G7 T) @$ ^2 p w! s! {4 T! P% a3 d( y1 `, o# N0 S
求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
+ K1 _% r0 y0 o0 B8 E6 Z9 m* X$ x/ F6 w4 M
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
: t: M/ s8 F0 H$ e) ?0 y
) d/ B k8 B6 X6 a
三、禁止录入错误的号码
& I- S0 u" q$ C T4 z: S
9 V k1 t5 W/ ~: X& {1 w$ C- L利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
- b. A; d& B4 Z. I
- T" ]. X' z! F# i0 F& z
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
, U" ^/ ^2 X+ G2 ^$ ?
- [" S8 Z% t6 c2 p5 Y; v/ u公式:=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)
0 Y# m7 n; Y7 ?" v$ a
/ Y4 _, J: e! s以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
; w/ G C" w: F( S6 x
" I, i8 `$ ]8 o5 e9 C$ p6 ~