2017-05-03 10 views
1

私は大きなスプレッドシートのキーワードを持っており、根本的な用語でそれらをグループ化する必要があります。それぞれのキーワードには、地理やその他の用語が付けられた語句のルート用語が含まれています(ルート削除されたツリー削除ボストンなど)。逆インデックス一致キーワード

私は列Bのすべてのキーワード(〜30,000)と列Zの73のルート用語のリストを持っています。列Bのキーワードを列Zのルート用語と比較し、ルートカラムCに入れてください。

私はいくつかの配列式、インデックス/マッチ、vlookupなどを無駄に試しました。

+0

'Instr()'関数を使うことができます。ただし、ルート用語が文字列に含まれているかどうかを判断するには、73のすべてのルート用語をループするか、73のヘルパー列を使用する必要があります。 30K * 73の数式を呼び出すと、アプリケーションに大きな負担がかかります。この場合、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キー + Shiftキー + が同時にを入力します。

関連する問題