【エクセル】VLOOKUP関数の「列番号」を自動で変更する方法。列番号をずらすテク

エクセルのVLOOKUP関数の列番号を自動で変更する方法

Excel(エクセル)のVLOOKUP関数(ブイルックアップ)は表を縦方向検索して、検索値を抽出する大変便利な関数です。

しかし、VLOOKUP関数を複数のセルで利用する際、引数「列番号」をいちいち切り替えて変更するのは面倒です。

そんな時、「列番号」の変更を自動で切り替える2つの方法あります。

COLUMN関数と一緒に使う方法と、MATCH関数と一緒に使う方法になりますので、関数の使い方も合わせてご紹介します。

VLOOKUP関数の使い方をまだ理解出来ていない方はこちらの記事から確認してね!

VLOOKUP関数の「列番号」を自動で切り替える方法

  • VLOOKUP関数とCOLUMN関数を組み合わせる
  • VLOOKUP関数とMATCH関数を組み合わせる

列番号を変える手間とは

まず、「VLOOKUP関数の列番号を変える手間」とはどういうことか下の表を使って紹介します。

下の表(B3:E15)から、商品番号「25」の商品カテゴリを抽出するために、H4セルに以下のVLOOKUP関数を挿入します。

=VLOOKUP($G$4,$B$4:$E$15,2,FALSE)

VLOOKUP関数を使うためには列番号の入力が必要
VLOOKUP関数を使うためには列番号の入力が必要

この時、3つ目の引数「列番号」は、表の左から2行目にあるので「2」を指定します。

次に、表内から商品番号「25」の商品名を抽出するために、I4セルにVLOOKUP関数を挿入するために、H4セルのVLOOKUP関数をコピーします。

そうすると、関数は以下のとおりとなり、3つ目の引数「列番号」は「2」のままです。

=VLOOKUP($G$4,$B$4:$E$15,2,FALSE)

VLOOKUP関数を他のセルにコピーしても列番号は変わらない
VLOOKUP関数を他のセルにコピーしても列番号は変わらない

そのため、手動でVLOOKUP関数の列番号「2」を「3」に変更する必要があります。

VLOOKUP関数の列番号を手動で変更
VLOOKUP関数の列番号を手動で変更

列番号を変更すると、商品番号「25」の商品名を正しく抽出することが出来ました。

VLOOKUP関数の列番号を修正した後の結果
VLOOKUP関数の列番号を修正した後の結果

このように表内から複数の値を抽出するためにVLOOKUP関数を複数のセルに利用する場合は列番号の修正に時間がかかります。

以降の見出しで列番号の修正を自動で可変する方法を紹介します。

COLUMN関数の使い方

COLUMN関数を使うことでVLOOKUP関数の列番号を自動で入力することが可能ですが、まずはCOLUMN関数について紹介します。

COLUMN関数は、指定したセルの列番号を表示することが出来ます。

COLUMN(セル番号)  

例えば「=COLUMN(B2)」とすると、B2セルは2列目にありますので、COLUMN関数の値は「」となります。

非常にシンプルな関数ですよね。

COLUMN関数は列番号を返す
COLUMN関数は列番号を返す

また、セル番号を指定せずにCOLUMN関数を使うと、関数を挿入したセルの列番号が返されます。

COLUMN関数にセル番号を指定せずに利用すると、関数を挿入したセルの列番号が表示
COLUMN関数にセル番号を指定せずに利用

感のいい人は、VLOOKUP関数にどうやってCOLUMN関数を利用するかイメージ出来た人もいるかもしれませんね。

次の見出しで組み合わせの方法をご紹介します。

VLOOKUP関数とCOLUMN関数で列番号を自動で変更する方法

それでは、上の図の赤枠のセルに、VLOOKUP関数とCOLUMN関数を用いて、検索範囲から商品番号「25」の「商品カテゴリ」「商品名」「値段」を表示する方法をご紹介します。

VLOOKUP関数とCOLUMN関数を組み合わて列番号を入力しないためには?
VLOOKUP関数とCOLUMN関数を組み合わて列番号を入力しないためには?

手順1.VLOOKUP関数の第1、第2引数を指定

「商品カテゴリ」を表示したいH4セルに、VLOOKUP関数を挿入し、1つ目の引数「検索値」と2つ目の引数「検索範囲」を指定します。

引数は、右のセルにコピー出来るよう絶対参照($)で固定しておきましょう。

=VLOOKUP($G$4,$B$4:$E$15

VLOOKUP関数とCOLUMN関数を組み合わせ(手順①)
VLOOKUP関数とCOLUMN関数を組み合わせ(手順①)

手順2.VLOOKUP関数の第3引数にCOLUMN関数を挿入

次に、3つ目の引数「列番号」にCOLUMN関数を挿入します。

「商品カテゴリ」列は検索範囲の左から2列目にありますので、引数「2」と入力したいところですが、COLUMN関数の結果を「2」で表示させるために、COLUMN(B3)と入力します。

セルをB3で指定していますが、B1でもB2でもB4でもB列であればどのセルでもOKです。

=VLOOKUP($G$4,$B$4:$E$15,COLUMN(B3),

VLOOKUP関数とCOLUMN関数を組み合わせ(手順➁)
VLOOKUP関数とCOLUMN関数を組み合わせ(手順➁)

手順3.VLOOKUP関数の第4引数を指定

最後の4つ目の引数「検索方法」に「FALSE」を挿入して、「Enter」キーで数式を完成させると、商品番号「25」の「商品カテゴリ」の「薬」が表示されます。

=VLOOKUP($G$4,$B$4:$E$15,COLUMN(B3),FALSE)

VLOOKUP関数とCOLUMN関数を組み合わせ(手順③)
VLOOKUP関数とCOLUMN関数を組み合わせ(手順③)

手順4.VLOOKUP関数を隣のセルにコピペ

手順3で完成したVLOOKUP関数を右のセルにコピペします。

列番号を変更しなくてもVLOOKUP関数の結果は正しく表示されます。

VLOOKUP関数の列番号を変更せず関数をコピペ可能
VLOOKUP関数の列番号を変更せず関数をコピペ可能

ただし、この方法は、検索範囲の項目の並び順とVLOOKUP関数を挿入するセルの項目の並び順が同じことが利用出来る条件となります。

VLOOKUP関数とMATCH関数で列番号を自動で変更する方法

MATCH関数を使うことでもVLOOKUP関数の列番号を自動で入力することが可能です。

下の図の赤枠のセルに、VLOOKUP関数とMATCH関数を用いて、検索範囲から商品番号「25」の「商品カテゴリ」「商品名」「値段」を表示する方法をご紹介します。

VLOOKUP関数の列番号にMATCH関数を挿入して列番号を自動化
VLOOKUP関数の列番号にMATCH関数を挿入して列番号を自動化

MATCH関数は、セルの相対的な位置を数値で表示してくれる関数です。MATCH関数の詳しい使い方は下のリンク記事を参照してください。

それでは、VLOOKUP関数にMATCH関数を組み合わせる手順を紹介していきます。

まず、「商品カテゴリ」を表示したいH4セルに、VLOOKUP関数を挿入し、引数の”検索値””検索範囲”を指定します。

引数は、右のセルにコピー出来るよう絶対参照($)で固定しておきましょう。

=VLOOKUP($G$4,$B$4:$E$15

VLOOKUP関数とMACH関数を組み合わせ(手順①)
VLOOKUP関数とMACH関数を組み合わせ(手順①)

次に、3つ目の引数「列番号」に以下のMATCH関数を挿入します。

=VLOOKUP($G$4,$B$4:$E$15,MATCH(C3,$B$3:$E$3,0)

関数が長くなり一見複雑に思えるかもしれませんが、MATCH関数の結果が「2」になるのはお分かりになりますか?

MATCH関数の検索範囲を表の項目行を指定し、検索値を検索したい項目名を指定しています。

VLOOKUP関数とMACH関数を組み合わせ(手順➁)
VLOOKUP関数とMACH関数を組み合わせ(手順➁)

最後の4つ目の引数「検索方法」に「FALSE」を挿入して、「Enter」キーで数式を完成させると、商品番号「25」の「商品カテゴリ」の「薬」が表示されます。

=VLOOKUP($G$4,$B$4:$E$15,MATCH(H3,$B$3:$E$3,0),FALSE)

VLOOKUP関数とMACH関数を組み合わせ(手順③)
VLOOKUP関数とMACH関数を組み合わせ(手順③)

完成したVLOOKUP関数を右のセルにもコピペします。

そうすると、列番号を変更しなくてもVLOOKUP関数の結果は正しく表示されます。

VLOOKUP関数の列番号にMACH関数を挿入すると、コピーした際に列番号の変更は不要
VLOOKUP関数をコピーした際に列番号の変更は不要

(おまけ)HLOOKUP関数の行番号も自動化

VLOOKUP関数の兄弟関数ともいえるHLOOKUP関数は、表を横方向に検索し、検索値を抽出する関数です。

この関数の3つ目の引数『行番号』も、VLOOKUP関数と同様に自動で変更が可能です。

=HLOOKUP(検索値,検索範囲,行番号,[検索方法])

以下の記事で詳しく紹介していますので、興味のある方は参考にしてみてください。

(おまけ)表からクロス抽出するテクニック

表から縦方向に検索し抽出するVLOOKUP関数と、横方向に検索するHLOOKUP関数はExcel(エクセル)の定番関数です。

表を縦方向(列)と横方向(行)に検索する機能をそれぞれ持っていますが、特定の行と列がクロスするセルの値を自動で取り出す関数の使い方も存在しています。

表から列項目と行項目のクロスする情報を抽出する方法
表から列項目と行項目のクロスする情報を抽出する方法

以下の記事で詳しく紹介していますので、興味のある方は参考にしてみてください。