VLOOKUP関数は検索した値が見つからない場合に#N/Aエラーを返し、参照先のセルが空白(””)の場合は「0(ゼロ)」を返します。
会社や学校でVLOOKUP関数が入ったExcelブックを他の人に使用してもらう際、#N/Aエラーや0が表示されるのは避けたいという場面があります。そのような時は#N/Aエラーや0の代わりに空白で返すように設定しましょう。
この記事では#N/Aエラーや0ではなく空白で返す方法についてそれぞれの方法をご紹介していきます。
0ではなく空白で返す
まず参照先のセルが空白の時に0を返す場合から確認していきましょう。

例えば上記の表で、C10セルに商品コードを入れるとD10セルの商品名に価格テーブルから紐づいた商品名を表示するとします。
C10セルに『1002』、D10セルに『=VLOOKUP(C10,$B$4:$D$6,2,FALSE)』を入力します。C10セルに入力した値を検索値として検索範囲から検索します。ただし価格テーブルの商品コード「1002」の商品名が空欄になっています。

D10セルに「0」が表示されました。価格テーブルにおいて検索値である「1002」の商品名が空欄であることが原因です。0の代わりに空白にするにはIF関数でも対応することはできますが、もっと簡単な方法がありますのでご紹介します。

D10セルに『=VLOOKUP(C10,$B$4:$D$6,2,FALSE)&””』と入力します。先ほどの数式と違うのは最後に「&””」が追加されている点です。

今度はD10セルを空白にすることにできました。数式の最後に追加した「&””」は、文字列を結合する演算子「&」で空白記号(””)を結合することで「0」ではなく空白に変換しています。
IFERROR関数を使って#N/Aエラーではなく空白で返す
次に検索した値が見つからなかった場合に#N/Aエラーではなく空白のセルに置き換える方法を説明していきます。

例えば上記の表で、C10セルに商品コードを入れるとD10セルの商品名に価格テーブルから紐づいた商品名を表示するとします。
C10セルに『1004』、D10セルに『=VLOOKUP(C10,$B$4:$D$6,2,FALSE)』を入力します。C10セルに入力した値を検索値として検索範囲から検索します。ただし価格テーブルの商品コードの列に「1004」は存在しません。

D10セルに「#N/A」エラーが表示されました。検索値の「1004」が検索範囲の最初の列に見つからなかったことが原因です。VLOOKUP関数と別の関数を組み合わせることで#N/Aエラーを空白に置き換えることができます。

D10セルに『=IFERROR(VLOOKUP(C10,$B$4:$D$6,2,FALSE),””)』と入力します。先ほどの数式と違うのはIFERROR(イフ・エラー)関数が使われている点です。
IFERROR関数は、エラーの場合に指定した値を返します。書式としては「IFERROR(値,エラーの場合の値)」のように記述します。
今回の場合では、VLOOKUP関数の結果がエラーになったら空白(””)を返すように指定しています。

IFERROR関数とVLOOKUP関数を組み合わせることでD10セルを空白にすることにできました。
IFERROR関数を使って#N/Aエラー、0の両方を空白で返す
最後に「0ではなく空白で返す」と「#N/Aエラーではなく空白で返す」の両方に対応する方法をご紹介します。

上記の例と同様、D10セルに『=IFERROR(VLOOKUP(C10,$B$4:$D$6,2,FALSE)&””,””)』と入力します。IFERROR関数の第1引数として「0ではなく空白で返す」方法の時に使用した空白記号を結合する部分を追加した形になります。
このハイブリッドの形式であれば検索結果が「0」または「#N/Aエラー」になった際に空白に置換することができます。ぜひ試してみましょう。
コメント
この記事へのコメントをお寄せ下さい。