2017-11-06 6 views
-4

この文字列は、VLOOKUPを使用して一部のテキストと一致するようになっています。VLOOKUPで完全停止の問題が発生する

=CONCATENATE(VLOOKUP(D10,Clients!A1:F10034,2),", ",VLOOKUP(D10,Clients!A1:F30034,3),", ",VLOOKUP(D10,Clients!A1:F10034,4),", ",VLOOKUP(D10,Clients!A1:F10034,5)) 

完全に停止しているマッチに実行されると、マッチは完全停止前のものと一致する最初の結果を返します。

たとえば、検索が "C.B.A Solutions"と一致し、 "Cタイヤ"がある場合& "C.B.A Solutions"は "Clients!"の内部にあります。最初に登場するので「Cタイヤ」にマッチします。

+1

大丈夫ですか?あなたは何をしようとしているのですか?データはどのように見えますか?それを絞り込むために別の変数を含めることができますか? 'INDEX/MATCH'はどうですか? – BruceWayne

+0

いくつかのサンプルデータと希望する出力を入れてください。次に、あなたのロジックを説明してその出力を得ることができます。その結果、出力を得るための式を書くのに役立つものもあります。 – harun24hr

答えて

0

あなたのVLOOKUPSには、オプションの第4引数がありません。データが昇順でソートされ、一致が保証されていない場合(つまり、ルックアップ用語が常にルックアップデータベースに存在する場合)、この第4引数は 'オプション' ではありません。それはここにあるのでしょうか?もしそうなら、あなたの質問を明確にするために修正してください。そうでない場合は、第4引数として 'False'を追加します。

あなたの数式は非常に非効率的であることに注意してください。 VLOOKUPが行う作業の大部分は、参照用語があるキー列に一致する行を配置することです。計算上高価なタスクを専用のMATCH関数に任せて、その結果を4つのINDEX関数に渡す方が良いでしょう。別の列にこれを入れて

=MATCH(D10,Clients!A1:F10034,0) 

は、代わりに計算コストVLOOKUP関数を使用しての、答えにいくつかのINDEX関数を指す:

=CONCATENATE(INDEX(Clients!C1:C30034,[Match Output]),", ",INDEX(Clients!D1:D30034,[Match Output]),,", ",INDEX(Clients!E1:E30034,[Match Output]),) 

はセルと[一致出力]を交換してくださいMATCH関数の出力を含んでいます。

Google INDEXとMATCHとVLOOKUPはなぜ関係があるのですか?

ルックアップリストをソートし、その引き数を無視し、ルックアップリストに欠損値を処理するDouble VLOOKUPトリックを使用すると、何千倍も高速になることに注意してください。詳細については、以下のリンクの私のポストを参照してください。 http://dailydoseofexcel.com/archives/2015/04/23/how-much-faster-is-the-double-vlookup-trick/

+0

私は、検索リストを並べ替えたり、Double VLOOKUPトリックと呼ばれるものを使ったりすることで何度も何度も何度も何かを速くする方法を示す私の答えに、より多くの情報を加えました。 – jeffreyweir

関連する問題