• 公開日:

ExcelのVLOOKUP関数で昇順に並び替える必要がある場合

この記事では、ExcelのVLOOKUP関数で昇順に並び替える必要がある場合についてご説明します。

VLOOKUP関数の検索で、検索値や範囲は正しいのに誤った結果が返されることがあります。特に「TRUE」を指定している場合は注意が必要です。

以下では、どんな時に「昇順」にしないといけないのか、なぜ「昇順」にする必要があるのかを詳しく解説します。

ExcelのVLOOKUP関数で昇順に並び替える必要がある場合

VLOOKUP関数でデータを「昇順」にする必要があるのは、第4引数である検索の型で「TRUE」を指定した場合のみです。

以下では、「TRUE」を指定した場合になぜ「昇順」にしなければならないのかをご説明します。

どんなときに昇順に並び替える必要があるのか?

「昇順」に並び替える必要があるのは、「TRUE」を指定して近似値検索したい場合です。

近似値検索とは、検索値に一致する値または検索値を超えない最大値のことです。

以下で詳しくご説明します。

検索の型がTRUEになる場合

近似値検索が適用されるのは、上記の画像のようにVLOOKUP関数の第4引数の検索方法に「TRUE」を指定した場合と、検索方法を省略した場合です。

VLOOKUP関数は、検索方法を省略すると「TRUE」が自動で指定されてしまうので、完全一致を検索したい場合は「FALSE」を指定してください。

昇順にしない場合の結果

昇順に並んでいるA2セルからB4セルの評価の基準を並び替えてみます。

F列には、VLOOKUP関数で取得した結果が表示されていますが、赤矢印で示したように評価が間違っていることが分かります。

なぜ昇順にしないと、正しい結果が得られないのかを簡単に説明します。

二分探索アルゴリズムとは

近似値検索をする際、「二分探索アルゴリズム」を使用しているために誤った結果が返されることがあります。

二分探索アルゴリズムを例で簡単に説明すると、まず検索値(例:3)が検索範囲の中央値(例:4)より大きいか小さいかを判定します。

検索値(例:3)は中央値(例:4)より小さいので、範囲の上半分を探します。次に半分になった検索範囲内で、検索値(例:3)が中央値(例:2)より大きいか小さいかを判定します。

上記のように、検索範囲を狭くして検索する方法が「二分探索アルゴリズム」です。

昇順にしていない場合、正しい値があっても検索範囲から漏れてしまうことがあるので、近似値検索をする際は必ず「昇順」にする必要があります。

TRUEを指定する時の注意点

TRUEを指定して近似値検索をする際、気を付けることがあります。

近似値検索とは、検索値に一致する値または検索値を超えない最大値を返すため、検索値が検索範囲の値より小さい場合はエラーが返されてしまいます。

#N/Aエラーが表示された

上記の画像は、D3セル(例:29)とD6セル(例:19)は、検索列の評価基準の30より小さいため、検索値を超える値を返すことができず#N/Aエラーが表示されてしまいました。

上記のような場合、#N/Aエラーを表示させたくない場合は、あらかじめ最小値(例:0)などを設定したり、N/Aエラーを処理したりするなどの対策があります。

#N/Aエラーの代わりに指定した文字列を表示する方法は、以下の記事「データがない場合は指定した文字列を返してチェックする方法」セクションでご紹介しています。

ExcelのVLOOKUP関数でデータの存在チェックをする方法