我有一个单元格A1,后面有句子"颜色是橙色"我想搜索这个句子并查找它是否有橙色字,如果是,则在单元格B1中写入橙色,如果不是,则搜索黑色,如果是,则写入黑色,如果找不到绿色等等。我必须搜索10种不同的颜色。我需要一个简单的excel公式而不是VBA。
答案 0 :(得分:5)
类似的东西:
=IFERROR(CHOOSE(MATCH(TRUE,ISNUMBER(SEARCH({"red","orange","black","yellow"},A1)),0),"red","orange","black","yellow"),"")
注意SEARCH函数中的数组常量,以及CHOOSE函数的匹配选项
使用LOOKUP的第二种方法也可以使用,并且可以使用两个数组常量,这意味着您可以轻松列出一系列单元格中的颜色并使用公式中的范围引用:
=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH({"red","orange","black","yellow"},A1)),{"red","orange","black","yellow"}),"")
或使用范围参考:
=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH($I$1:$I$10,A1)),$I$1:$I$10),"")
请注意,如果使用此技术,I1:I10中不能有空白单元格。 我假设您正在检查的每个单元格中只列出一种颜色。
如果A1中可能有多种颜色,则使用第一个(... CHOOSE(MATCH ...)公式,按优先顺序列出颜色;使用最后一个(... LOOKUP(...)公式,按优先级的相反顺序列出颜色。