Excel VLOOKUPの“完全一致” はなぜFALSE?論理値の使われ方解説

こんにちは。

先日、Excelを受講中の生徒様からこんな質問をいただきました。

「VLOOKUP関数って、検索値との“完全一致”を条件にするときに [FALSE] を使うけど、どうして [TRUE] じゃないんですか? 完全に一致しているなら [TRUE] のほうが意味的に合ってる気がします。」

 

そうですよね。

VLOOKUP関数の「[TRUE:近似一致]」「[FALSE:完全一致]」という指定は、直感的には逆が良いように感じます。

特に、IF関数で

「条件が一致すればTRUE、一致しなければ FALSE」

という考え方に慣れていると、違和感を覚える方も多いと思います。

 

 しかし、IF関数のTRUE/FALSE は“判定結果”を意味するのに対し、

VLOOKUP関数の TRUE/FALSE は“検索方法の指定”を意味しており、使われ方が少し異なります。

 

そこで今回は、Excel関数における[TRUE]・[FALSE] の意味と使い方を整理してみようと思います。

 

【基本的な論理値の意味】

 TRUE:条件が「真」である(合致している)

 FALSE:条件が「偽」である(合致していない)

※Excelでは、TRUE=1、FALSE=0 として数値的にも扱うことが可能

 

【関数での TRUE・FALSEの使われ方】

 判定結果として使う(IF・AND・OR・NOT・EXACTなど)

 検索方法の指定として使う(VLOOKUP・MATCH・XLOOKUPなど) 

その他(FILTERの配列処理、N関数での数値変換、LET関数での制御フラグなど)

 

関数によっては、論理値が数値・文字列・配列のように柔軟に扱われています。

 

 

【VLOOKUP関数でのTRUE・FALSE】

構文:=VLOOKUP(検索値, 範囲, 列番号, [検索の型])

 

検索の型に指定する値

TRUE:近似一致(昇順に並んだデータから「検索値に近い値」を探す)

FALSE:完全一致(検索値と「完全に一致する値のみ」を探す)

 

ここでの [FALSE] は、「一致しなければならない」という厳密な検索条件を、

[TRUE] は「近い値でもOK」という柔軟な検索条件を意味しています。

 

 

【なぜ「完全一致=FALSE」なのか?】

表計算ソフトが普及し始めた1990年頃は、税率表・運賃表・給与テーブル・保険料の計算等に使われていました。

これらはすべて“範囲検索”であり、「数値の範囲に応じて値を返す」近似一致(TRUE)が自然な使い方でした。

そのため、VLOOKUPの前身である LOOKUP関数 も「近似一致」が基本動作で、

昇順に並んだデータを前提に「検索値以下の最大値」を探す仕組みになっていました。

 

VLOOKUPはこのLOOKUP関数の発展形として作られた関数のため、

TRUE=近似一致という仕様がそのまま引き継がれたのです。

 

したがって、VLOOKUPの[検索の型]は

「近似一致を許容するかどうか」を指定していると考えると理解しやすいでしょう。

つまり「FALSE=完全一致」というより「FALSE=近似一致を許容しない」という意味で捉えます。

【現在の関数設計との違い】

現代の実務では、完全一致で検索する方が安全で誤動作が少ないため、FALSE(完全一致)を使うケースが主流になっています。

その影響もあって、MATCH関数や新しい XLOOKUP関数 では、検索モードを数値で指定するようになり、完全一致がデフォルト になりました。

 

関数ひとつにも、歴史的な背景や実務のニーズに根差した設計思想があります。

その意図を知ることで、Excelをより深く・正確に使いこなせるようになりますね。

「関数でこういうことはできる?」と思ったら、ぜひお気軽にスタッフにお尋ねください♪