• 公開日:

ExcelのVLOOKUP関数の範囲(2番目の引数)について

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

範囲を指定する際は、検索列の位置や数式のコピーなどに注意が必要です。範囲指定が正しくできていないと#N/Aエラーが返される原因にもなります。

以下では、VLOOKUP関数の範囲指定の方法や注意点をご説明します。

VLOOKUP関数について

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

VLOOKUP関数の基本的な使い方

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

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

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

VLOOKUP関数の間違えやすいところは検索列の位置です。検索値に指定した値をすべての範囲で検索するのではなく、範囲の「左端列」のみを検索して検索値に紐づく値を範囲内から取り出します。

ExcelのVLOOKUP関数の範囲(2番目の引数)について

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

VLOOKUP関数の「範囲」は必須の引数であり、データを検索する列と抽出したい列を含むセル範囲のことで、指定した範囲内のデータを検索することができます。

VLOOKUP関数の範囲選択をすると、必然的に左端列が検索値を探すための検索列になります。

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

範囲(2番目の引数)の注意点

範囲指定をする際の注意点を3つご紹介します。

検索列から抽出列までをすべて選択する

正しい範囲選択

検索列(左端列)から抽出列までがすべて選択されていることを確認しましょう。

上記の画像で説明すると、「商品名」を検索値として「価格」を抽出したい場合は、検索列(例:A2セルからA5セル)から抽出列(例:C2セルからC5セル)を含むすべての範囲を選択する必要があります。

範囲指定をすると、必然的に左端列のA2セルからA5セルが検索列になります。

誤った範囲選択

また、上記のように検索列と抽出列をそれぞれ選択することはできません。

指定した「C2:C5」は列番号扱いになるため、#REF!エラーが返されます。

数式をコピーする際に範囲がずれる

VLOOKUP関数で複数のデータを取り出す際、多くの場合は数式をコピーして使用します。

以下で、セル参照を固定していない場合に範囲がどのようにずれるのかを確認していきます。

数式を下にコピーすると下にずれる

上記の画像は、B9セルの数式をB10セルにコピーした際の範囲です。

下に1セル分ずれると範囲も下に1セルずれて、2行目が範囲から漏れていることが分かります。

数式を横にコピーすると横にずれる

上記の画像は、B9セルの数式をC9セルにコピーした際の範囲です。

右に1セル分ずれると範囲も右に1セルずれて、1列目が範囲から漏れていることが分かります。

数式を斜めにコピーすると斜めにずれる

上記の画像は、B9セルの数式をC10セルにコピーした際の範囲です。

斜めに1セル分ずれると範囲も斜めに1セルずれて、1列目が範囲から漏れていることが分かります。

数式をコピーする際は、範囲を固定していないと参照範囲がずれて正しい結果を取得できないことがあるので、適切な箇所に$を付けて範囲がずれないようにしましょう。

範囲を固定する方法は、以下の記事「ExcelのVLOOKUP関数で絶対参照を使って範囲を固定する方法」セクションでご紹介しています。

$で行列やセル番地を固定する「絶対参照」について詳しく知りたい場合は、同記事「絶対参照とは?」も合わせて参考にしてください。

ExcelのVLOOKUP関数で絶対参照を使って範囲を固定する

データが重くなる

データが重くなる例

上記の画像のように列数や行数が多い表などを扱っている場合、範囲に含まれるデータ数に比例して計算時間がかかり、ファイル自体も重くなってしまいます。

ファイルを軽くした場合は、検索方法を「TRUE」にすると計算速度が速くなります。ただし、「TRUE」を指定した場合は近似値検索となるので注意が必要です。

近似値検索の計算方法(二分探索アルゴリズム)や「TRUE」を指定する際の注意点は、以下の記事でご紹介しています。

ExcelのVLOOKUP関数で昇順に並び替える必要がある場合

範囲(2番目の引数)の指定方法

範囲を指定する3つの方法をご紹介します。

範囲を指定する際、基本的に見出し行を選択する必要はありません。

セル番地を指定する

セルを範囲に指定する

範囲に指定するデータ数が決まっている場合は、セル番地を指定しましょう。

上記の画像のように、範囲に指定したいセルを左上端(例:A2セル)から右下端(例:C5セル)までドラッグすると範囲を指定することができます。

最低限の範囲を選択することでデータが重くならない一方で、データが追加された場合に範囲を修正する必要があるので、注意が必要です。

列全体を指定する

列を範囲に指定する

データを追加する可能性がある場合は、列全体を指定しましょう。

上記の画像のように、検索列(例:A列)の列番号から抽出列(例:C列)を含む列番号までドラッグすると列全体を範囲に指定することができます。

データを頻繁に追加する場合は、列全体を指定しておくと範囲を修正する必要がないので、データが範囲から漏れてしまうなどのミスを減らすことができます。

別シートを指定する

別シートを参照する例

上記の画像の「価格検索」シートと「商品一覧」シートのように、商品コードに紐づくデータが記載されたマスタシートが、データを検索するシートとは別に保存されていることがあります。

マスタシートから必要な情報だけを別シートに抽出したい場合、セルを選択する前に参照したいシート名を入力(例:商品一覧!A2:D5)すると、別シートの範囲を参照することができます。

ただし、別シートを参照する際は操作が増えるため、手順をひとつずつ確認しながら行いましょう。

別シートを参照する方法は、以下の記事「ExcelのVLOOKUP関数で別シートの範囲を参照する方法」セクションでご紹介しています。

ExcelのVLOOKUP関数で別シートの範囲を参照する使い方