• 公開日:

ExcelのVLOOKUP関数の列番号(3番目の引数)について

この記事では、ExcelのVLOOKUP関数の列番号(3番目の引数)についてご紹介します。

列番号は抽出したい列を指定するための引数ですが、正しく理解できていないとエラーが表示されたり、誤った結果が表示されることがあります。

以下では、列番号の指定方法や注意点について詳しくご紹介します。

VLOOKUP関数について

列番号(3番目の引数)を説明する前に、VLOOKUP関数の基本的な使い方について簡単にご紹介します。

VLOOKUP関数の使い方

VLOOKUP指定された範囲の左端の列で特定の値を検索して、該当する値がある場合は同じ行から指定した列のデータを取り出します。

例で説明すると、まず検索したいセル参照または文字列(例:A9セル)を指定した範囲(例:A2セルからD6セル)の左端の列(例:氏名)で探します。

該当する値がある場合は、指定した列(例:2列目)の値を同じ行から取り出して、結果(長野県諏訪郡友之町)を返します。

抽出したい値が範囲の左端列から何列目にあるかによって指定する列番号が変わります。

例えば検索値から郵便番号を取得したい場合、郵便番号の列は3列目なので「=VLOOKUP($A9,$A$2:$D$6,3,FALSE」を入力します。

ExcelのVLOOKUP関数の列番号(3番目の引数)について

まず、引数とは関数の処理や計算をするために渡す値であり、必要な「情報」または「材料」のことです。

VLOOKUP関数の「列番号」は必須の引数であり、検索値に一致する値がある場合、範囲内の左端列から何列目のデータを抽出するかを指定します。

以下では、VLOOKUP関数の書式「=VLOOKUP(検索値,範囲,列番号,[検索の型])」の内、第3引数の「列番号」についてご説明します。

列番号(3番目の引数)の注意点

以下では、列番号を指定する際の2つの注意点をご紹介します。

列番号はコピーしても可変しない

数式をコピーした際の列番号

数式をコピーする際は列番号を修正しましょう。

上記の画像のC8セルは、B8セルの数式をコピーしています。

検索値や範囲はセル参照を固定していないとコピーした方向にずれてしまいますが、列番号はコピーしても変わらないので、列番号を手動で修正する必要があります。

上記の画像のC8セルには3列目の「価格」を抽出したいので、数式バーの赤いラインで示した列番号を「3」に修正することで「価格」¥2,000を抽出することができます。

列番号は、範囲の左端から1列目、2列目と数えます。

列を削除すると#REF!エラーになる場合がある

列番号が正しく指定できている状態

上記の画像は、検索値に指定している「商品名」メロンに紐づく7列目の「保存方法」を抽出しています。

範囲に指定している列を削除すると、列番号が範囲のそとになってしまいエラーが返ることがあります。

以下で、実際に試していきます。

列を削除するとエラーが返った

「納品日」と「保存目安」の項目を列ごと削除した場合に、VLOOKUP関数の結果が#REF!エラーが表示されました。

上記のような場合、範囲(例:A2セルからE5セル)は最大が5列ですが、指定している列番号が7列目のままになっているので、#REFエラーが返されています。

数式バーの列番号を「5」に修正することでエラーを解消することができますが、レイアウトなどを変更するとエラーが発生する原因になるのでご注意ください。

列番号(3番目の引数)の指定方法

以下では、列番号を指定する2つの方法をご紹介します。

抽出する列数が多い場合は、関数を組み合わせて自動で取得する方法がおすすめです。

手動で列番号を指定する

列番号を手動で指定する

VLOOKUP関数の列番号を指定する際は、抽出したいデータを含む列が範囲の左端から何列目にあるかを数えて指定します。

例では抽出したい「産地」は3列目にあるので、「3」を入力してカンマで区切ると列番号を指定することができます。

COLUMN関数を使って自動で列番号を指定する

複数列を取り出す

上記の画像のような列数が多い表などから複数列のデータを抽出する際、列番号を手動で修正するのは手間がかかるので、COLUMN関数を組み合わせて自動で列番号を取得すると便利です。

上記の8行目のデータは、A8セルの「商品名」メロンを検索値とするVLOOKUP関数をB8セルに入力して、数式をG8セルまでコピーしています。

COLUMN関数を列番号に指定することで、列番号を修正しなくても自動で可変しているのが分かります。

COLUMN関数を列番号に指定する方法は、以下の記事でご紹介しています。

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