Excel中的IF-ELSE IF-ELSE结构

29

要求:

如果单元格A1中的字符串包含"abc"(作为字符串的一部分)

则将值指定为"绿色"

否则,如果单元格A1中的字符串包含"xyz"(作为字符串的一部分)

则将值指定为"黄色"

否则

将值指定为"红色"

我尝试过这个:

=IF(FIND("~",SUBSTITUTE(A1,"abc","~",1))<>"#VALUE!", "Green", IF(FIND("~",SUBSTITUTE(A1,"xyz","~",1))<>"#VALUE!", "Yellow", "Red"))

它可以在第一个IF为真时工作,在其他情况下则输出#VALUE!

无法弄清楚哪里出错了。

3个回答

40
FIND返回#VALUE!时,它是一个错误而不是字符串,因此你不能比较FIND(...)"#VALUE!",你需要使用ISERROR检查FIND是否返回一个错误。此外,FIND可以处理多个字符。
因此,一个简化且可行的版本的公式如下:
=IF(ISERROR(FIND("abc",A1))=FALSE, "Green", IF(ISERROR(FIND("xyz",A1))=FALSE, "Yellow", "Red"))

或者,为了消除双重否定:

=IF(ISERROR(FIND("abc",A1)), IF(ISERROR(FIND("xyz",A1)), "Red", "Yellow"),"Green")

13
=IF(CR<=10, "RED", if(CR<50, "YELLOW", if(CR<101, "GREEN")))

CR = 行列(单元格) 这是一个例子。在这个例子中,当单元格中的值小于或等于10时,该单元格上将出现红色字。同样地,如果其他条件为真,则会按相同方式处理,如果第一个条件为假。


1
如果P7是一个单元格,则您可以使用以下语法检查单元格的值,并根据以下嵌套if将适当的值分配给另一个单元格:
=IF(P7=0,200,IF(P7=1,100,IF(P7=2,25,IF(P7=3,10,IF((P7=4),5,0)))))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接