VLOOKUP関数で別シートを参照してデータを抽出する方法
ここでは、「VLOOKUP関数で別シートを参照してデータを抽出する方法」を解説します。
別シート参照時のポイントや数式の作り方とともに、条件に応じて参照するシートを変える方法も説明します。
なお、VLOOKUP関数で別ファイルを参照する方法は、以下のページに引っ越しました。
1.まずはやりたいことを確認
まずはやりたいことを、例を含めて確認します。
1-1.VLOOKUP関数で別シートからデータを抽出したい
まず、やりたいことは「VLOOKUP関数で別シートを参照しデータを抽出する」です。
「VLOOKUP関数の数式を入れたシート」とは別のシートから、検索値に一致したデータの値を抽出します。
実現できれば「抽出元のデータ(表)を別のシートで管理できるようになる」ため、見た目もすっきり分かりやすくなります。
1-2.例を確認
一つ例を見てみましょう。
まず、「見積書シート」に上のような見積書の様式があるとします。
そして「単価表シート」に、上のような商品ごとの単価が入力された表があるとします。
VLOOKUP関数の別シート参照をすると、「見積書シート」に「単価表シート」から「えんぴつ」の単価を引っ張ってくることができます。
また、商品名を「えんぴつ」にすることでえんぴつの単価が、「消しゴム」にすることで消しゴムの単価が表示されるようになるのです。
2.VLOOKUP関数を別シート参照にするコツ
次に、VLOOKUP関数を「別シートに表示させるコツ」です。
2-1.別シート参照にする引数は「範囲」だけ
VLOOKUP関数で別のシートから値を抽出したい場合、特定の引数を「別シート参照」にする必要があります。
その引数は、「範囲」です。
VLOOKUP関数は、「範囲」から値を抽出します。
そのため、「範囲」に「データがあるシート」を指定すれば、数式を入れたシートにデータの値を表示させることができるようになるのです。
2-2.数式の例
では数式が実際にどのようになるか、例を見てみます。
先ほどの例を使って説明します。
先ほどの例の場合、単価のセルに入れる数式は次のようになります。
上のように、「範囲」には「シート名!」を付けます。なお、シート名によっては「'シート名'!」となることもあります。
2-3.シート名を自動で入力できる方法がある
「'」が必要な場合があるなど面倒なシート名指定ですが、自動で入力できる方法があります。
この方法であれば、シート名の書き方を覚えなくても別シート参照ができます。
詳しいやり方は、この後解説します。
3.別シート参照を簡単に指定できる方法
VLOOKUP関数を別シート参照にする方法を、数式を作りながら確認します。
以下手順です。
(1)セルに「=VLOOKUP(」と入力し、fxボタンを押す
(2)検索値と列番号、検索方法は普段通り入力する
(3)「範囲」の欄をクリックした後、参照先のシートをクリックする
※ ここがポイントです
(4)対象の範囲をマウスの左ドラッグで選択する
(5)OKボタンを押せば完了
数式作成時のポイントは、次の通りです。
- 「範囲」指定の際にシートをクリックする
- その他の引数は普段通り
これで自動的にシート名が入ります。
ちなみに、数式は次のようになります。
=VLOOKUP(B15,単価表!B3:C7,2,FALSE)
4.検索値をリストにすると便利
例のような場合には、「検索値(例だと『商品名』)をリストにすると便利」です。
手入力しなくても選ぶだけで値が入り、VLOOKUP関数も「検索値がない」とエラーにならないからです。
リストにする方法はいくつかありますが、一番簡単な方法を紹介します。
以下手順です。
(1)対象の範囲をマウスの左ドラッグで選択する
(2)「データの入力規則」をクリックする
(3)「入力値の種類」で「リスト」を選ぶ
(4)参照先のシートをクリック後、リストで出したい範囲を指定する
※ 例だと、単価表シートの商品名の入った範囲です
(5)OKボタンを押せば完了
これで、セルをクリックすれば上のようにリストが出るようになります。
入力誤りがなくなり、便利ですよ。
5.別シート参照が#N/Aで参照できないなら
VLOOKUP関数の別シート参照が#N/Aエラーになってうまくいかない場合には、次のことを確認してください。
5-1.検索値に「~」が入っていないか確認する
検索値に小文字の「~」が入っていると、VLOOKUP関数は#N/Aエラーになります。
そもそも#N/Aエラーとは、「検索値がない」場合に表示されるエラーです。
どうやらVLOOKUP関数では、小文字の「~」をうまく処理できないようです。
対処法は、「『~』を大文字(~)にする」ことです。
ちなみに「~」を「~」に置き換える場合には、置換機能ではなくSUBSTITUTE関数を使って行いましょう。
なぜなら、置換機能を使うと下のようにエラーになるからです。
手順はまず作業列を準備し、そこでSUBSTITUTE関数を使って「~」を「~」に置き換えた値に変換します。その後、その値をコピーして置き換えたいセルに「値の貼り付け」を行えばOKです。
なお、SUBSTITUTE関数の使い方を知りたい場合には、次のページを参照してください。
5-2.範囲から外れている・ズレている
こちらは一般的な話ですが、「検索値のあるセルが範囲から外れている・ズレている」ことも考えられます。
別シート参照の場合、「範囲」は「数式を入れるシート」と別になるので気づきにくいですが、指定した「範囲」の左端が「検索対象の列」になっているかも確認しましょう。
6.参照するシートを状況によって変えるには
最後に、「参照するシートを状況(セル値)によって変える」方法です。
6-1.IF関数と組み合わせる
VLOOKUP関数をIF関数と組み合わせると、セル値に応じてデータを抽出するシートを変えることができます。
数式の例は、次の通りです。
IF関数の引数「真の場合」と「偽の場合」に、それぞれVLOOKUP関数を入れます。
そして、「範囲」で違うシートを指定することにより、条件に合う/合わないによってVLOOKUP関数の参照先を変えることができます。
6-2.例を確認
一つ例を見てみましょう。
まずは上のように、割引率を変えた単価表を2つ用意します。
そして、単価のセルに次の数式を入れました。
=IF(R15=10%,VLOOKUP(B15,単価表1!B4:C8,2,FALSE),VLOOKUP(B15,単価表2!B4:C8,2,FALSE))
これでセルR15が「10%」なら「単価表1」の単価が、それ以外なら「単価表2」の単価が抽出されます。
このように、IF関数と組み合わせることによって、VLOOKUP関数で抽出するシートを変えることができます。
6-3.数式作成時のポイント
ポイントは、次の通りです。
- IF関数の「真の場合」と「偽の場合」にVLOOKUP関数を入れる
- 真偽によって「範囲」の参照シートを変える
- その他の引数は普段通り
IF関数の使い方を知っていて、VLOOKUP関数で別シート参照にする方法も知っていれば、特に難しいことはありません。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
VLOOKUP関数のその他の記事はこちらです。
- VLOOKUP関数その他の記事はこちら
- ◎基本的な使い方
- ◎「以上/未満」の条件指定の仕方
- ◎〇番台の条件にする方法
- ◎部分一致の条件指定の仕方
- ◎別シートから値を抜き出す方法
- ◎別ブックから値を抜き出す方法
- ◎数式コピーで横方向の値を簡単に取得する方法
- ◎2番目、3番目以降の値を抽出する方法
- ◎#N/Aエラーになる3つの原因と対処方法
- ◎#REF!エラーになる原因と対処方法
- ◎#VALUE!エラーになる原因と対処方法
- ◎空白を0ではなく空白で表示する2つの方法
- ◎「IF(ISERROR(VLOOKUP」の意味と使い方
- ◎IFERROR関数とVLOOKUPの組み合わせ方
- ◎空白でもエラーでも空白で表示する方法
- ◎複数条件にする方法
- ◎セルや範囲を固定しコピーのズレを防ぐ方法
- ◎文字列を条件にする方法
- ◎列番号の意味と指定の仕方