身份证号长度验证 设置身份证号长度的验证,你觉得要怎么下手比较好?
有经验的人会发现我们的身份证号有两个特点:
1、身份证位数(是否为15位或18位)
2、日期是否合法(主要是判断月份是否在1-12之间,日期是否超出当月的天数等)
所以我们的函数就是要解决这两个问题,判断的函数比较多,比较长。在公式输入框中输入=AND(OR(LEN(A1)=15,LEN(A1)=18),1*TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"))
搭档函数:TEXT文本格式函数,MID中间截取函数,LEN文本长度函数,OR或函数,AND与函数。
这一串这么长的函数嵌套什么意思呢?我们来分解一下:
首先,我们来解决身份证位数问题,判断是否是15位还是18位。
在这里我们用OR(LEN(A1)=15,LEN(A1)=18),意思是要输入的数字必须满足15位或18位都可以,这个没问题吧?
其次,我们知道身份证号里包含了我们的出生日期,这个格式是否合理。在这里我们就要把身份证号中的出生日期提取出来,判断它的格式是否满足日期格式。由于身份证号有15位和18位,如果是15位的话,年份里是没有19的,所以我们要考虑到这一点。
我们用1*TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")来表示。
最后,我们要以上两个条件同时满足才算数据是符合要求的,所以用AND连接起来。 |