2017-05-03 77 views
1

我有一個很大的關鍵字電子表格,需要按照它們的根名稱對它們進行分組。每個關鍵字都包含附有地理位置或其他術語的短語中的詞根(例如樹根刪除波士頓,其中的根詞是樹)。反向索引匹配關鍵字

我有一列包含列B中的所有關鍵字(〜30,000)和列Z中73個根項的列表。我想比較列B中的關鍵字和列Z中的根項,並返回根長成C列。

我試過幾個數組公式,比賽,vlookup等沒有用。

+0

你可以使用'Instr()'函數。但是,您必須遍歷所有73個根項,或使用73個輔助列來確定根項是否在字符串中。調用30K * 73 instr公式將會對您的應用程序造成巨大的負擔。在這種情況下,VBA解決方案將是最好的解決方案。這裏是'instr()'的一些信息https://www.techonthenet.com/excel/formulas/instr.php – Luuklag

+0

不完全是一個「重複」的問題,但在這個問題上的答案有你需要的功能,我認爲? http://stackoverflow.com/questions/8313919/excel-search-for-a-list-of-strings-within-a-particular-string-using-array-formu – Wedge

回答

0

如果所有「根詞」將成爲「關鍵字」中的第一個詞,那麼下面的詞將會與您匹配。我將假設你的關鍵字列表在B1單元格開始,這個公式將被輸入到單元格C1中。

{=INDEX($Z$1:$Z$73,MATCH(1,SEARCH($Z$1:$Z$73,B1,1),0))} 

這是一個數組公式,因此需要輸入Shift + Ctrl + Enter。如果根詞的位置不是第一個詞,我需要再考慮一下。

+0

謝謝 - 我試過 - 根項是所有情況下的第一個詞。 –

+0

完美工作 - 謝謝 –

+0

樂意幫忙。如果它確實回答你的問題,請接受這個答案。 – Kyle

0

您可以使用C1以下幾點:

=INDEX($Z$1:$Z$73,MAX(IF(ISERROR(FIND($Z$1:$Z$73,B1)),-1,1)*ROW($Z$1:$Z$73))) 

數組公式按按Ctrl + + 在同一時間進入
只要有根的位置是它會找到它