Excel VLOOKUP関数で0と空白を正確に処理する方法

Excel VLOOKUP関数で0と空白を正確に処理する方法

ExcelのVLOOKUP関数は、情報を効率的に検索するための便利なツールですが、時折、0と空白を正確に処理するのが難しくなることがあります。この記事では、VLOOKUP関数の結果として得られる0と空白を適切に区別して処理する方法を解説します。

VLOOKUP関数とは

VLOOKUP関数は、指定した値を基準に表のデータを検索し、関連する情報を取り出す関数です。しかし、検索結果が空白の場合、Excelはその結果を0として解釈することがあります。

VLOOKUP関数の書式は以下の通りです。

=VLOOKUP(検索値, 範囲, 列番号, [検索方法])

それぞれの引数の意味は以下の通りです。

検索値
検索したい値を指定します。
範囲
検索対象の範囲を指定します。検索値が見つかる最初の列が基準となります。
列番号
取得したいデータがある列の番号を指定します。範囲の最初の列を1としてカウントします。
[検索方法]
検索方法を指定します。省略した場合は、近似検索が行われます。TRUEまたは1で近似検索、FALSEまたは0で完全一致検索を指定できます。

0と空白の問題

たとえば、以下のような商品表と注文表を考えてみましょう。

商品表(E1:F15に作成)

商品在庫
りんご3
みかん0
ぶどう3
バナナ10
いちご1
さくらんぼ
すいか12
もも4
キウイ
パイナップル7
メロン10
マンゴー0
ブルーベリー8
レモン12

注文表(A1:C5に作成)

注文番号注文商品在庫
10001パイナップル
10002みかん
10003さくらんぼ
10004メロン

この注文表のC列に注文商品の在庫数が自動で表示されるような式を検討します。単純に考えれば

=VLOOKUP(B2,E:F,2,FALSE)

という式をC2へ作成してコピーすればでしょう。ほとんどのケースではこの式でよいのですが、この標準のVLOOKUP関数で作成した式では空白・空欄セルを「0」として返してしまいます。以下は上記の式をC2へ作成して下へコピーした際の結果です。

解決方法

VLOOKUP関数を使用して商品表から在庫を検索する際、0と空白を正確に区別するための方法を紹介します。文字数を数えるLEN関数を利用します。

=IF(LEN(VLOOKUP(B2,E:F,2,FALSE))=0, "", VLOOKUP(B2,E:F,2,FALSE))

この式では、VLOOKUP関数の結果の文字数をLEN関数で調べ、その結果が0(空白)であるかどうかを確認します。空白の場合は、空の文字列を返し、それ以外の場合はVLOOKUP関数の結果をそのまま返します。

まとめ

ExcelのVLOOKUP関数は非常に便利ですが、0と空白を正確に区別する際に注意が必要です。この記事で紹介した方法を使用すれば、そのような問題を簡単に解決することができます。

コメント