VLOOKUPで別シートを参照する方法!数式の書き方とエラー対策を初心者向けに解説

アフィリエイト広告を利用しています。
Excelで作業をしていて、「別のシートにある商品名や価格を自動で取得したいけれど、数式の書き方がわからない」と悩んでいませんか。
VLOOKUP関数を使えば、別シートに保存されているデータを検索し、必要な情報を自動で表示できます。
商品コードから商品名を取得したり、社員番号から部署名を表示したりする作業にも便利です。
基本のポイントは、検索値・参照範囲・列番号・検索方法を正しく指定することです。
この記事では、VLOOKUPで別シートを参照する数式の書き方から、シート名の指定方法、数式をコピーする方法、エラーが出たときの対処法まで、初心者向けにわかりやすく解説します。
この記事でわかること
- VLOOKUPで別シートを参照する基本の数式
- シート名に日本語やスペースがある場合の書き方
- 数式をコピーしても参照範囲がずれない方法
- #N/Aや#REF!などのエラーの原因と対処法
- 別ブックの参照やXLOOKUPとの違い
VLOOKUPで別シートを参照する方法【基本の数式】
別シートのデータを取得するには、VLOOKUP関数の参照範囲に、シート名とセル範囲を指定します。
まずは、基本の構文と具体的な使用例を確認しましょう。
VLOOKUP関数の基本構文を確認する
VLOOKUP関数は、指定した範囲の一番左の列から検索値を探し、同じ行にある指定列のデータを取得する関数です。
基本の構文は次のとおりです。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
それぞれの引数には、次の役割があります。
| 引数 | 意味 | 指定例 |
|---|---|---|
| 検索値 | 検索したいデータ | A2 |
| 範囲 | 検索する表の範囲 | Sheet2!A:B |
| 列番号 | 取得したいデータの列番号 | 2 |
| 検索方法 | 完全一致または近似一致 | FALSE |
初心者が商品コードや社員番号などから特定のデータを取得する場合は、基本的に検索方法にFALSEを指定して完全一致で検索します。
検索方法を省略すると近似一致として扱われるため、意図しない値が返る可能性があります。
別シートを参照する数式の具体例
例えば、Sheet1に商品コードを入力し、Sheet2に保存されている商品一覧から商品名を取得するとします。
Sheet2には、次のような商品一覧があると仮定します。
Sheet2:商品一覧
| A列:商品コード | B列:商品名 |
|---|---|
| P001 | ノート |
| P002 | ボールペン |
| P003 | ファイル |
Sheet1のA2セルに「P002」と入力し、B2セルに商品名を表示させる場合は、次の数式を入力します。
=VLOOKUP(A2,Sheet2!A:B,2,FALSE)
この数式を入力すると、Sheet2のA列から「P002」を検索し、同じ行のB列にある「ボールペン」を返します。
数式の入力手順
- 商品名を表示したいセル(Sheet1のB2)を選択します。
=VLOOKUP(と入力します。- 検索値として
A2を指定します。 - カンマの後に
Sheet2!A:Bと入力します。 - 取得する列番号として
2を指定します。 - 検索方法に
FALSEを指定して、最後にカッコを閉じます。 - Enterキーを押して結果を確認します。
Excelでは、数式を入力しながら参照先のシートをクリックしてセル範囲を選択する方法も使えます。
数式の各部分が何を意味するのか
先ほどの数式を分解すると、次のようになります。
=VLOOKUP(A2,Sheet2!A:B,2,FALSE)
| 数式の部分 | 意味 |
|---|---|
A2 |
検索する商品コードが入力されたセル |
Sheet2!A:B |
Sheet2のA列からB列までを検索範囲にする |
2 |
指定範囲の左端から2列目の値を取得する |
FALSE |
検索値と完全に一致するデータを探す |
ここで重要なのは、列番号の「2」はワークシート全体の列番号ではなく、指定した範囲の左端から数えた番号だという点です。
例えば、参照範囲がB:Dの場合、B列が1、C列が2、D列が3になります。
また、VLOOKUP関数は指定範囲の一番左の列で検索するため、検索値が範囲の左端列に存在している必要があります。
VLOOKUPで別シートを指定するときの書き方
別シートを参照するときは、シート名とセル範囲の間に「!」を付けます。
シート名にスペースなどが含まれる場合や、数式をコピーして使う場合には、追加の注意点もあります。
シート名を指定して参照する方法
別シートを参照するときの基本形は、次のとおりです。
シート名!セル範囲
例えば、シート名が「Sheet2」で、A列からB列を参照する場合は、次のように指定します。
Sheet2!A:B
この指定をVLOOKUP関数に組み込むと、次の数式になります。
=VLOOKUP(A2,Sheet2!A:B,2,FALSE)
シート名が「商品一覧」であれば、次のように書けます。
=VLOOKUP(A2,商品一覧!A:B,2,FALSE)
実際のシート名に置き換えるだけで、別シートのデータを参照できます。
シート名に日本語やスペースがある場合
シート名にスペースや一部の特殊文字が含まれている場合は、シート名を半角のシングルクォーテーション(')で囲む書き方を使います。
例えば、シート名が「商品 一覧」の場合は、次のように記述します。
=VLOOKUP(A2,'商品 一覧'!A:B,2,FALSE)
シート名が「2026年度 商品一覧」の場合も、同じように指定できます。
=VLOOKUP(A2,'2026年度 商品一覧'!A:B,2,FALSE)
日本語のシート名でも、必ずシングルクォーテーションが必要というわけではありません。
スペースや特殊文字を含むシート名では、シングルクォーテーションで囲む方法を使うと確実です。
別シートの参照範囲を固定してコピーする方法
VLOOKUP関数を下の行へコピーするときは、検索値と参照範囲の動きを区別する必要があります。
例えば、次の数式をB2セルに入力したとします。
=VLOOKUP(A2,商品一覧!A2:B100,2,FALSE)
この数式を下の行にコピーすると、相対参照である検索値だけでなく、参照範囲もずれていく可能性があります。
参照範囲を固定するには、セル番地に$を付けて絶対参照にします。
=VLOOKUP(A2,商品一覧!$A$2:$B$100,2,FALSE)
この数式なら、下の行にコピーしても参照範囲はA2のままです。一方、検索値のA2はA3、A4と変化します。
| 指定方法 | 数式を下にコピーした場合 |
|---|---|
A2:B100 |
参照範囲がずれる |
$A$2:$B$100 |
参照範囲を固定できる |
$A2:$B100 |
列は固定されるが、行はずれる |
参照範囲を固定する必要がある場合は、列と行の両方に$を付けると便利です。
なお、参照先のデータが100行を超えて増える可能性がある場合は、範囲を広げるか、データの追加に対応できるように参照範囲を設計しておきましょう。
別シートの列全体を参照する方法
商品一覧のデータが増えることを想定して、列全体を参照範囲に指定する方法もあります。
=VLOOKUP(A2,商品一覧!A:B,2,FALSE)
この数式は、商品一覧シートのA列を検索し、同じ行のB列の値を取得します。
列全体を参照すれば、A2のように行数を固定した場合と異なり、対象列に追加されたデータも検索範囲に含まれます。
ただし、データ量やブックの構成によっては計算負荷が大きくなることもあるため、必要に応じて適切な範囲やテーブル機能を使い分けましょう。
VLOOKUPで別シートを参照できない原因と対処法
VLOOKUP関数でエラーが表示された場合は、エラーの種類に応じて原因を確認しましょう。
代表的なエラーと対処法を一覧にまとめました。
| エラー・症状 | 主な原因 | 対処法 |
|---|---|---|
#N/A |
検索値が見つからない | 検索値と参照先のデータを確認する |
#REF! |
参照先が無効、列番号が範囲外 | 参照範囲と列番号を確認する |
| 想定外の値が返る | 近似一致が使われている | FALSEを指定する |
| 数式が正しく計算されない | シート名や数式の記述ミス | シート名、記号、引数を確認する |
#N/Aが表示される場合
#N/Aは、完全一致で検索したときに、検索値に一致するデータが見つからない場合などに表示されます。
例えば、次の数式で商品コード「P005」を検索しても、参照先の表にP005が存在しなければ、#N/Aになります。
=VLOOKUP(A2,商品一覧!A:B,2,FALSE)
次の項目を確認してみましょう。
- 検索したい値が参照先の表に存在するか
- 検索値が数値、参照先が文字列など、データの種類が異なっていないか
- 文字列の前後に余分なスペースが入っていないか
- 数字やアルファベットの入力に誤りがないか
見た目が同じでも、数値と文字列の違いや余分な空白によって一致しない場合があります。
エラー表示を別の文字に置き換えたい場合は、IFERROR関数を組み合わせる方法もあります。
=IFERROR(VLOOKUP(A2,商品一覧!A:B,2,FALSE),"該当なし")
この数式では、VLOOKUPの結果がエラーになった場合に「該当なし」と表示します。
ただし、数式の誤りまで隠れてしまう可能性があるため、まずはエラーの原因を確認することが大切です。
#REF!が表示される場合
#REF!は、数式内の参照が無効になっている場合などに表示されます。
VLOOKUP関数では、指定した列番号が参照範囲の列数を超えている場合も原因になります。
例えば、参照範囲をA列とB列の2列に指定しているのに、列番号を3にするとエラーになります。
誤った数式:
=VLOOKUP(A2,商品一覧!A:B,3,FALSE)
修正した数式:
=VLOOKUP(A2,商品一覧!A:B,2,FALSE)
この場合は、列番号を2に修正すれば、範囲の2列目であるB列の商品名を取得できます。
参照先のシートやセル範囲を削除・変更した場合にも参照が無効になることがあるため、数式の参照先を確認してください。
数式が正しいのにデータが表示されない場合
数式を入力しても期待した結果にならない場合は、次の項目を順番に確認しましょう。
- シート名が実際の名前と一致しているか
- シート名とセル範囲の間に
!があるか - セル範囲の左端列に検索値があるか
- 列番号が正しいか
- 完全一致で検索する場合に
FALSEを指定しているか - 検索値と参照先のデータ形式が一致しているか
特に注意したいのは、VLOOKUP関数が検索範囲の左端列でしか検索できない点です。
検索値より左側にあるデータを取得したい場合は、VLOOKUP以外の関数も検討しましょう。
VLOOKUPで別シートを参照するときによくある質問
別のExcelファイルにあるシートも参照できますか?
はい、別のExcelファイル(別ブック)にあるシートも参照できます。
別ブックを参照する場合は、ファイル名やシート名、セル範囲などを数式で指定します。
ファイルの保存場所や名前を変更すると、参照先の更新が必要になることもあります。
複数のブックを使う場合は、参照先のファイルを整理し、リンクが正しく維持されているか確認しましょう。
VLOOKUPで検索値より左側の列のデータを取得できますか?
通常のVLOOKUP関数では、指定した範囲の左端列で検索し、その列より右側のデータを取得します。
検索値より左側にあるデータを取得することは、VLOOKUP単体ではできません。
その場合は、XLOOKUP関数やINDEX関数とMATCH関数の組み合わせを検討しましょう。
XLOOKUP関数は検索範囲と戻り範囲を別々に指定できるため、検索値の左右に関係なく値を取得できます。
別シートのデータが増えた場合も自動で反映されますか?
参照範囲を商品一覧!A:Bのように列全体で指定している場合は、同じ列に追加されたデータも検索範囲に含まれます。
一方、商品一覧!$A$2:$B$100のように行数を固定している場合、101行目以降に追加されたデータは範囲に含まれません。
データが頻繁に増える場合は、列全体の参照やExcelのテーブル機能を検討しましょう。
テーブルを使う場合も、参照範囲が意図どおりに設定されていることを確認してください。
VLOOKUPとXLOOKUPはどちらを使うべきですか?
使用しているExcelのバージョンと、検索したいデータの配置によって使い分けるのがおすすめです。
| 比較項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 検索方法 | 検索範囲の左端列から検索 | 検索範囲を個別に指定 |
| 取得できる方向 | 基本的に右側 | 左右どちらも可能 |
| 完全一致 | FALSEを指定する |
既定で完全一致 |
| 古いExcelとの互換性 | Excel 2016・2019でも利用可能 | Excel 2016・2019では利用不可 |
新しいExcelを使っている場合は、XLOOKUP関数も便利です。
ただし、古いバージョンのExcelを使う人とファイルを共有する場合は、互換性に注意してください。
まとめ|VLOOKUPの別シート参照は「シート名!範囲」がポイント
VLOOKUP関数を使えば、別シートにある商品名や価格、社員情報などを自動で取得できます。
基本となる数式は次のとおりです。
=VLOOKUP(A2,Sheet2!A:B,2,FALSE)
別シートを参照する際は、シート名の後ろに!を付けてセル範囲を指定します。
シート名にスペースなどが含まれる場合は、シングルクォーテーションで囲むと確実です。
数式をコピーするときは、$を付けて参照範囲を固定すると、範囲がずれるのを防げます。
エラーが出た場合は、検索値の有無、データ形式、参照範囲、列番号を順番に確認しましょう。
まずは簡単な商品一覧などで数式を試し、別シートのデータを取得する方法を身につけてみてください。
※本記事の数式は、一般的なExcelの使用例をもとにしています。Excelのバージョンやデータの構成によって操作画面などが異なる場合があります。