2014-05-22 68 views
1

我試圖在文本列中搜索部分文本字符串並返回第二列。希望這會更有意義的例子(注意這個例子是由 - 我不能發佈我正在使用的確切數據,但這是類似的)。Excel VLOOKUP和SEARCH組合

例如:

A       D    E 

Really good dog    Good dog   text1 
red dog collar    Brown dog  text2 
Brown Toy dog    big dog   text3 
          dog collar  text4 
          dog walking  text5 


A     B  

Really good dog  text1 
red dog collar  text4 
Brown Toy dog   Not Found 

所以列d是通過搜索提供匹配在A列的第一個值,如果有一個匹配返回列E對應的文本,如果沒有匹配它返回「未找到」。正如您從預期結果B列中看到的那樣,字符串「Good dog」出現在「真正的好狗」中,所以「真正好的狗」的結果是「text1」。請注意,這種情況並不重要。

我一直在玩弄

=(VLOOKUP("*"&DCE!X2&"*",Lookups!$K$2:$L$19,2,FALSE)) 

不工作,因爲它不是所有單元格中的文本字符串,可匹配的值。 我使用

=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH($A$1:$A$3,C1)))))>0,"1","") 

這將是巨大的,如果我能交換的範圍與搜索範圍內的單元格嘗試。

我知道有這些公式的MATCH版本,但我一直沒能得到這工作的。

我有工作的唯一公式是一個巨大的嵌套IF語句

=IF(ISNUMBER(SEARCH(Lookups!$K$2,X2)),Lookups!$L$2,IF(ISNUMBER(SEARCH(Lookups!$K$3,X2)),Lookups!$L$3,IF(ISNUMBER(SEARCH(Lookups!$K$4,X2)),Lookups!$L$4,IF(ISNUMBER(SEAR...... 

,我不希望被創造100多個項目來搜索。這將查看搜索列(列D)中的第一個值是否包含在查找字符串(列A)內,如果是,則返回結果(列E),如果不是,則返回「未找到」。

此外,在上述公式中的單元格引用不直接涉及到的例子,他們只是公式我一直在嘗試的例子(我已經在不同的崗位上發現這個網站)。

任何意見將不勝感激。對不起,如果這很難遵循,我相當新的Stackoverflow。

回答

0

不錯的問題!這適用於你提供的示例:

enter image description here

它是一個數組式,所以它需要使用Control + Shift + Enter鍵來確認。

它所做的是它創造的Find的數組,並投下他們布爾(該NOT((NOT...))一部分,然後由--部分轉換布爾值1MATCH發現1的數組中的位置,這是隻要數據從第一行開始就可以工作,但它可以很容易地修改爲其他工作,但我不完全確定它滿足您的所有需求,例如,一個潛在的問題是如果在B列中有兩個相同的字符串,由於MATCH()函數的工作原理,它將返回上一個。

偷偷摸摸但它有問題幹得不錯的工作!

+1

這很好,非常感謝您的幫助! B列中不會有相同的字符串,所以這不是問題。我現在可以玩這個公式,所以我可以有一個稍微不同的佈局。另外,我更改了FIND(搜索)(所以它不區分大小寫。再次感謝您的幫助。 – LauraB