- 公開日:
ExcelのVLOOKUP関数で昇順に並び替える必要がある場合
この記事では、ExcelのVLOOKUP関数で昇順に並び替える必要がある場合についてご説明します。
VLOOKUP関数の検索で、検索値や範囲は正しいのに誤った結果が返されることがあります。特に「TRUE」を指定している場合は注意が必要です。
以下では、どんな時に「昇順」にしないといけないのか、なぜ「昇順」にする必要があるのかを詳しく解説します。
ExcelのVLOOKUP関数で昇順に並び替える必要がある場合
VLOOKUP関数でデータを「昇順」にする必要があるのは、第4引数である検索の型で「TRUE」を指定した場合のみです。
以下では、「TRUE」を指定した場合になぜ「昇順」にしなければならないのかをご説明します。
どんなときに昇順に並び替える必要があるのか?
「昇順」に並び替える必要があるのは、「TRUE」を指定して近似値検索したい場合です。
近似値検索とは、検索値に一致する値または検索値を超えない最大値のことです。
以下で詳しくご説明します。
近似値検索が適用されるのは、上記の画像のようにVLOOKUP関数の第4引数の検索方法に「TRUE」を指定した場合と、検索方法を省略した場合です。
VLOOKUP関数は、検索方法を省略すると「TRUE」が自動で指定されてしまうので、完全一致を検索したい場合は「FALSE」を指定してください。
昇順に並んでいるA2セルからB4セルの評価の基準を並び替えてみます。
F列には、VLOOKUP関数で取得した結果が表示されていますが、赤矢印で示したように評価が間違っていることが分かります。
なぜ昇順にしないと、正しい結果が得られないのかを簡単に説明します。
近似値検索をする際、「二分探索アルゴリズム」を使用しているために誤った結果が返されることがあります。
二分探索アルゴリズムを例で簡単に説明すると、まず検索値(例:3)が検索範囲の中央値(例:4)より大きいか小さいかを判定します。
検索値(例:3)は中央値(例:4)より小さいので、範囲の上半分を探します。次に半分になった検索範囲内で、検索値(例:3)が中央値(例:2)より大きいか小さいかを判定します。
上記のように、検索範囲を狭くして検索する方法が「二分探索アルゴリズム」です。
昇順にしていない場合、正しい値があっても検索範囲から漏れてしまうことがあるので、近似値検索をする際は必ず「昇順」にする必要があります。
TRUEを指定する時の注意点
TRUEを指定して近似値検索をする際、気を付けることがあります。
近似値検索とは、検索値に一致する値または検索値を超えない最大値を返すため、検索値が検索範囲の値より小さい場合はエラーが返されてしまいます。
上記の画像は、D3セル(例:29)とD6セル(例:19)は、検索列の評価基準の30より小さいため、検索値を超える値を返すことができず#N/Aエラーが表示されてしまいました。
上記のような場合、#N/Aエラーを表示させたくない場合は、あらかじめ最小値(例:0)などを設定したり、N/Aエラーを処理したりするなどの対策があります。
#N/Aエラーの代わりに指定した文字列を表示する方法は、以下の記事「データがない場合は指定した文字列を返してチェックする方法」セクションでご紹介しています。