Excel公式INDEX MATCH多个search条件

我试图find一种方法来做一个INDEX MATCH在多个标准,但我没有太多的运气。

我有3个文本条目,我要标记“有害”标签,这是“ c001 ”,“ c002 ”和“ c003 ”..他们可能不会在一个sorting列表。

=IFERROR(IF(INDEX(F9:F34,MATCH("*C001*",$B$9:$B$34,0)),"Harmful",""),"") 

现在上面这个完美的工作,但每一个嵌套的IF语句和IF(OR公式不适合我!

请注意,我正在使用通配符,因为这些代码可能构成较长文本string的一部分。

任何意见/指导将不胜感激。

亲切的问候。

如果你确实想用一个公式来做,试试这个:

 =IF(SUMPRODUCT(ISNUMBER(FIND({"C001","C002","C003"},B9:B34))*ISNUMBER(F9:F34)),"Harmful","") 

其实这和OP的INDEX / MATCH不太一样,因为上面公式中的F9:F34中的零值会给出ISNUMBER = TRUE,并且可能会将其标记为有害的,而原始公式中的零不会。

替代scheme: –

 =IF(SUMPRODUCT(ISNUMBER(FIND({"C001","C002","C003"},B9:B34))*N(+F9:F34)),"Harmful","") 

我要补充的是,嵌套IF和OR的原因不适用于OP的公式,因为当匹配首次失败时,公式的执行直接到IFERROR语句中的空string“”,所以它不会评估任何其他条件。 你必须把它们分开,像这样:

 =IF(IFERROR(INDEX(F9:F34,MATCH("*C001*",$B$9:$B$34,0)),0)+IFERROR(INDEX(F9:F34,MATCH("*C002*",$B$9:$B$34,0)),0)+IFERROR(INDEX(F9:F34,MATCH("*C003*",$B$9:$B$34,0)),0),"Harmful","") 

是否有一个特定的原因需要以INDEX函数的forms出现,还是需要在一列中完成? (如果是这样的话,我会在你的公式中冒险猜测你想要的INDEX函数看着你的MATCH函数中的同一列B …也许有一个原因,它不工作?)

一个简单的解决scheme是在列表旁边添加一些新列,检查每个searchstring是否存在,并logging一个标志为1的标志存在的标志。 FIND函数可能是你之后,如果找不到引用string,则返回一个错误。

在单元格H9 =IF(ISERROR(FIND("C001",F$9)),1,0)

在单元格I9 =IF(ISERROR(FIND("C002",F$9)),1,0)

…等

然后在这些检查栏的最后,总结这些值。 然后,你会知道,如果总和大于零,那么至less已经find了坏string,这是一个有害的标志值。