• 公開日:

ExcelのVLOOKUP関数の列番号をCOLUMN関数で自動にする

この記事では、ExcelのVLOOKUP関数の列番号をCOLUMN関数で自動にする方法をご紹介します。

VLOOKUP関数で複数列のデータを抽出したい場合、列番号を手動で修正必要があります。また、列を削除するとエラーが表示されるので修正する手間がかかってしまいます。

以下では、COLUMN関数を使って列番号を自動にして、列を削除してもエラーが発生しない方法をご紹介します。

ExcelのVLOOKUP関数の列番号をCOLUMN関数で自動にする方法

以下では、VLOOKUP関数にCOLUMN関数を組み合わせて列番号を自動にする数式をご紹介します。

VLOOKUP関数の範囲がA列から始まる場合に列番号を自動にする方法

以下では、VLOOKUP関数の引数に指定する範囲がシートのA列から始まる場合に、COLUMN関数で列番号を自動で可変させる方法をご紹介します。

検索値を入力する

上記の画像のようなデータを用意します。この際、VLOOKUP関数の引数に指定するデータを探す範囲が必ずA列になるようにしてください。

F3セルからF5セルに検索値を入力します。

関数を入力する

G3セルに「=VLOOKUP($F3,$A:$D,COLUMN(B$2),FALSE)」を入力して、Enterを押します。

VLOOKUP関数の引数の列番号には、COLUMN関数で取得した列番号を指定します。

COLUMN関数は、引数に指定したセルの列番号がA列から数えて何列目であるかを求めます。書式は「=COLUMN([参照])」です。例えば「=COLUMN(D1)」であれば、D列はA列から数えて5番目なので戻り値は5になります。

横方向にオートフィルする

G3セルに「礼服」が表示されました。

G3セルのフィルハンドルをドラッグして数式をコピーします。

縦方向にオートフィルする

H3セルとI3セルにG3セルの数式がコピーされました。

G3セルからI3セルを選択して、フィルハンドルをドラッグして数式をコピーします。

すべての結果が表示された

すべての結果が表示されました。

COLUMN関数を使って列番号を自動で可変させることができました。

VLOOKUP関数の範囲がB列以降にある場合に列番号を自動にする方法

範囲がA列にない場合にエラーになる

上記の画像は、I3セルの数式をコピーしたところ、J3セルからK5セルにエラーが表示されてしまいました。

#REF!エラーは、数式に指定した参照が無効になっている場合に表示されます。主に範囲内のセルなどを削除したり、データが範囲から漏れた場合に表示されます。

COLUMN関数はA列から数えた列番号を返すため、J列(5列目)とK列(6列目)は範囲から漏れていると判断されてしまいました。

以下では、VLOOKUP関数の引数に指定する範囲がB列以降にある場合に列番号を自動で可変させる方法をご紹介します。

関数を入力する

I3セルに=VLOOKUP($H3,$C:$F,COLUMN(D$2)-COLUMN($B$2),FALSE)」を入力してEnterを押します。

1つ目のCOLUMN関数は列番号が可変するので2行目を固定します。2つ目のCOLUMN関数は可変しないのでセル番地を固定します。

VLOOKUP関数のデータ範囲がB列以降にある場合、抽出したい列(例:D2)から範囲の左隣のセル(例:B2セル)を引くと、抽出したい列番号を取得することができます。

抽出したい項目(例:お預かり品)は表の左端から数えると2列目ですが、A列から数えると4列目です。

つまり、「4列目(D2セル)-2列目(B2セル)=2列目」となり、VLOOKUP関数の列番号で「2」が指定されます。

横方向にオートフィルする

I2セルに「礼服」が表示されました。

I2セルのフィルハンドルをドラッグして数式をコピーします。

縦方向にオートフィルする

J3セルとK3セルにI3セルの数式がコピーされました。

I3セルからK3セルを選択して、フィルハンドルをドラッグして数式をコピーします。

すべての結果が表示された

すべての結果が表示されました。

COLUMN関数の使い方を工夫することで列番号を自動で可変させることができました。

VLOOKUP関数では、列を挿入したり削除したりするとエラーが表示されることがありますが、COLUMN関数で列番号を指定している場合は、自動で列が可変するのでエラーを回避することができます。

以下では、実際に列の挿入や削除を試した結果を表示します。

列の挿入や削除をした場合

COLUMN関数で列番号を取得している場合は自動でセル参照が可変するため、正しい結果が取得できました。