身份证号码的校验公式怎么写?
发布网友
发布时间:2022-04-22 23:05
我来回答
共4个回答
热心网友
时间:2022-04-11 17:48
最近一上传图片就提交问题失败…… 悲剧啊……
按 Alt + F11 进入VBA 编辑器
插入 → 模块 → 双击进入 模块1 → 写代码
然后就能使用自定义公式了,比如:=校验码(A1)
主要功能:
如果输入的是17位的数字,就给出第18位校验码的值
=校验码("31010419880501321"),返回 "3"
如果输入的是18位的数字,就校验身份证号,给出 "正确" 或者 "错误"
=校验码("310104198805013213"),返回 "正确"
=校验码("310104198805013214"),返回 "错误"
Private Function 校验码(strText As String) As String
Dim intArrWi
intArrWi = [{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1}]
Dim intSum As Integer
Dim intForTo As Integer
For intForTo = 1 To 17 Step 1
intSum = intSum + intArrWi(intForTo) * Val(Mid(strText, intForTo, 1))
Next intForTo
Select Case intSum Mod 11
Case 0: 校验码 = "1"
Case 1: 校验码 = "0"
Case 2: 校验码 = "X"
Case 3: 校验码 = "9"
Case 4: 校验码 = "8"
Case 5: 校验码 = "7"
Case 6: 校验码 = "6"
Case 7: 校验码 = "5"
Case 8: 校验码 = "4"
Case 9: 校验码 = "3"
Case 10: 校验码 = "2"
End Select
If Len(strText) = 17 Then Exit Function
If Len(strText) = 18 And Mid(strText, 18, 1) = 校验码 Then
校验码 = "正确"
Else
校验码 = "错误"
End If
End Function
热心网友
时间:2022-04-11 19:06
公式如下:
=IF(RIGHT(f2,1)=MID("10X98765432",MOD(SUM(MID(f2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),"","错误")
把f2改成你的身份证号码位置,然后按shift+ctrl+回车,确定后公式两端出现{}符号证明生成了数组公式,可以校验身份证号码,无需vba,无需编程,一个公式全搞定。
热心网友
时间:2022-04-11 20:41
你再试试这个:
A1输入身份证号码,
B1输入
=IF(TEXT(IF(MOD(12-(MID(A1,1,1)*7+MID(A1,2,1)*9+MID(A1,3,1)*10+MID(A1,4,1)*5+MID(A1,5,1)*8+MID(A1,6,1)*4+MID(A1,7,1)*2+MID(A1,8,1)*1+MID(A1,9,1)*6+MID(A1,10,1)*3+MID(A1,11,1)*7+MID(A1,12,1)*9+MID(A1,13,1)*10+MID(A1,14,1)*5+MID(A1,15,1)*8+MID(A1,16,1)*4+MID(A1,17,1)*2),11)=10,"X",MOD(12-(MID(A1,1,1)*7+MID(A1,2,1)*9+MID(A1,3,1)*10+MID(A1,4,1)*5+MID(A1,5,1)*8+MID(A1,6,1)*4+MID(A1,7,1)*2+MID(A1,8,1)*1+MID(A1,9,1)*6+MID(A1,10,1)*3+MID(A1,11,1)*7+MID(A1,12,1)*9+MID(A1,13,1)*10+MID(A1,14,1)*5+MID(A1,15,1)*8+MID(A1,16,1)*4+MID(A1,17,1)*2),11)),0)=MID(A1,18,1),"对","错")
热心网友
时间:2022-04-11 22:32
=LOOKUP(MOD(SUMPRODUCT(--MID($A$1,ROW($1:$17),1),MOD(2^(18-ROW($1:$17)),11)),11),{0,1,2,3,4,5,6,7,8,9,10},{"1","0","x","9","8","7","6","5","4","3","2"})=RIGHT(A1,1)
或者=MID("10X98765432",MOD(SUMPRODUCT(--MID($A$1,ROW($1:$17),1),MOD(2^(18-ROW($1:$17)),11)),11)+1,1)=RIGHT(A1,1)