当サイトの記事にはプロモーションが含まれています。

Excelで別シートからデータを取得するVLOOKUP関数の使い方

パソコンパソコン・スマホ教室
スポンサーリンク

Excelで「別のシートにある一覧表から、名前や金額を自動で拾ってきたい」というとき、真っ先に候補になるのがVLOOKUP関数です。ところが実際にやってみると、シート名の付け方ひとつで数式が動かなくなったり、下にコピーした瞬間に途中から結果が消えたりと、初心者がつまずくポイントが集中しています。

このページでは、別シート参照のVLOOKUPを最初から最後まで完成させる手順に加えて、当サイトが実機のExcel 2019で一つひとつ試して確かめた「シート名を変えたらどうなるか」「シートを消したらどうなるか」といった、他ではあまり書かれていない挙動まで踏み込んで解説します。

スポンサーリンク

別シートからVLOOKUPで取得する基本の形

VLOOKUP関数の引数は次の4つです。別シートを参照する場合も、変わるのは2番目の「範囲」の書き方だけです。

=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
  1. 検索値 … 探したいキー(社員番号や商品コードなど)
  2. 範囲 … 探しにいく表。別シートなら シート名!範囲 の形で書く
  3. 列番号 … 範囲の左端を1列目として、取り出したい列が何番目か
  4. 検索の型 … 完全一致で探すときは FALSE(ほぼこれで固定)

たとえば「社員データ」というシートのA2からD6に社員番号・氏名・部署・給与が並んでいて、別シートのA2に入れた社員番号から給与(4列目)を取りたい場合、数式はこうなります。

=VLOOKUP(A2,社員データ!$A$2:$D$6,4,FALSE)

当サイトの実機(Excel 2019)で試したところ、この数式で結果は410000と正しく表示されました。シート名のうしろに感嘆符「!」を付けて範囲をつなぐ、というのが別シート参照の要点です。Microsoft公式でも別シート参照の例として=VLOOKUP(A2,'Client Details'!A:F,3,FALSE)が示されており、書き方の考え方は同じです。

実機のExcelで別シートを参照するVLOOKUP数式と結果410000を表示した画面
実際の画面です。数式バーの 社員データ!$A$2:$D$6 が別シート参照の要点で、結果は410000と正しく取得できました(当サイトが実際にExcelで操作して撮影)。

なお、旧バージョンの解説にありがちな シート名!D100 のように範囲を1セルだけ指定する書き方は誤りです。範囲は必ず「左端列から取り出したい列まで」を含む複数列の範囲で指定してください。左端列に検索値がないと、そもそも探しにいけません。

シート名を後から変えても数式は自動で追従する

初心者からよく出るのが「参照先のシート名をあとで変えたら、数式が壊れてしまうのでは?」という不安です。ここは当サイトが実機で確かめました。

当サイトの実機で、参照先シートの名前を「社員データ」から「従業員リスト」に変更したところ、数式のシート名部分がひとりでに書き換わりました。具体的には次のように変化し、しかも結果の410000はそのまま保たれています。

変更前 =VLOOKUP(A2,社員データ!$A$2:$D$6,4,FALSE)
変更後 =VLOOKUP(A2,従業員リスト!$A$2:$D$6,4,FALSE)

つまりシート名の変更をおそれる必要はありません。これはVLOOKUPに限った話ではなく、別シートを参照するすべての数式に共通するExcelの仕組みです。Excelがシート名とセル参照を内部で結びつけて管理しているため、名前を変えても参照関係はきちんと維持されます。

参照先シートの名前を従業員リストに変えても数式が自動で追従した実機のExcel画面
数式バーを見てください。シート名を変えたのに 「従業員リスト!」に自動で書き換わり、結果410000も保たれています(当サイトが実際に操作して撮影)。

ただしシートを削除すると数式は壊れる

名前の変更は安全でしたが、削除はまったく別の話です。当サイトの実機で参照先シートそのものを削除したところ、数式のシート名部分だけが #REF! に化け、結果も #REF! になりました。

