发布网友 发布时间:2022-04-22 08:18
共1个回答
热心网友 时间:2023-06-27 22:05
第一,数据有效性局限性很大,类似于你这样的公式根本就实现不了;第二,你的身份证号码验证公式也是错误的,你试一试前15位相同的18位身份证号码,统计计算结果是一样的。
建议:
旁边搞一个辅助列,比如M列,输入公式:
=IF(E1="身份证",IF(LEN(F1)=18,IF(COUNTIF(E:E,F1&"*")>1,"重号了",""),""),IF(E1=0,"","号码位数错"))
复制并下拉,即可在输入过程中检验身份证了
如果更厉害一点的,就是身份证直接验证准确性,公式为:
=IF(E1="身份证",IF(LEN(F1)=18,IF(COUNTIF(E:E,F1&"*")>1,"重号了",IF(RIGHT(F1,1)=MID("10X98765432",MOD(SUMPRODUCT(MID(F1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),"","号码有误")),""),IF(E1=0,"","号码位数错"))
供学习参考