在单元格中查找某个文本并写入另一个单元格中

我有一个单元格A1,它有下面的句子“颜色是橙色的”,我想search这个句子,并且发现它是否有单词橙色,如果是的话在单元格B1中写入橙色,如果没有则search黑色,如果是写入黑色,如果找不到绿色等等。 我必须search10种不同的颜色。 我需要一个简单的Excel公式而不是VBA。

就像是:

=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(…)公式列表颜色按照相反的顺序排列。