2008年07月02日

FALSEか0か

Excelのヘルプによると、VLOOKUP関数の第4引数「検索の型」には、論理値TRUEまたはFALSEを指定することになっています。

一方、MATCH関数の第3引数「照合の型」に指定するのは、1、0、-1のいずれかです。

とはいえ、知っている人は知っていると思いますが、TRUEは1、FALSEは0と等価であり、VLOOKUP関数の第4引数に0を指定しても、ちゃんと完全一致で検索してくれます。
また、第4引数を省略した場合の既定値はTRUEですが、カンマだけ付けて「=VLOOKUP(D1,A1:B5,)」のようにした場合は、ここに勝手に0を補って、やはり完全一致で検索してくれます。
逆に、MATCH関数の照合の型にFALSEを指定しても問題ありません。

同じことなのに、なぜ「公式な」指定方法が違うのかというと、要するにVLOOKUP(HLOOKUPも)は2モード、MATCHは3モードだから、ということなのでしょう。
2つしか選択肢がないものについては、TRUEまたはFALSE、と決めてしまったほうが紛らわしくない、ということかと。

ちなみに、VLOOKUP関数の「検索の型」に1か0以外の数値を指定した場合は、すべてTRUE(1)と同じく、昇順のリストを対象とした検索になります。論理値TRUEを数値に変換すると1(VBAの場合は-1)になりますが、数値を論理値に変換した場合、0以外はすべてTRUEになるからです。
実は、IF関数の第1引数「論理式」を指定するときも同様で、「<>0」みたいな形の論理式にしなくても同じ結果が得られます(数式の意味のわかりやすさ、といった問題はありそうですが)。

また、MATCH関数の「照合の型」の指定では、正の数を指定した場合はすべて「1」、負の数を指定した場合はすべて「-1」を指定したのと同じ結果になります。
posted by 土屋和人 at 10:07| Comment(0) | TrackBack(0) | Excel
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/16556932
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック