doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

ExcelでVLOOKUPを使用してテーブルをマージする

スポンサーリンク

VLOOKUPを使用してテーブルをマージする

f:id:doodle-on-web:20190910162015p:plain

関数式

= VLOOKUP( $ A1 、 table 、COLUMN()- x 、0 )

説明

テーブルをマージするには、VLOOKUP関数を使用して、1つのテーブルから別のテーブルにデータを検索および取得できます。この方法でVLOOKUPを使用するには、両方のテーブルが共通のIDまたはキーを共有する必要があります。

この記事では、VLOOKUPと計算列インデックスを使用してテーブルを結合する方法について説明し ます。これは、同じ基本式を使用して複数の列からデータを取得する1つの方法です。

示されている例では、VLOOKUPを使用して、 名前と状態を請求書データテーブルにプルしています。両方に使用されるVLOOKUP式は同じです:

=VLOOKUP($C5,$H$5:$J$8,COLUMN()-3,0)

この式の仕組み

これは、標準の「完全一致」VLOOKUP式です。ただし、1つの例外があります。列インデックスは、COLUMN関数を使用して計算されます。COLUMN関数を引数なしで使用すると、現在の列に対応する数値が返されます。

この場合、列Eはワークシートの5番目の列であるため、列Eの数式の最初のインスタンスは5を返します。実際には、顧客テーブルの5列目からデータを取得する必要はありません(合計3列のみです)。顧客データからNameを取得するために使用される2を取得するには、5から3を引く必要があります。

COLUMN()- 3  =  2  //列E

数式が列Fにコピーされると、同じ数式は数3になります。

COLUMN()- 3  =  3  //列F

その結果、最初のインスタンスは顧客テーブル(列2)から名前を取得し、2番目のインスタンスは顧客テーブル(列3)から状態を取得します。

この同じアプローチを使用して1つのVLOOKUP式を記述し、それを多くの列にコピーして別のテーブルの連続した列から値を取得できます。

双方向マッチ

VLOOKUPの列インデックスを計算する別の方法は、MATCH関数を使用して双方向のVLOOKUPを実行することです。このアプローチでは、MATCH関数を使用して、2番目のテーブルの特定の列に必要な列インデックスを計算します。