VLOOKUP関数を使って別のシートを参照するにはどうすればいいのだろう?
そんな疑問にお応えできるようこの記事では、
- VLOOKUP関数の基本
- 別のシートのデータを参照してVLOOKUP関数を使用する方法
- VLOOKUP関数がうまくいかないとき
について解説しています。
別シートを参照する場合でもVLOOKUP関数の基本の考え方は同じなので、この記事で理解してしまいましょう!
VLOOKUP関数については、【基本から応用まで】エクセルVLOOKUP関数の超まとめ!で基本から応用な使い方までまとめているので、こちらの記事も是非ご参考下さい。
VLOOKUP関数の基本
検索値を元に値を探してくれる
VLOOKUP関数を使うと、指定した検索値を元に指定した列の値を探してもらうことができます。
数式としては、
VLOOKUP(検索値,範囲,列番号,[検索方法])
※検索方法は省略可能
となります。
文章だとわかりにくいと思いますので、具体的な例で説明します。
例えば、単価表という製品ごとに単価が管理された表があり、そこからある製品の単価を探したいような場面です。
目視で製品Dの単価を探す場合、単価表の上から見ていって一致したら右を見ますよね。
VLOOKUP関数はこの動きを代わりにやってくれるのです。
VLOOKUP関数の数式を作る手順
先ほどの例で説明をしていきます。
まずは、
=VLOOKUP(
に続けて検索値を指定します。今回ですと「製品」が検索値となります。
次に範囲を指定します。
今回だと単価表が範囲にあたるので、J4セル~K8セルを指定します。
次に、列番号を指定します。今回は単価表の単価を取得する必要があるので2列目ですね。
最後はFALSEを指定しましょう。完全一致を意味しますが、実務ではほとんどTRUE(部分一致)は使用しないと考えてよいです。
カッコを閉じて完成となります。
では参照元の表(今回の例だと単価表)が別シートにあるときはどのようにしたらよいのでしょうか?
そのような場合について解説していきます。
VLOOKUP関数を使って別シートのデータを参照する場合
別シートにデータがある場合でも、手順は変わりません。
先ほどと異なり、
- Sheet1に注文表
- Sheet2に単価表
がある場合を考えましょう。
=VLOOKUP(
に続けて検索値を指定するところまでは同じです。
次の範囲指定で、別シートを指定する必要があります。
範囲指定の箇所にカーソルがきたら、別シート(今回だとSheet2)を選択しそのまま範囲を選択します。
そしてこの後がポイントとなるのですが、
Sheet2が選択された状態で、VLOOKUP関数の数式を完成させましょう。
注意点としては、Sheet2で範囲選択をした後にSheet1に切り替えてしまうと数式に余計なものが入り、分かりにくくなってしまいます。
今回解説した内容については動画もありますので、ご参考ください!
VLOOKUP関数がうまくいかないとき
#N/Aエラーが表示される
同シートでも別シートでも、VLOOKUP関数を実行するとエラーが表示されることがあります。
#N/A
が一番良くでるエラーかと思います。
検索値が表に存在しない場合にこのエラーが表示されます。
今回だと、単価表から製品Cを無くしてしまったのでエラーがでています。
この#N/Aという表示をさせたくない場合は、
IFERROR関数
を使いましょう。
IFERROR関数は、
=IFERROR(値,エラーの場合の値)
という数式で、値にエラーがでたらどのようにするかを指定することができます。
最初の「値」のところにVLOOKUP関数を入れて、「エラーの場合の値」を空の文字列にすれば何も表示しないようにできます。
具体的には下記のようになります。
#N/Aのエラーが表示されなくなりました。
IFERROR関数はVLOOKUP関数以外にも組み合わせ使うことができるので、同じ考え方で合計金額に表示されている#VALUE!のエラーも表示させないようにできます。
検索値より左側の列の値を取得することはできない
VLOOKUP関数の注意点として、検索値より左側の値を取得することはできません。
これまでの例ですと、製品の右側に単価がある場合は取得ができないということです。
回避策としては、
- 検索値の右側に取得したい値をもってくる
- INDEX関数、MATCH関数と組み合わせる
- XLOOKUP関数を使用する
といった方法がありますが、あくまでVLOOKUP関数を使う場合は取得したい値が検索値の右側になるようにしましょう。