在单元格中,输入身份证号码,有15或18位两种,由于输入过多导致输入错误,请问如何检验? 1、身份证位数(是否为15位或18位) 2、日期是否合法(主要是判断月份是否在1-12之间,日期是否超出当月的天数等) 3、身份证号是否重复。 数据有效性公式如下: =NOT(OR(AND(LEN(A1)<>15,LEN(A1)<>18),COUNTIF(A:A,A1)<>1,ISERROR(1*TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")))) 可以设置提示内容为: “身份证位数或者日期有误,或者身份证号有重复,请核准后重新输入!” 这样设置好后有以上三错误就不能输入了。 但还有个缺点,就是不知道和上面那个身份证号重复了。 所以建议采用如下方法: 在数据有效性中只判断位数和日期问题,公式如下: =NOT(OR(AND(LEN(A1)<>15,LEN(A1)<>18),ISERROR(1*TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")))) 提示内容为: “身份证位数或者日期有误,请核准后重新输入!” 然后在A列用条件格式显示重复的身份证号码,条件格式的条件设为: 公式=COUNTIF(A:A,A1)>1 将字体设为红色。 这样设置后,位数和日期有问题不能输入,重复的可以输入,但会显示为红色字体,以便你检查是这个单元格错了,还是先输入的那个单元格(红色字体)错了。