周一至周五 : 08:30 - 17:30 客服专员电话/微信:18049989370 QQ:857188287
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
关于校对身份证输入准确定的数据有效性的判断
显示全部楼层 倒序浏览 发表日期 2016-06-24 15:30:59 3486次阅读 3次回复
看过有身份证校对的帖子,其实可以更加简单点
=OR(LEN(B6)=15,IF(LEN(B6)=18,MID("10X98765432",MOD(SUM(MID(B6,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(B6)))
测试了 貌似不灵,位数18位或不足18位都返回false 楼主要不要再指点修正下?
马踏飞燕 发表于 2016-6-24 15:54
测试了 貌似不灵,位数18位或不足18位都返回false 楼主要不要再指点修正下?

    非常抱歉,好像数据有效性那里无法使用数组,建议在输入身份证单元格旁边增加一个判断的单元格,比如输入身份证的单元格是B2,判断的单元格为C2,那么在C2单元格中输入:“=OR(LEN(B2)=15,IF(LEN(B2)=18,MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(B2)))”,然后同时按下Ctrl+Shift+Enter,转变为数组公式就可以对B2单元格输入的身份证进行判断了。
    因为本公式主要是对身份证最后一个数字进行计算,所以当身份证里面有任何信息错误的话都会自动报错
这公式太深奥了!没法理解

精彩评论3

测试了 貌似不灵,位数18位或不足18位都返回false 楼主要不要再指点修正下?
马踏飞燕 发表于 2016-6-24 15:54
测试了 貌似不灵,位数18位或不足18位都返回false 楼主要不要再指点修正下?

    非常抱歉,好像数据有效性那里无法使用数组,建议在输入身份证单元格旁边增加一个判断的单元格,比如输入身份证的单元格是B2,判断的单元格为C2,那么在C2单元格中输入:“=OR(LEN(B2)=15,IF(LEN(B2)=18,MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(B2)))”,然后同时按下Ctrl+Shift+Enter,转变为数组公式就可以对B2单元格输入的身份证进行判断了。
    因为本公式主要是对身份证最后一个数字进行计算,所以当身份证里面有任何信息错误的话都会自动报错
这公式太深奥了!没法理解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |