2つのシートからVLOOKUPで検索したい!
VLOOKUP関数は、表(範囲)の中から指定のキーを元に、同じ行にある指定の列のデータを返すおなじみの関数です。
VLOOKUP関数が分からない方は次の記事をどうぞ。
ただ、キーを元にデータを探す範囲を指定出来るのは1つなので、2つ以上の範囲を横断して探したい場合は一工夫が必要です。
今回は、そんな場合に使える方法を紹介します!
やり方
サンプル
- 第1営業部シート
- 第2営業部シート
- 検索シート
の3つのシートで出来たスプレッドシートです。
検索シート上で、A1セルに社員番号を入力するとB2セルにその社員の名前が出るというものを作ります。
IFERROR関数を使う
2つのシートにある範囲から、VLOOKUPで検索するには、IFERROR関数を使います。
IFERROR関数は、入力されている値や数式がエラーかどうかを判別して、エラーじゃなかった場合とエラーだった場合の挙動を分けることが出来る関数です。
ちなみに、エラーはこんなやつです。
- #N/A
- #VALUE!
- #REF!
- #DIV/0!
- #NUM!
- #NAME?
- #NULL!
VLOOKUP関数も、範囲を検索して値が見つからなかった場合は、#N/Aのエラーを返しますので、ちゃんと反応出来ます!
つまり、「値/数式」のところに「第1営業部」シートの範囲を指定したVLOOKUP関数を入力して、それがエラーだった場合は、「エラーの場合の値」のところに、「第2営業部」シートの範囲を指定したVLOOKUP関数を書けば、2つのシートを横断して検索をかけることが出来ます(^^)
この方法で言えば、3シート、4シートと複数シートにまたがった検索も出来ますよ!
それでは、検索シートのB2セルに次の数式を入力してみます。
= IFERROR( VLOOKUP( A2, 第1営業部!A2:B4,2,0 ), VLOOKUP( A2, 第2営業部!A2:B4, 2, 0 ))
ぱっと見は複雑ですが、IFERROR関数の引数「値/数式」に、VLOOKUP( A2, 第1営業部!A2:B4,2,0 ) 「エラーの場合の値/数式」にVLOOKUP( A2, 第2営業部!A2:B4, 2, 0 ) が入ってるだけですね。
社員番号を入力して結果が正しく表示されるか確認してみましょう。
バッチリですね!
5つのシートから検索する場合
参考までに、3シート以上(ここでは5シート)から検索する場合の数式です\(^o^)/
こんな感じの5シート
= IFERROR(VLOOKUP( A2, 第1営業部!A2:B4,2,0 ),
IFERROR(VLOOKUP( A2, 第2営業部!A2:B4,2,0 ),
IFERROR(VLOOKUP( A2, 第3営業部!A2:B4,2,0 ),
IFERROR(VLOOKUP( A2, 第4営業部!A2:B4,2,0 ),
VLOOKUP( A2, 第5営業部!A2:B4, 2, 0 )))))
見難いので改行していますが、こんな感じです!
まとめ
2つのシートからVLOOKUPで検索したい!ときの方法を紹介しました!関数側でこのように処理することで、元のデータを分かりやすく整理することが出来ますね(^^)
コメント
はじめまして。お尋ねしたいのですが、5つのシートを参照したいんですが、引数が長いというエラーメッセージを返されました。
良い方法はございますでしょうか?
はじめまして!
コメントありがとうございます!
エラーメッセージが出たということですが、こちらで5つのシートで試してみましたがエラーが再現出来ませんでした(T T)
念のため、本文修正しまして5つのシートで検索する場合の数式も入れてますのでそちらも見て頂ければと思います。
解決出来ない場合は、可能でしたらエラーになっている数式をコメントに貼り付けて頂ければもう少し具体的に調査可能かと思います!
宜しくお願い致します!!