用IF同时满足LEN和MID两个条件

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:40:56
=IF(LEN(C1)=11,IF(MID(C1,1,1))=1,"1","0")错在哪?
即如果C1字符=11,且C1第一个字符=1,显示为1,否则显示为0.
公式不能用错在哪,请解答下。

你的公式中有几处错误:

1、if函数用法不对:对于同时满足LEN和MID两个条件,应该用 and 函数组成一个逻辑表达式,而不该用if嵌套;

2、mid函数的结果为字符型的,而你的公式中表达式 MID(C1,1,1))=1的等号后面的 1 为数值型,因此该表达式的逻辑值将永远为False,故,等号后面的1应该加上引号;

3、取字符串的第一个字符用mid函数显然不科学,表达式 MID(C1,1,1))="1" 完全可以改成 left(C1)="1" ;

4、IF条件判断的两种结果,完成可以用1和0来表达,没有必要使它的结果为字符型,因此,公式后两个参数 1 和 0 没有必要添加引号

综上,你的公式可以改成:
=IF(and(LEN(C1)=11,MID(C1,1,1)="1"),1,0)

=IF(and(LEN(C1)=11,left(C1)="1"),1,0)

其实你的公式还可以进一步简化:
=--and(len(C1)=11,left(C1)="1")

再简化:
=(LEN(C1)=11)*(LEFT(C1)="1")

if len(c1)=11 and left(c1,1)="1" then
debug.? "1"
else
debug.? "0"
end if

你写的方式应该用IIF
=iif(len(c1)=11 and mid(c1,1,1)="1",1,0)

=IF(AND(LEN(C1)=11,MID(C1,1,1)="1"),"1","0")
你在结果1和0上加"",得出的结果是文本格式.

=if(and(len(c1)=11,--left(c1,