簡體   English   中英

Excel Formula INDEX MATCH多個搜索條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM