[英]Excel Formula INDEX MATCH multiple search criteria
我正在嘗試找到一種在多個條件下進行索引匹配的方法,但是運氣不好。
我有3個我要標記“有害”標簽的文本條目,分別是“ c001 ”,“ c002 ”和“ c003 ”。它們很可能不在排序列表中。
=IFERROR(IF(INDEX(F9:F34,MATCH("*C001*",$B$9:$B$34,0)),"Harmful",""),"")
現在,上面的方法可以完美地工作,但是嵌套IF語句和IF(OR公式)的每種組合都不適合我!
請注意,我使用通配符是因為這些代碼很可能構成較長文本字符串的一部分。
任何建議/指導將不勝感激。
親切的問候。
如果您確實想在一個公式中進行操作,請嘗試以下一個方法:-
=IF(SUMPRODUCT(ISNUMBER(FIND({"C001","C002","C003"},B9:B34))*ISNUMBER(F9:F34)),"Harmful","")
實際上,這與OP的INDEX / MATCH並不太相同,因為上述公式中F9:F34中的零將給出ISNUMBER = TRUE並可能將其標記為有害,而原始公式中的零則不會。
替代方法:-
=IF(SUMPRODUCT(ISNUMBER(FIND({"C001","C002","C003"},B9:B34))*N(+F9:F34)),"Harmful","")
我要補充一點,嵌套IF和OR不適用於OP的公式的原因是,當匹配第一次失敗時,公式的執行將直接移至IFERROR語句中的空字符串“”,因此它不會求值任何其他條件。 您必須將它們分開,例如:
=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函數的形式,或將所有操作都放在一欄中? (如果是這樣,我可能會在您的公式中做出一個猜測,即您希望INDEX函數查看與您的MATCH函數相同的B列嗎?...也許它不起作用的原因之一?)
一種更簡單的解決方案是在列表旁邊添加一些新列,以檢查每個搜索字符串是否存在,並記錄一個標志1,該標志聲明存在。 FIND函數可能就是您想要的,如果找不到引用字符串,它將返回錯誤。
即
在單元格H9 =IF(ISERROR(FIND("C001",F$9)),1,0)
在單元格I9 =IF(ISERROR(FIND("C002",F$9)),1,0)
...等等
然后,在這些檢查列的末尾,對這些值求和。 然后,您將知道總和是否大於零,那么至少發現了一個壞字符串,這對標記來說是有害的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.