第1个回答 2010-07-31
我觉得你的这个公式有问题,好象解释不通啊?
看看我的这个公式:
=if(len(B2)=15,"19"&mid(B2,7,6),if(len(B2)=18,mid(B2,7,8),"Error"))
公式中有两个 if(),第一个是判断15位长码,第二个是判断18位长码,都不是的写入“Error”
这个公式清楚吗?
第2个回答 2010-07-31
IF(LEN(B2)=15,19,"")如果是15位,显示19,否则(18位)留空。
LEN(B2)=18返回的是逻辑值,15位时返回false(0),18位则返回true(1)。
MID(B2,7,6+(LEN(B2)=18)*2)表示从B2的第7位开始截取,长度为6+(LEN(B2)=18)*2,即15位时截取6位(6+0*2=6),18位时截取8(6+1*2=8)位。
&是连接符,将15位时返回的19和18位的空值和截取的字符串连接起来。
第3个回答 2010-07-31
第一个“=IF(LEN(B2)=15,19,"")&是讲如果身份证号码为15位,则在年份前加上19,6+(LEN(B2)=18)*2,这是个判定, 如果LEN(B2)=18,则为真,值为1,则MID函数取从7位起取6+1*2=8位数,如果LEN(B2)=18为假,值为0,则MID函数则从身份证7位起取6+0*2=6位数
第4个回答 推荐于2017-09-22
888888【860109】xxx 15位身份证
888888【19860109】xxxx 18位身份证
IF(LEN(B2)=15,19,"") 判断 省份证是 15位 还是 18位的 因为15位的里面不包括 19xx的19 所以要在算出来的年份前加上 19
MID(B2,7,6+(LEN(B2)=18)*2) 从第7为开始截取 字符串 省份证里 第七位开始时生日
截取长度 为 6+(LEN(B2)=18)*2 15位的长度为 6位 而18位的为 8位
(LEN(B2)=18)其实是当 布尔值来运算的 当 =18时 值为1 <>18时 为0本回答被提问者采纳