excel 15位身份证号转换为18位模块怎么做

如题所述

假设身份证在A1单元格
在B1单元格输入公式
=replace(a1,7,,19)&mid("10x98765432",mod(sumproduct(mid(replace(a1,7,,19),row(1:17),1)*2^(18-row(1:17))),11)+1,1)

下拉填充公式
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-30
如果你的15位身份证号码在A1,则在需要显示为18位的单元格输入=REPLACE(A1,7,,"19")&MID("10X98765432",MOD(SUM(MID(REPLACE(A1,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)
第2个回答  2013-01-30
用公式就可以做出来:
假定原15位身份证号在A列,在B1输入公式:
=LEFT(A1,6)&19&RIGHT(A1,9)&MID("10X98765432",MOD(SUMPRODUCT(MID(LEFT(A1,6)&19&RIGHT(A1,9),ROW(1:17),1)*MOD(2^(18-ROW(1:17)),11)),11)+1,1)
第3个回答  2013-01-30
Function IDCode(sCode15 As String) As String
' 功能:将15的身份证号升为18位(根据GB 11643-1999)
' 参数:原来的号码
' 返回:升位后的18位号码
Dim i, num As Integer
Dim code As String
num = 0
IDCode = Left(sCode15, 6) + "19" + Right(sCode15, 9)
' 计算校验位
For i = 18 To 2 Step -1
num = num + (2 ^ (i - 1) Mod 11) * (Mid(IDCode, 19 - i, 1))
Next i
num = num Mod 11
Select Case num
Case 0
code = "1"
Case 1
code = "0"
Case 2
code = "X"
Case Else
code = Trim(Str(12 - num))
End Select
IDCode = IDCode + code
End Function
使用方法:A1为15位号码。
在B1输入“= IDCode(A1)”回车
第4个回答  2013-01-30
首先第7—12位前加19,,然后取得最后一位验证码计算公式(上网可以查到)算出第18位,嵌入就可以了。
相似回答