一代身份证号转二代身份证号(15位转18位)公式

合集下载

关于身份证性别年龄查询公式(03版)

关于身份证性别年龄查询公式(03版)

关于身份证号码的检测1、身份证中有X的需大写。

2、检测身份证正误的公式以身份证号在E列5行为例=IF(OR(LEN(E5)=15,IF(LEN(E5)=18,MID("10X98765432",MOD(SUM(MID(E5,{1;2;3;4;5;6;7;8;9;10;11;1 2;13;14;15;16;17},1)*2^(18-{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17})),11)+1,1)=RIGHT(E5)) ),"身份证正确","身份证错误")复制到最后一列,复制完成后必须用ctrl+shift+回车(也可直接回车),这是数组函数,必这样,然后一直往下拉就行了3、查重复公式以身份证号在E列5行为例,结果显示:1 证明没有重复。

显示:2 证明身份证号有错误,检索一下就能发现。

=SUMPRODUCT(N(CLEAN($E$6:E$6000)=CLEAN(E6)))4、这些仅用来检查身份证的,至于姓名正误和个人其他信息正误,一定要人工认真检查。

5 、15位或者18位身份证性别公式=IF(MOD((IF(LEN(E6)=18,MID(E6,17,1),MID(E6,15,1))),2)=0,"女","男")6、15位或者18位身份证年龄公式=YEAR(TODAY())-(IF(LEN(E6)=18,MID(E6,7,4),"19"&MID(E6,7,2)))7、15位或者18位身份证出生年月公式=IF(LEN(H3)=18,MID(H3,7,4)&"-"&MID(H3,11,2),"19"&MID(H3,7,2)&"-"&MID(H3,9,2))。

身份证号自动生成年龄、出生年月、性别公式

身份证号自动生成年龄、出生年月、性别公式

身份证号自动生成年龄、出生年月、性别公式:1、生成出生年月日公式一(18位号和15位号都可自动生成 19**-*-*):=DATE(MID(I4,IF(LEN(I4)=18,7,7),IF(LEN(I4)=18,4,2)),MID(I4,IF(LEN(I4 )=18,11,9),IF(LEN(I4)=18,2,2)),MID(I4,IF(LEN(I4)=18,13,11),IF(LEN(I4 )=18,2,2)))生成出生年月日公式二(18位或15位号生成19**-**-**):=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),MID (C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2))生成出生年月日公式三(19XX年XX月XX日)=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),MID (C2,7,4)&"年"&MID(C2,11,2)&"月"&MID(C2,13,2)&"日")说明:自动生成出生年月就把以上公式复制粘贴到需自动生成“出生年月日”的那一栏第一格,然后把公式一中的所有“I4”或公式二中的所有“C2”改成身份证号码单元格的栏代码如A、B、C、D……和行数如1、2、3、4……。

点“回车”即可。

2、利用出生年月日生成年龄:=YEAR(TODAY())-YEAR(F4)说明:自动生成年龄就把以上公式复制粘贴到需自动生成那一栏第一格,然后把公式中的所有“F4”改成出生年月日单元格的栏代码如A、B、C、D……和行数如1、2、3、4……。

Python3身份证号升位

Python3身份证号升位

Python3⾝份证号升位⾝份证号升位描述第⼆代居民⾝份证是依据2003年6⽉28⽇第⼗届全国⼈⼤常委会第3次会议通过的《中华⼈民共和国居民⾝份证法》实施的。

第⼀代⾝份证⼗五位数升为第⼆代⾝份证⼗⼋位数的⼀般规则是:第⼀步,在原⼗五位数⾝份证的第六位数后⾯插⼊19 (1905年1⽉1⽇以后出⽣)或20(2000.1.1-2004.12.31出⽣),这样⾝份证号码即为⼗七位数;第⼆步,按照国家规定的统⼀公式计算出第⼗⼋位数,作为校验码放在第⼆代⾝份证的尾号。

