VLOOKUPで別シート・別ファイル(別ブック)の表から値を引く
VLOOKUPの範囲は、同じシートでなくてもかまいません。別のシートなら「シート名!範囲」、別のファイルなら「[ファイル名]シート名!範囲」と書きます。書き方の決まりと、参照先のファイルを閉じたときの動きを、Microsoftのサポート記事(2026年10月17日確認)をもとにまとめました。
公開:2026年10月17日 最終更新:2026年10月17日 執筆:板野 克基(株式会社ブライトアセット) 編集方針
要点
- 別シートの範囲は
シート名!$A:$Dのように、シート名の後に「!」を付けて書きます。 - シート名にスペースが入る、または数字で始まるときは、名前を「'」(半角の単一引用符)で囲みます(Microsoftの説明では「スペースや英字以外の文字」。実際には「商品一覧」のような日本語だけの名前は、Excelが囲まずに扱います)。範囲をマウスで選べば、必要なときだけExcelが自動で付けます。
- 別ファイルは
[ファイル名.xlsx]シート名!範囲。参照先のファイルを閉じると、式は保存場所(パス)入りの書き方に自動で変わります。 - 範囲には$を付けて固定します。付けないと、式を下にコピーしたときに範囲もずれます。
- SUMIF・SUMIFSは閉じたファイルを参照すると#VALUE!、INDIRECTは#REF!になります。別ファイルを使う集計は、ファイルを開いて計算します。
別シートの範囲の書き方
例:「注文」シートのA列に商品コードがあり、「商品一覧」シートのA列〜D列(A列がコード、D列が単価)から単価を引く式です。
=VLOOKUP(A2,商品一覧!$A:$D,4,FALSE)
| 部分 | 意味 |
|---|---|
A2 | 探す値(注文シートの商品コード)。$を付けず、下の行へずらします |
商品一覧! | どのシートの範囲かを示します。シート名の後に「!」 |
$A:$D | 商品一覧シートのA列〜D列。左端(A列)が探す列 |
4 | 範囲の左から4列目(D列)の値を返します |
FALSE | 完全一致で探します |
MicrosoftのVLOOKUP関数のページにも、別シートを範囲にした例として =VLOOKUP(A2,'Client Details'!A:F,3,FALSE) が載っています。
手で打たずに入れる方法
- 注文シートのセルに
=VLOOKUP(A2,まで入力します。 - そのまま画面下の「商品一覧」シートのタブを押し、A列〜D列の見出し(列の記号)をドラッグして選びます。
- 式に
商品一覧!A:Dが入ります。列の記号の前に$を付けて商品一覧!$A:$Dに直します。 - 続けて
,4,FALSE)と入力してEnterを押します。
この方法なら、シート名の書き間違いがなく、「'」が必要な名前ではExcelが付けてくれます。
シート名を「'」で囲む場合
Microsoftの外部参照の説明では、シート名やブック名にスペースや英字以外の文字が含まれる場合は、名前を単一引用符で囲む必要があるとしています。ただし日本語だけの名前(例:商品一覧)は、Excelでは「'」なしで通ります。この記事の例もそのまま使えます。
| シート名 | 範囲の書き方 |
|---|---|
| 4月 売上(スペースあり) | '4月 売上'!$A:$D |
| Client Details | 'Client Details'!$A:$F |
| 2026年10月(数字で始まる) | '2026年10月'!$A:$D |
- 「'」はシート名の前と、「!」の直前に付けます。
'4月 売上!'のように「!」の後ろで閉じるのは間違いです。 - どちらか迷う名前は、上の「手で打たずに入れる方法」で範囲を選ぶのが確実です。
$で範囲を固定する
別シートを参照していても、$の考え方は同じです。商品一覧!A2:D500 のまま式を下にコピーすると、次の行では A3:D501、その次は A4:D502 と範囲が下にずれ、上のほうの商品が範囲から外れます。Microsoftは、絶対参照にすると数式を下方向へコピーしても常に同じ範囲を参照できると説明しています。
| 書き方 | コピーしたとき |
|---|---|
商品一覧!A2:D500 | 範囲が1行ずつずれる(×) |
商品一覧!$A$2:$D$500 | 範囲が固定される(○) |
商品一覧!$A:$D | 列全体を固定。行が増えても範囲に入る(○) |
探す値の A2 には$を付けません。付けると、どの行でも同じ商品コードを探してしまいます。
別ファイル(別ブック)の範囲の書き方
参照先のファイルを開いている間は、ファイル名を角かっこ[ ]で囲み、その後にシート名と「!」を書きます。Microsoftの例では =SUM([Budget.xlsx]Annual!C10:C25) です。VLOOKUPなら次のようになります。
=VLOOKUP(A2,[マスタ.xlsx]一覧!$A:$D,4,FALSE)
ファイル名にスペースや英字以外の文字が入るときは、ファイル名とシート名をまとめて「'」で囲みます。
'[商品 マスタ.xlsx]一覧'!$A:$D
別ファイルも、両方のファイルを開いた状態で、式の途中で相手のファイルに切り替えて範囲を選ぶのがいちばん確実です。
参照先のファイルを閉じたとき
- 式にパスが入る:Microsoftの説明では、参照先のブックを閉じると式にパス全体が入ります。例:
'C:\共有\[マスタ.xlsx]一覧'!$A:$D。自分で書き換える必要はありません。 - 開いたときの警告:ブックへのリンクは安全でない可能性があるため、式のあるファイルを開くとメッセージバーが出ます。「コンテンツの有効化」を押さないと、リンクは更新されず、最後に保存された値のままになります。
- SUMIF・SUMIFS・COUNTIF:Microsoftは、SUMIF・SUMIFSが閉じたブックのセルや範囲を参照すると#VALUE!になると案内しています。直し方は、そのブックを開いてF9キーで再計算することです。
- INDIRECT:シート名をセルの文字から組み立てるINDIRECTは、参照先のブックが開いていないと#REF!を返します。
パスは自分のパソコンや共有フォルダの場所で書かれます。ほかの人が同じ場所にファイルを持っていないと、その人の画面では更新できません。毎回同じマスタを使うなら、マスタを同じファイルの別シートに貼っておくと、リンクの心配がなくなります。
よくあるつまずき
- 「!」の付け忘れ:
商品一覧$A:$Dのように「!」がないと、シートの指定になりません。 - シート名の打ち間違い:シート名の全角・半角や空白の違いで別の名前になります。タブをダブルクリックして名前をコピーするか、範囲をマウスで選びます。
- #N/Aになる:書き方が正しいのに#N/Aなら、原因はデータの側(空白・全角半角・数値と文字列)であることが多いです。確かめ方はVLOOKUPで#N/Aになる原因と直し方にまとめています。
- 別ファイルの値が古い:開いたときに「コンテンツの有効化」を押していないか、参照先のファイルが新しい場所に移っています。
式を作るツールの使い方
VLOOKUP・XLOOKUP式メーカーは、「マスタのシート名」の欄に名前を入れると、シート名と「!」の付いた式を作ります。スペースが入る名前や数字で始まる名前は「'」で囲んで出します(例:「4月 売上」→ '4月 売上'!$A:$C)。範囲には$が付いた状態で出ます。
別ファイルを参照するときは、シート名の欄に [マスタ.xlsx]一覧 のように入れると、全体を「'」で囲んだ '[マスタ.xlsx]一覧'!$A:$C の形で出ます。パスまでは付かないので、参照先のファイルを開いた状態で式を貼ってください。
出典:Microsoft サポート「VLOOKUP 関数」、「ブックへの外部参照 (リンク) を作成する」、「エラー値 #VALUE! SUMIF/SUMIFS 関数のエラー」、「INDIRECT 関数」(いずれも2026年10月17日確認)。
VLOOKUP・XLOOKUPの使い方に迷ったら、Excelの2つの表を見出しごと貼り付けるだけで式(範囲・列番号・検索方法)を自動作成。#N/Aでうまくいかない行は、空白・全角半角・数値と文字列のどれが原因かを1行ずつ表示します。
VLOOKUP・XLOOKUP式メーカーを使う(無料・登録不要)公開中のツール 41本・解説ガイド 33本。入力した数字はブラウザの中だけで計算し、サーバーには送りません。