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と空白を正確に区別する際に注意が必要です。この記事で紹介した方法を使用すれば、そのような問題を簡単に解決することができます。
コメント