打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何快速准确输入身份证号码
 

    以往在Excel中输入身份证号码时,总要反复核对,担心出错。现在好了,电脑帮你检查。如果身份证号码输入错误,Excel会弹出信息框及时提醒你。

    1、把以下代码粘贴到模块中。

Function vsm(olds) As String

    '计算身份证校验码,olds是前18位身份证号码。
    '如果前17位号码有效,返回校验码;否则,返回1个长度空格。
    
    '根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,
    '身份证号码的最后一位是校验码,算法是这样:
    '把前17位的每一个数字和一串加权因子相乘,计算这些乘积的和(S),
    '加权因子是自右向左,分别是2,2^2,2^3,......2^17,大于10的就模11。
    '用这些乘积的和,再模11得到的余数按下述规定得出校验码:
    '余  数:0-1-2-3-4-5-6-7-8-9-10
    '校验码:1-0-X-9-8-7-6-5-4-3-2
    '注:校验码X是罗马数字10,但为书写方便,本代码中用的是英文字母X。
    
    If Len(olds) = 18 Then
        Dim i, w, s, cs As Integer
        w = 1
        s = 0
        For i = 1 To 17
            w = (w * 2) Mod 11
            cs = Asc(Mid(olds, 18 - i, 1)) - 48
            If cs >= 0 And cs < 10 Then
                s = s + cs * w
            Else
                'vsm = "第" & (18 - i) & "位不是数字!"
                vsm = " "
                i = 20
            End If
        Next
         If i = 18 Then
            s = (12 - s Mod 11) Mod 11
            vsm = LTrim(Str(s))
            If s = 10 Then vsm = "X"
         End If
    Else
        'vsm = "位数不对!"
        vsm = " "
    End If
    
End Function

    2、假设身份证号码在C4单元格开始的列中,D列作为辅助列计算校验码。在D4单元格中输入公式:=vsm(C4),下拉公式;选定C4:C1000单元格区域(根据需要),选择菜单:数据--有效性--在“设置”选项卡的“允许”栏选择“自定义”,“公式”栏输入:=AND(RIGHT(C4,1)=D4,RIGHT(C4,1)<>" ")--选择“出错警告”选项卡,在“标题”栏输入“输入错误”,在“错误信息”栏输入“请输入18位有效身份证号码!”--确定,然后把D列隐藏。

    当然,如果只要计算校验码,也可不使用自定义函数,直接在D4单元格中输入数组公式:=MID("10X98765432",1+MOD(SUM(MID(C4,ROW($1:$17),1)*2^(18-ROW($1:$17))),11),1),(按Ctrl+Shift+Enter结束),然后下拉公式

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
判断身份证号码输入的有效性
Excel究竟能从身份证号码中提取出多少信息?
Excel如何从身份证号码中提取计算出生日期、性别及年龄呢?
你造吗?Excel 能判断你的性别
身份证号提取男女性别公式
12组常用Excel函数公式,工作中直接套用,推荐收藏备用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服