今回は、ExcelのVLOOKUP関数を使用して、現在開いているシートとは「別のシート」や「別のブック(ファイル)」からデータを検索し、参照する方法について紹介します。
VLOOKUP関数と別シート参照の基本
VLOOKUP関数は、指定した検索値を元に、表の中から該当するデータを引っ張ってくるExcelで最も有名な関数の一つです。
基本的な使い方はマスターしていても、「データ元の表」と「結果を表示させたい表」が同じシート内に存在することは実務では少なく、多くの場合「商品マスタ」や「顧客名簿」といった専用の別シート、あるいは全く別のExcelファイルからデータを参照することになります。
別シートを参照する場合でも、VLOOKUP関数の基本的な構文「=VLOOKUP(検索値, 範囲, 列番号, 検索の型)」自体は変わりません。
変わるのは第2引数の「範囲」の指定方法だけであり、ここさえ押さえれば、シートをまたいだ高度なデータ集約が簡単にできるようになります。
別シートを指定する仕組み
Excelの数式において、同じシート内のセルを参照する場合は「A1:C10」のようにセル番地だけを記述します。
しかし、別のシートにあるセルを参照する場合は、「どのシートの、どのセルか」をExcelに教えるために、セル番地の前に「シート名」と「!(エクスクラメーションマーク
/ 感嘆符)」をつけるルールになっています。
例えば、「商品マスタ」という名前のシートのA1からC10までの範囲を指定したい場合、数式上では「商品マスタ!A1:C10」と表現されます。
このルールを理解していれば手打ちでも数式を作成できますが、実際にはマウス操作を使うことで、Excelがこの記述を自動的に行ってくれるため、構文を丸暗記する必要はありません。
別シートのデータを参照するVLOOKUP関数の作成手順
「見積書」シートで商品コードを入力すると、「商品マスタ」シートから商品名と単価を引っ張ってくる、という具体的なケースを例に手順を解説します。
数式の入力と検索値の指定
まずは、結果を表示させたい「見積書」シートの商品名のセル(例:B2)を選択し、「=VLOOKUP(」と入力します。
次に、検索値となる商品コードが入力されているセル(例:A2)をクリックします。
この時点での数式は「=VLOOKUP(A2,」となります。カンマ(,)を入力して次の引数へ進みます。
マウス操作による別シートの範囲選択
ここが別シート参照の最大のポイントです。
カンマを入力した状態のまま、画面下部のシート見出しタブから「商品マスタ」シートをクリックして開きます。
画面が商品マスタのシートに切り替わったら、検索対象となるデータ範囲(例:商品コードが入力されているA列から、単価が入力されているC列まで)をマウスでドラッグして選択します。
数式バーを見ると、「=VLOOKUP(A2,商品マスタ!A:C」のように、シート名とエクスクラメーションマークが自動的に入力されていることが確認できます。
範囲を選択したら、**元の見積書シートには戻らずに**、そのまま数式バー(またはポップアップしている数式入力欄)をクリックし、続きのカンマ(,)を入力します。
列番号と検索の型の指定から完了まで
カンマに続けて、抽出したいデータが選択範囲の左から何列目にあるかを数値で指定します。商品名がB列(2列目)なら「2」と入力し、カンマ(,)を打ちます。
最後に、検索の型として「完全一致」を意味する「FALSE(または0)」を入力し、カッコ「)」で閉じます。
最終的な数式が「=VLOOKUP(A2,商品マスタ!A:C,2,FALSE)」となったことを確認し、Enterキーを押します。
Enterキーを押すと、画面は自動的に元の「見積書」シートに戻り、商品名が正しく表示されているはずです。
別ブック(別のファイル)を参照する場合
同じファイル内(別シート)だけでなく、ネットワーク上や自分のパソコン内に保存されている「完全に別のExcelファイル(別ブック)」からデータを参照することも可能です。
別ブックを参照する手順
操作の基本は別シートを参照する場合と全く同じです。
あらかじめ、データ元となる別のExcelファイル(例:全社共通マスタ.xlsx)を開いておきます。
見積書のファイルで「=VLOOKUP(A2,」まで入力したら、タスクバーやAlt+Tabキーなどを使って「全社共通マスタ.xlsx」のウィンドウに切り替えます。
そのファイル上のデータ範囲をドラッグして選択し、カンマを打って列番号とFALSEを入力し、Enterキーを押します。
数式は「=VLOOKUP(A2,[全社共通マスタ.xlsx]Sheet1!$A:$C,2,FALSE)」のように、ファイル名が「[](角カッコ)」で囲まれた状態になり、外部ファイルとの強力な連携(リンク)が確立されます。
リンクの更新とファイルの扱いに関する注意点
別ブックを参照しているファイルを開く際、「リンクの自動更新が無効にされました」といったセキュリティ警告のメッセージバーが表示されることがあります。
データ元のファイル(全社共通マスタなど)の内容が更新されている可能性があるため、「コンテンツの有効化」をクリックして最新のデータを読み込む必要があります。
また、参照元のファイルの名前を変更したり、保存場所(フォルダ)を移動したりすると、リンクが切れてVLOOKUP関数が機能しなくなってしまう(エラーになる)点には細心の注意が必要です。
別シート参照を失敗させないためのコツ
別シートや別ブックを参照する際、初心者の方によくある失敗とその回避策を紹介します。
範囲選択中に元のシートに戻らない
最も多い失敗が、第2引数(範囲)を選択するために別シートを開き、範囲をドラッグした直後に「よし、元のシートに戻ろう」とシート見出しをクリックしてしまうことです。
これをやると、数式バーに入力されていた「商品マスタ!」というシート名が「見積書!」に上書きされてしまい、自分自身のシートを参照するエラーになってしまいます。
範囲を選択したら、「元のシートには戻らず、その画面のまま数式バーで続きを入力し、Enterキーで完了させる」という流れを徹底することが成功の秘訣です。
絶対参照($マーク)による範囲の固定
第2引数の範囲を「A2:C100」のように行と列を指定して選択した場合、その数式を下の行にオートフィルでコピーすると、参照範囲も「A3:C101」「A4:C102」とずれていってしまい、データが見つからなくなる原因となります。
これを防ぐため、範囲を選択した直後にキーボードの「F4」キーを押し、「$A$2:$C$100」のように絶対参照にして範囲を固定するクセをつけることが重要です。
なお、「A:C」のように列全体を指定した場合は、行がずれる心配がないため絶対参照にする必要はありません。
まとめ
ExcelのVLOOKUP関数を使って、別シートや別ファイルからデータを検索・参照する方法について解説しました。
数式の作り方自体は通常と同じであり、第2引数の「範囲」を指定する際に、マウスで別シートを開いてドラッグするだけで、Excelが自動的に「シート名!」という記述を作ってくれるのがポイントです。
作業中に元のシートに戻ってしまうと数式が壊れるため、「別シートを開いたまま数式を最後まで打ち切り、Enterキーで戻る」という手順を意識することが最大のコツとなります。
また、オートフィル時のズレを防ぐための絶対参照の活用や、別ブックを参照した際のリンク切れのリスクといった基本知識を押さえておくことで、関数の安定性は格段に向上します。
商品マスタや顧客リストを別シートで一元管理し、VLOOKUP関数で自在にデータを引っ張ってくるスマートなExcel運用を実現してみてはいかがでしょうか。