校验码计算⽅法:将⾝份证前⼗七位数分别乘以不同系数并求和S = Sum(Ai * Wi)Ai:表⽰第i位置上的⾝份证号码数字值, i = 0, ... , 16Wi:表⽰第i位置上的加权因⼦,Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2S对11取模得到余数0-10,对应的校验码如下:余数 Y: 0 1 2 3 4 5 6 7 8 9 10校验码: 1 0 X 9 8 7 6 5 4 3 2#题⽬假设所有⼈均出⽣于1905年1⽉1⽇以后,2005年1⽉1⽇以前输⼊格式输⼊⼀个15位⾝份证号输出格式输出⼀个18位⾝份证号输⼊输出⽰例输⼊ 输出310112********* 310112************代码Y = {0:'1',1:'0',2:'X',3:'9',4:'8',5:'7',6:'6',7:'5',8:'4',9:'3',10:'2'}Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]id = input()if int(id[6:8]) < 5:id = id[0:6]+"20"+id[6:]else:id = id[0:6]+"19"+id[6:]s = 0for i in range(0,17):s = s + int(id[i]) * Wi[i]id = id + Y[s%11]print(id)。

浅谈如何将身份证号码15位转为18位

浅谈如何将身份证号码15位转为18位

浅谈如何将身份证号码15位转为18位笔者日前参与城乡居民保险制度全覆盖审计调查,在审查参保人员是否存在重复参加城乡居保及职工养老险种情况时,发现城乡居保参保人信息中身份证号码均为18位,而职工养老参保人信息中身份证号码长度不唯一,导致无法正确比对数据。

18位身份证号码除了据原有15位基础上,在出生年月部分添加“19”外,号码最后添加一位验证码。

公安局公布的验证码算法内容概述为:将添加“19”后的17位身份证号码对应乘上系数并求和,再将系数和除11后求余数,根据余数对应选择验证码。

笔者据此编写出一套语句,内容如下:一、筛选出15位身份证号码后生成一张新表,将其转为17位1.select 公民身份号码 into 身份证号码 from dbo.个人基本信息 where len(公民身份号码)=152. alter table 身份证号码 add 公民身份号码17位varchar(20)3.update 身份证号码 set 公民身份号码17位=substring(公民身份号码,1,6)+'19'+RIGHT(公民身份号码,7)二、添加系数和、余数及验证码三列Alter table 身份证号码 add系数和 intAlter table 身份证号码 add余数 intAlter table 身份证号码 add验证码 varchar(2)三、求系数和update dbo.身份证号码 set 系数和 =cast(left(公民身份号码17位,1) as int)*7+cast(substring(公民身份号码17位,2,1) as int)*9+cast(substring(公民身份号码17位,3,1) as int)*10+cast(substring(公民身份号码17位,4,1)as int)*5+cast(substring(公民身份号码17位,5,1)as int)*8+cast(substring(公民身份号码17位,6,1)as int)*4+cast(substring(公民身份号码17位,7,1) as int)*2+cast(substring(公民身份号码17位,8,1)as int)*1+cast(substring(公民身份号码17位,9,1)asint)*6+cast(substring(公民身份号码17位,10,1)asint)*3+cast(substring(公民身份号码17位,11,1)asint)*7+cast(substring(公民身份号码17位,12,1) as int)*9+cast(substring(公民身份号码17位,13,1)asint)*10+cast(substring(公民身份号码17位,14,1)as int)*5+cast(substring(公民身份号码17位,15,1)asint)*8+cast(substring(公民身份号码17位,16,1)asint)*4+cast(substring(公民身份号码17位,17,1)as int)*2四、求余数Update 身份证号码 set 余数=系数和%11五、求验证码Update 身份证号码 set 验证码= case when 余数=0 then '1'when 余数=1 then '0'when 余数=2 then 'x'when 余数=3 then '9'when 余数=4 then '8'when 余数=5 then '7'when 余数=6 then '6'when 余数=7 then '5'when 余数=8 then '4'when 余数=9 then '3'when 余数=10 then '2' end六、更新原参保信息表Update a set a. 公民身份号码='b.公民身份号码位'+'b.验证码' from dbo.个人基本信息a,身份证号码 b where a. 公民身份号码=b. 公民身份号码。

身份证号码换算年龄、性别、出生日期的公式

身份证号码换算年龄、性别、出生日期的公式

身份证号码换算年龄、性别、出生日期的公式15位和18位的身份证号都合适的了。

设内容如下:........A列......B列......C列......D列....1 身份证号性别出生年月年龄2(输入身份证号)算年龄的:“=IF(OR(LEN(A2)=15,LEN(A2)=18),RIGHT(IF(IF(LEN(A2)=15, MID(A2,9,2),MID(A2,11,2) )*100+IF(LEN(A2)=15,MID(A2,11,2),MI D(A2,13,2))>MONTH(TODAY())*100+DAY(TODAY()),YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))-1,YEAR(TODAY())-IF(L EN(A2)=15,MID(A2,7,2),MID(A2,9,2))),2),"证号错误")”算性别的:“=IF(LEN(A2)=15,(IF(OR(ABS(RIGHT(A2))=1,ABS(RIGHT(A2) )=3,ABS(RIGHT(A2))=5,A BS(RIGHT(A2))=7,ABS(RIGHT(A2))=9),"男","女")),(IF(OR(ABS(MID(A2,17,1))=1,ABS(MID(A2,17,1))=3,ABS(M ID(A2,17,1))=5,ABS(MID( A2,17,1))=7,ABS(MID(A2,17,1))=9),"男","女")))”算出生年月的:“=DATE(IF(LEN(E3)=15,MID(E3,7,2),MID(E3,9,2)),IF(LEN(E3) =15,MID(E3,9,2),MID(E3,11,2)),IF(LEN(E3)=15,MID(E3,11,2),MID(E3,13,2)))”只要把输入身份证号的单元格格式设为“文本”就是最关键的,准确。

身份证号码转换

身份证号码转换
end select
oldtonew = newnumber + code
end function
估计பைடு நூலகம்能看懂的不会太多,那偶就来演算一个吧。
假定旧号码为ABCDEFGHIJKLMNO
第一步,将旧号码变成ABCDEF19GHIJKLMNO
第二步,利用2的17次方到2的1次方对11进行除法运算后取得的余数,与旧号码ABCDEF19GHJIJKLMNO中的各位依次相乘并相加,得到一个num,简单来说,这个
先给大家看一下源码:
function oldtonew (oldnumber)
newnumber = left (oldnumber,6) + "19" + right (oldnumber,9)
num = 0
for i = 18 to 2 step -1
num = num + (2 ^ (i - 1) mod 11) * (mid (newnumber,19 - i,1))
num = 7*A+9*B+10*C+5*D+8*E+4*F+2*1+1*9+6*G+3*H+7*I+9*J+10*K+5*L+8*M+4*N+2*O
第三步,将num除以11得到一个余数S
第四步,如果S=0,则最后一位数字为1;
如果S=1,则最后一位数字为0;
身份证号码转换
偶然间对15位身份证号转18位身份证号的转换原理发生了兴趣,显然,前17位没有什么花样可言,而最后一位的转换,却并非是对原来的15位号码进行简单的加法或乘法运算就可以完成的。上网查了一下,发现说的都很含糊,给出的计算公式也不是那么明朗,总之,一句话,看不懂的说~~

在excel中前面加字、由身份证号求出生日期、性别、年龄Excel中如何将15位身份证号转换为18位

在excel中前面加字、由身份证号求出生日期、性别、年龄Excel中如何将15位身份证号转换为18位

在EXCEL2003中把数字转换成日期1。

假定A2为文本数字,B2存放转换后的日期。

请在B2输入公式:=DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,7,2))=DATE(MID(H2,1,4),MID(H2,5,2),MID(H2,7,2))2。

把B2设置成你要的格式。

右击B2单元格-----选“设置单元格格式”----选“数字”下的“自定义”-----在“类型”框中输入“YYYY-MM-DD-”(引号不要输入)-----点“确定”。

格式为“**年**月”的:设A列是身份证号,可在B1输入:=IF(LEN(A1)=15,MID(A1,7,2)&"年"&MID(A1,9,2)&"月",MID(A1,9,2)&"年"&MID(A1,11,2)&"月")再将公式向下复制即可。

格式为“****年**月”的:=IF(LEN(A1)=15,"19"&MID(A1,7,2)&"年"&MID(A1,9,2)&"月","19"&MID(A1,9,2)&"年"&MID(A1,11,2)&"月")再将公式向下复制即可。

如果你再想限制身份证号输入错误,可用这个公式:=IF(OR(LEN(A1)=15,LEN(A1)=18),IF(LEN(A1)=15,MID(A1,7,2)&"年"&MID(A1,9,2)&"月",MID(A1,9,2)&"年"&MID(A1,11,2)&"月"),"证号错误")这样只要输入的证号不是15位或18位就提示了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档