Excelの便利スキル(第8回)指定範囲から検索して値を取得する(VLOOKUP関数)
すぐに使えるExcelの便利な小技を集めました
よく使う機能、よく使う関数を少しだけ深掘り
第8回は、表から「元となる情報」を使用して検索する手法を紹介していきます。
- 取扱商品の一覧表から、商品情報を元にして仕入先名を検索する
- 取扱商品の一覧表から、商品情報が見つからない場合に空欄を表示する
では、細かく見ていきましょう。
【第8回】指定範囲から検索して値を取得する(VLOOKUP関数)
ExcelでVLOOKUP関数を入力すると、以下のヒントが表示されます。
VLOOKUP関数は、表範囲の中から縦方向に元となる情報を検索して、見つけたデータと同じ行にある列のデータを表示する関数です。
- 検索値
- 言葉通り「検索する値」のことです。データやセルを指定します。
- 範囲
- 検索を行う範囲、表のことです。セルで範囲を指定します。表の一番左の列に[ 検索値 ]があり、かつ昇順になっている必要があります。
- 列番号
- 検索をした結果、取得する値の列が左から何番目にあるのかを示します。
- 検索方法
- 検索する方法をTRUE、FALSEのどちらかで指定をします。省略することもできますが、その場合はTRUEが指定されたものとして動作します。
- TRUE:検索値の近似一致を検索します。「1」と入力しても良いです。
- FALSE:検索値の完全一致を検索します。「0」と入力しても良いです。
- 検索する方法をTRUE、FALSEのどちらかで指定をします。省略することもできますが、その場合はTRUEが指定されたものとして動作します。
例えば、在庫の発注を行う際、商品情報を元にして仕入先名を検索する場合を考えます。取扱商品一覧は商品コードの昇順に並び替えられているものとします。
発注を行う商品を当月の発注リストにまとめたら、仕入先名を取得するため以下の値をVLOOKUP関数に入力します。
- 検索値:発注する商品の商品コード
- 範囲:取扱商品の一覧表
- 列番号:4(仕入先名は一覧表の左から4列目のため)
- 検索方法:FALSE
VLOOKUP関数を発注リストのように一覧表内にて使用する場合、検索値は相対参照(列は固定だが、行は固定しない)、範囲は絶対参照(列も行も固定する)にして入力すると、オートフィル機能を使用して、他のセルに同様な計算式を入力する手間を省くことができます。
VLOOKUP関数は、検索する値が見つからない場合にエラー(#N/A)となります。例えば廃番の商品等、わざと在庫表の商品コードを変更させている場合、取扱商品一覧からは該当の商品コードを検索しても見つからない為、エラー(#N/A)が表示されます(下図、左)。エラーを表示させないようにするには、IFERROR関数を使用し、「もしエラーになった時は空欄を表示をする」等の設定を行います(下図、右)。
XLOOKUP関数を使えば、列番号を数えなくても良い
VLOOKUP関数は検索して値を表示する際にとても便利な関数ですが、検索範囲の一番左の列に検索値があることが前提となっており、取得する値の列が左から何列目かをあらかじめ数えておく必要があります。Excel2021から追加されたXLOOKUP関数を使用すれば、検索値が左になくても、そして表示する値が何列目かを数えなくてもよくなりました。
例えば、先程の発注リストに仕入先名を取得する部分を、VLOOKUP関数ではなくXLOOKUP関数を使用して表示することもできます。
検索する表に列を挿入しても計算式を修正しなくても良いメリットのほか、見つからない場合に備えてIFERROR関数内にネストする必要がないため、XLOOKUP関数も「よく使う関数のひとつ」として、覚えておくといいのかもしれません。
このExcel小技、すぐに使えそうでしょう?
Excelだけでも様々な処理や操作が可能で、その中でも頻繁に使う機能や関数は絞られるはず。「よく利用する」機能や関数をもう少し詳しく知り、使いこなすことで、今の作業をより早く、より簡単に終わらすことができるようになるといいですよね。