削除後 =VLOOKUP(A2,#REF!$A$2:$D$6,4,FALSE)

範囲の $A$2:$D$6 の部分は残っているのに、参照先のシートが消えたことで居場所を失い、#REF!(参照エラー)に置き換わってしまうわけです。これもVLOOKUP固有ではなく、別シートを参照する数式に共通する挙動です。しかもこれは元に戻せません。「シート名の変更はOK、シートの削除はNG」とセットで覚えておくと、事故を防げます。参照先の表を整理したいときは、削除ではなくデータを別の場所へ移し替えてから数式を作り直すのが安全です。

参照先シートを削除して数式のシート名部分がREFエラーに置き換わった実機のExcel画面
こちらは削除した場合です。シート名の部分が #REF! に化け、結果も #REF! になりました(当サイトが実際に操作して撮影)。

シート名にスペースがあるときはシングルクォートで囲む

「社員 一覧」のようにシート名の途中にスペースが入っていると、そのまま書いた数式はエラーになります。当サイトの実機で、スペースを含む「社員 一覧」をクォートなしで参照すると #NAME? エラーになり、シングルクォートで囲むと正常に320000が表示されました。

エラー =VLOOKUP(1001,社員 一覧!$A$1:$D$5,4,FALSE)
正常 =VLOOKUP(1001,'社員 一覧'!$A$1:$D$5,4,FALSE)

公式の例=VLOOKUP(A2,'Client Details'!A:F,3,FALSE)でもシート名がシングルクォートで囲まれているのは、名前にスペースが含まれているためです。スペースや記号を含むシート名は、必ず「’(シングルクォート)」で挟むと覚えておきましょう。迷ったら常にクォートで囲んでおいても問題ありません。

下にコピーして途中から #N/A になる原因は絶対参照の付け忘れ

1行目は正しく出たのに、数式を下方向へコピーしたら2行目以降が #N/A になった、という相談はとても多いです。原因のほとんどは範囲を絶対参照($付き)にしていないことです。

当サイトの実機で、範囲を相対参照(社員データ!A2:D6)のまま下にコピーしたところ、1行目は410000、2行目でいきなり #N/A、3行目は298000というちぐはぐな結果になりました。これは、コピーで範囲がA3:D7へ、さらにA4:D8へと勝手にずれてしまい、検索したいデータが範囲の外へこぼれてしまうからです。

いっぽう、範囲を $A$2:$D$6 と絶対参照にした列は、下までコピーしても全行が正しく表示されました。Microsoft公式も『絶対参照を使うと、数式を下方向へコピーした場合に常にまったく同じ検索範囲を参照することができます。』と説明しています。

ここがポイント!

  • 範囲を選んだあとに F4キーを押すと、$付きの絶対参照に一発で変えられます
  • 検索値(A2など)は行ごとに変わってほしいので、こちらは$を付けず相対参照のままにします
相対参照と絶対参照を下にコピーして結果を比べた実機のExcel画面
左の相対参照の列は 2行目でいきなり #N/A、右の絶対参照の列は全行正常です(当サイトが実際にExcelで計算して撮影)。

そのほかのよくあるエラーと原因

別シートVLOOKUPでつまずきやすい残りのエラーも、当サイトの実機で再現しました。

ここがポイント!

  • 検索値の型が合わない … 検索値のセルが文字列の「1001」で、参照表の社員IDが数値の1001というように型が食い違うと、見た目が同じでも #N/A になります(当サイトの実機でも、文字列で検索して #N/A になりました)。公式も『range_lookupが FALSE の場合、#N/A エラー値は正確な数値が見つからないことを示します。』としています
  • 列番号が範囲の列数を超える … 範囲が4列なのに列番号に5を指定すると #REF! になります(当サイトの実機でも列番号5で #REF! になりました)。公式ドキュメントでも、列番号(col_index_num)が範囲の列数を超えると #REF! エラーになると説明されています

別のファイル(別ブック)から参照したいとき

ここは正直にお伝えします。別のExcelファイル(別ブック)を参照するパターンは、当サイトでは実機で確認できていません。そのため実際の挙動を体験としては語れません。

公式の考え方としては、別ブック参照でも「ファイル名を含めた場所+シート名+範囲」を指定する点は同じで、書き方が長くなるだけです。ただし参照元ファイルを移動・リネームするとリンクが切れやすく、別シート参照よりトラブルが起きやすくなります。まずは同じブック内の別シート参照で仕組みを固めてから、必要になったときに別ブック参照へ進むのが安全です。当サイトで実機確認ができ次第、この項目は体験ベースで追記します。

公式ドキュメントで裏を取る

VLOOKUPの引数やエラーの意味を正確に確認したいときは、Microsoftの公式ページが一次情報として確実です。下の画像をクリックすると公式のVLOOKUP解説ページが開きます。

マイクロソフト公式のVLOOKUP関数の使用例の解説ページ
出典=Microsoft公式。VLOOKUPの使用例が公式にまとまっています画像をクリックすると公式ページが開きます。
メインシートの社員IDから別シートの給与をVLOOKUPで取り出す仕組みを示した図
別シート参照の全体像です。検索値の1003をたどって、社員データシートの給与410000を取り出しています(当サイトによる図解)。

まとめ

別シートVLOOKUPは シート名!範囲 の形で書くのが基本で、範囲は必ず絶対参照にしてからコピーすれば途中で #N/A になる事故を防げます。そして当サイトの実機検証でわかったとおり、シート名の変更は数式が自動追従して安全、シートの削除は #REF! になって復元不可という違いを押さえておけば、参照先を整理するときにも慌てずにすみます。スペース入りシート名はシングルクォートで囲む、というルールも合わせて覚えておきましょう。

「自分の表だと数式がどうしても #N/A や #REF! になる」「別シート参照が思ったように組めない」——そんなExcelのVLOOKUPのつまずきは、画面を見ながらのほうが一気に解決します。当サイトではLINEやZoomでの個別相談を承っていますので、実際のファイルの状況を教えていただければ、どこで参照がずれているのかを一緒に確認します。

公式LINE(無料相談)

出典・引用サイト

最終確認日:2026年7月15日/文責:uri uri

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました