星级打分
平均分:0 参与人数:0 我的评分:未评
身份证号码之所以会显示为X,是与校验码的生成规则有关, 跟大家简单的介绍下,身份证号码第18位,也就是校验码的编写规则吧!看完你就懂为什么会显示为X了
& Q2 @9 F5 I* m! s: {
/ d/ ]6 {) n7 U: u, F
一、身份证号码的构成
/ v) f2 s9 D+ J, j6 C6 \0 {4 B: G y
现在的身份证大多都是18位的,15位的基本已经见不到了,我们就以18位的身份证号码为例,来简单的回顾下身份证号码的编写规则
) }; z; |5 b; V( A- B/ y6 S/ a4 M U; l3 H8 P* L9 ?% P" V
地址代码(1-6位)
: H6 W/ z- a: Y6 [4 G
2 {+ X8 Q% r4 S# i$ a
1-2位是省份代码,3-4位是城市代码,5-6位是区间代码,网上很多地址对照表的,感兴趣的可以搜下
0 x& r$ t4 e( h9 z* @6 c/ ` [2 v/ J5 t6 \) Z, D5 `$ D
生日代码(7-14位)
$ z- U% ^# k4 {- j8 k: q& ]# n3 R2 u
7-10位是年份,11-12位是月份,13-14位是天数,这个相信很多人都知道,之前是讲过的
4 P, g4 s. m6 P) n% `/ u6 L& c
/ e( S* @3 G0 y" O
顺序码(15-17位)
6 H, B8 u6 B3 C
9 `7 X" y7 r) X: H9 [5 J
15-16位,当地派出所给的主要是为了避免同年同月出生重复的情况,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
! |1 F3 l7 b m0 m- S( F) |
, C A! P6 O: e8 f2 }校验码(18位)
" O! q- V$ ?; g. d7 j" C
" @) d, Z0 ~- [1 N! \1 ]; N顾名思义他的作用就是用来检验身份证号码是否正确的,是根据前面十七位数字码,按照特定的计算得出。下面跟大家简单地说下计算的规则,感兴趣的可以具体搜下
# [$ P4 e" Q* t1 K
+ o( e1 V8 r& S8 L L二、计算规则
8 A7 k1 f$ j0 H6 w; X5 K
( f- l. c, T& ?3 x* j: Q1.计算余数
9 b; G- C0 I; [) S# G2 ]
Q. M& J6 c4 D- W! g$ _7 @
身份证号码的第1到17位几乎可以说是固定的,而根据规则,1到17位,还分别对应不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
$ ~8 ] n; x0 R
+ ~) L0 p: P3 y" e" Z: b( t* N首先需要将每个位数的数字与对应的系数相称得到一个乘积,然后再将乘积求和,这个我们可以使用函数SUMPRODUCT,公式如下,结果为323。
* C! w# K' u- q
: {+ ^7 J+ ^. }. p9 I/ H: ~) ?2 C/ E=SUMPRODUCT(B2:B18,C2:C18)
0 v+ f, b8 d) R( v* k8 E
6 p& E! d# ]/ x3 x2 Y随后需要将323除以11来得到一个余数,这个余数我们可以使用MOD函数,它的作用就是求余数,结果为4
3 j& U8 k* c6 h' g+ l
! f+ U* p5 U% W6 _) }) Y公式=MOD(D19,11)
! T' ^/ J& `. I& u( w
" W6 k. K2 t; B) S2.计算校验码
+ c9 o/ Y; g- q/ j0 {
& B& o* [- V6 [8 ~% W0 n# s5 z" @7 ^求出余数后,还有一个余数校验码的对照表,我放在下面了,刚才求得余数为4,根据对照表可知身份证最后一位是8,如果最后一位不是8,那么它就是错误的号码
5 T; B9 H- e- a* q+ y: a0 P% v$ v- N3 |6 ~
因为除以11,所以说是有10个余数的,10个余数就会对应10个校验码,如果校验码写10,那么身份证的长度就会超过18位。所以为了保证身份证号码长度的统一,就使用X来代替数字10,X其实是罗马数字10的意思。
4 I- L6 p6 i- ~: Q" u# C, r- g+ G5 o3 K- L2 G
三、禁止录入错误的号码
" e4 O9 n+ h- |: N* X7 N. k+ W+ O
( J- G8 X( m0 V; ~/ X& ^
利用校验码,我们可以在Excel中设置禁止录入错误的身份证号码
2 H0 A+ k5 K& y' O- } `/ f( @7 @( @" {
首先在旁边粘贴公式,会显示一列错误值,不用担心,随后选择数据区域,为数据区域添加【数据验证】,将【允许】设置为自定义,直接输入=B2,就是第一个公式,确定即可
# M. N' Q( I. W3 m9 i7 A" ?
% k8 p5 T% ~8 ^6 W) s4 W
公式:=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)
+ s" N; N% Q+ E" Y" n! b
( g# W3 f/ F- q2 V- ?
以上就是今天的全部内容啦,身份证号码结尾位X其实并没有什么特殊的,但是在Excel中,我特别喜欢身份证号码结尾是X的人,有人知道为什么吗?
& j" E4 Y% T' O( C3 ]% ]* \9 C. e3 [3 D, w4 B1 g7 n