2012-11-28 192 views
1

這跟隨我的前兩個問題:Excel Match multiple criteriaExcel find cells from range where search value is within the cell。如果我過度發佈道歉,但我認爲每個問題都略有不同,如果我不能將他們的答案標記爲正確,那麼困擾人們的後續問題似乎不公平。Excel匹配多個條件加搜索

我有哪些檢查數據的3列從範圍1返回一個值,這個代碼工作的一塊,如果所有的條件都滿足:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(SEARCH(range4,J2)),0)) 

不過,我需要的搜索選項來工作,如果比賽是從這個網站,我知道如何匹配函數中使用或命令的範圍4 OR range5,以及約翰·布斯托斯和巴里胡迪尼感謝發現:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(((C2 = range4)+(D2 = range5))>0),0)) 

上面的代碼工作的完全匹配,但C2的值和D2是單個單元格中包含的數字列表,以及範圍4和r ange5是每個單元中的單年,所以必須使用SEARCH功能來檢查單年是否存在於多年的列表中。因此,通過代碼的兩個工作片來看上面我想這會工作:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(((SEARCH(range4,J2))+(SEARCH(range5,J2))>0)),0)) 

但是,它沒有,也不會:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(((SEARCH(range4,J2))+(SEARCH(range5,J2)))),0)) 

我記得按CTRL + SHIFT + ENTER,它總是返回#N/A。我知道它應該返回值作爲第一個例子,然後再嘗試將它變成OR命令。

我希望有人能夠對此有所瞭解。在此先感謝,

最良好的祝願,

回答

1

您在更改爲SEARCH時遇到的問題是,在以前版本的公式中,C2=range4的結果爲TRUE或FALSE,而返回數字(J2中的範圍4值的位置)或VALUE!錯誤,如果它不在J2中

...所以如果只有一個SEARCH找到一個值而另一個不存在,那麼你仍然會得到一個錯誤,而MATCH不會得到錯誤一個匹配,所以「OR」不起作用........修復你需要添加一些東西來讓SEARCH返回TRUE或FALSE - 你可以用ISNUMBER來做到這一點,即

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(ISNUMBER(SEARCH(range4,J2))+ISNUMBER(SEARCH(range5,J2))>0),0))

還要注意,第一個公式,你引用:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(SEARCH(range4,J2)),0))

如預期

可能無法工作,因爲搜索可能返回1以外的數,所以你需要ISNUMBER有作爲,即

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*ISNUMBER(SEARCH(range4,J2)),0))

+0

就是這個!我認爲這會是這樣的,但我冗長的解決方法導致了記憶問題。我添加(搜索(範圍4,J2))> 0,1,0)+(IF(搜索(範圍5,J2))> 0,1,0),但我甚至無法評估。謝謝巴里,你幫我解決了當時的工作,我非常感謝你的幫助和非常簡潔的解釋。 – JoeP

1

對於數組公式不是它 「按Ctrl + Shift + Enter」 鍵。嘗試一下,看看它是否做了什麼。

+0

哎呀,的確是這樣,這也是我一直在用我的大腦做在自動駕駛上只需鍵入DEL。 – JoeP

+0

用戶安全登錄...完全理解!乾杯! –