EXCEL函数高手,能否帮忙编个函数,可以识别输入身份证号输入的正确性?
发布网友
发布时间:2022-04-29 17:13
我来回答
共1个回答
热心网友
时间:2023-10-22 12:20
"设A2是身份证号
=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),LEN(A2)=15)
结果为TRUE,正确的身份证号,FALSE为错误的身份号。你可以将公式输入到B2,或在数据有效性中设置。
实际上,18位身份证的最后一位就是检验码,它是根据身份证前17位数字计算出来的,一般情形只需要有一位数字输入错误,计算就会与第18位数不符。当然有可能多位数字均输入错误,计算后恰好与之相符,但这种情形可能性很低。
判别15位身份证的中间日期是不是是有效日期用公式
=ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))。
15位身份证号现已不多,上边的公式木有进一步判别,假如确实还要判别,就将公式改变为
=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))))
不是15位和18位的身份证号均判别为错误。
公式不错,期望能多给点分。"
热心网友
时间:2023-10-22 12:20
"设A2是身份证号
=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),LEN(A2)=15)
结果为TRUE,正确的身份证号,FALSE为错误的身份号。你可以将公式输入到B2,或在数据有效性中设置。
实际上,18位身份证的最后一位就是检验码,它是根据身份证前17位数字计算出来的,一般情形只需要有一位数字输入错误,计算就会与第18位数不符。当然有可能多位数字均输入错误,计算后恰好与之相符,但这种情形可能性很低。
判别15位身份证的中间日期是不是是有效日期用公式
=ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))。
15位身份证号现已不多,上边的公式木有进一步判别,假如确实还要判别,就将公式改变为
=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))))
不是15位和18位的身份证号均判别为错误。
公式不错,期望能多给点分。"
热心网友
时间:2023-10-22 12:20
"设A2是身份证号
=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),LEN(A2)=15)
结果为TRUE,正确的身份证号,FALSE为错误的身份号。你可以将公式输入到B2,或在数据有效性中设置。
实际上,18位身份证的最后一位就是检验码,它是根据身份证前17位数字计算出来的,一般情形只需要有一位数字输入错误,计算就会与第18位数不符。当然有可能多位数字均输入错误,计算后恰好与之相符,但这种情形可能性很低。
判别15位身份证的中间日期是不是是有效日期用公式
=ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))。
15位身份证号现已不多,上边的公式木有进一步判别,假如确实还要判别,就将公式改变为
=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00"))))
不是15位和18位的身份证号均判别为错误。
公式不错,期望能多给点分。"