B:B列に次の数式があります
=VLOOKUP(A1;'mySheet'!$A:$B;2;FALSE)
MySheet!B:Bで見つかった値をB:Bに出力します(A:A = mySheet!A:A)。正常に動作します。さて、3列目もお願いします。 C:C列全体に次の数式を追加すると機能します。
=VLOOKUP(A1;'mySheet'!$A:$C;3;FALSE)
ただし、10万行を超える行と約40列を使用しています。 100k * 40 * VLOOKUPを実行したくありません。100kのみを実行し、これにすべての列を掛ける必要はありません。必要なすべての列を取得するために、行ごとに1回だけVLOOKUPを実行する方法(おそらく配列式を使用)はありますか?
データ例
ID|Name
-------
1|AB
2|CB
3|DF
4|EF
ID|Column 1|Column 2
--------------------
1|somedata|whatever1
4|somedate|whatever2
3|somedaty|whatever3
入手したい:
ID|Name|Column 1|Column 2
-------------------------
1|AB |somedata|whatever1
2|CB | |
3|DF |somedaty|whatever2
4|EF |somedate|whatever3
INDEXはVLOOKUPよりも高速に動作します。これを使用することをお勧めします。これにより、多くのvlookupがシステムに与える負担が軽減されます。
まず、MATCHを使用してヘルパー列で必要なものを含む行を見つけます。
=MATCH(A1,'mySheet'!$A:$A,0)
次に、その番号を使用してINDEXを作成します。これをドラッグして、すべての列に次のデータを入力できます。
=INDEX('mySheet'!B:B,$B1)
出力は次のようになります。
ID|Name|Match |Column 1 |Column 2
-------------------------
1|AB |Match1|IndexCol1|IndexCol2
2|CD |Match2|IndexCol1|IndexCol2
3|EF |Match3|IndexCol1|IndexCol2
また!これらの範囲を設定して、列全体を参照するのではなく、実際にデータをカバーすることをお勧めします。
=INDEX('mySheet'!B1:B100000,$B1)
私はあなたの問題についてもっと考えていました、そしてあなたが調べているデータを制御しているなら、あなたが試すことができる別の提案があります。
生データが保持されている 'mysheet'で、各列を1つのセルに連結する新しい列を追加します。データに含まれていないある種の一意の仕切りを使用します。
_=B1&"+"&C1&"+"&D1&"+"&E1 etc...
_
次に、行ごとに、40ではなく1つのVLOOKUPまたはINDEX/MATCHを実行できます。
新しいシートに入れたら、結果を分割して戻すことができます。
数式なしの分割
ルックアップ式の結果をコピーして、次の列にValuesとして貼り付けます。
その列を選択し、リボンのDataタブでText to Columnsを選択します。
Delimitedのままにして、Nextを押します。 Tabのチェックを外し、Otherをチェックし、デリミタ(例では+)を入力します。
完了をクリックします。
数式で分割
=FIND()
を使用して各デリミタを見つけ、=MID()
を使用して、前のデリミタをStart_numとして、デリミタの各セット間のテキストを引き出します。
間違いなく、2つの方法のより複雑な。
私が正しく理解しているなら、まず始めに=VLOOKUP(A1;'mySheet'!$A:LastColumn;COLUMN(B1);FALSE)
を使用することになります。このように、Vlookupを右にドラッグすると、列参照が移動します。
数式なし、出力なし。したがって、1つの列のみに数式を適用して他の列に適用する方法はありません。他の実行可能な方法は、1つのセルにi数式を置き、$記号をインテリジェントに使用し、vlookupを40回置く必要なしにgiffyですべてのセルをドラッグすることです。
Vlookupには入力する4つのコードがあります
1-ルックアップ値。これを使って $A1
(1ではなくAに$を置く)
2-ソースデータ-Put $
サインeverywhere
-列インデックス番号。データ全体のすぐ上の1行目に、空の行を追加します。A1に1、B1に2、C1に3というように値を入力します。今度は数式で、手動で「2」または「3」を入力する代わりに、これらのセルへの参照を指定します。列ではなく数値(B$1
)。
4-タイプfalse
または0
次に、これをどこにでもドラッグします。
false
または0
と入力します