こんにちは。
先日、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をより深く・正確に使いこなせるようになりますね。
「関数でこういうことはできる?」と思ったら、ぜひお気軽にスタッフにお尋ねください♪

