2016-08-05 75 views
0

在B2我有文本搜索範圍內,在C2我有這個公式來搜索工作表上的單詞稱爲「關鍵字」匹配。Excel公式只使用第一個值在另一個工作表的列

{= 
IF(B2="","", 
IF(ISNUMBER(SEARCH(keywords!$B$2:$B$5,B2)),"Fruit", 
IF(ISNUMBER(SEARCH(keywords!$C$2:$C$5,B2)),"Nature", 
IF(ISNUMBER(SEARCH(keywords!$D$2:$D$5,B2)),"Vehicle", 
"no match")))) 

的公式僅使用第一關鍵字B2,C2,D2上的關鍵字表,而不是通過B5,C5,D5。什麼是正確的公式?

我知道如果找到多個匹配項,結果將是最後一條滿意的聲明。請幫忙!

formula

keywords

+0

檔案在這裏https://www.dropbox.com/s/3rspwnetpgttko2/keywords_lookup_test.xlsx?dl=0 –

+0

你的意思是開始B3的範圍?當然B2會與B2相匹配。 –

+0

Hlookup?這是你正在尋找的功能嗎? – Andreas

回答

2

對於非CSE陣列使用SUMPRODUCT:

= 
IF(B2="","", 
IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!B$2:B$5,$B2))*1)>0,"Fruit", 
IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!C$2:C$5,$B2))*1)>0,"Nature", 
IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!D$2:D$5,$B2))*1)>0,"Vehicle", 
"no match")))) 

對於稍短公式使用關鍵字表中的標題行作爲返回值,因此不需要對值進行硬編碼。使用這個:

=INDEX(keywords!$B$1:$D$1,AGGREGATE(15,6,(COLUMN(keywords!$B$2:$D$5)-COLUMN(keywords!$B$2)+1)/(ISNUMBER(SEARCH(keywords!$B$2:$D$5,B2))),1)) 

範圍可以擴展到允許更多的行或列在未來,而不需要添加更多的IF語句。

enter image description here

+0

斯科特,這很方便,所以如果你喜歡的話,不需要移動/控制/輸入 –

+0

@ElGavino,看看我的編輯。我添加了第二個公式,該公式一次查看整個範圍,並返回標題行而不是硬編碼的單詞。 –

+0

感謝較短的版本,但是當關鍵字的範圍改變爲僅包含C和D時,我得到#NUM!使用此錯誤 = INDEX(關鍵字!$ C $ 1:$ D $ 1,AGGREGATE(15,6,(COLUMN(關鍵字!$ C $ 2:$ D $ 6)-COLUMN(關鍵字!$ C $ 2)+1)/( ISNUMBER(SEARCH(關鍵字!$ C $ 2:$ D $ 6,B3))),1)) –

0

嘗試:

{ = 
IF(B2="","", 
IF(MAX(IFERROR(SEARCH(keywords!$B$2:$B$5,B2),0))>0,"Fruit", 
IF(MAX(IFERROR(SEARCH(keywords!$C$2:$C$5,B2),0))>0,"Nature", 
IF(MAX(IFERROR(SEARCH(keywords!$D$2:$D$5,B2),0))>0,"Vehicle", 
"no match")))) } 
+0

蒂姆,這工作!謝謝!因爲它從第一個關鍵字列中返回第一個匹配,而不是最後一個滿足的語句,所以效果比我預期的要好。 –

0

的問題是,你的公式中搜索正在尋找一個單個值指定的文本字符串中搜索,因此當您選擇範圍$B$2:$B$5它選擇在的第一個單元格的值細胞的範圍。

而不是使用SEARCH函數使用MATCH功能與匹配類型0和完全匹配。注意:這不需要是數組公式。 例子:

=IF(B2="","",IF(ISNUMBER(MATCH(B2,keywords!$B$2:$B$5,0)),"Fruit",IF(ISNUMBER(MATCH(B2,keywords!$C$2:$C$5,0)),"Nature",IF(ISNUMBER(MATCH(B2,keywords!$D$2:$D$5,0)),"Vehicle","no match"))))

而且你發言。「我明白了,結果將是最後一個滿意的說法,如果超過一個找到匹配的請幫幫忙!」你可能意思是第一個滿意而不是最後一個;這將是正確的。

+0

感謝這個版本,但在術語列中有多個單詞時沒有用。 –

相關問題