
Excelの困りごとを解決するこのコラム。
今回のテーマ:VLOOKUP関数のエラー「#N/A」とその対策
VLOOKUP関数でエラーが出たとき、どう直せばいいかわからない…という経験はありませんか?このコラムにも、そうした声が多く寄せられています。
そこで今回は、「#N/A」の原因とあわせて、IFERROR関数やXLOOKUP関数を使った対策をご紹介します。
VLOOKUP関数の基本については、以下をご覧ください。
▼「VLOOKUP関数の理解度チェック」もぜひお試しください!―無料オンライン研修eラーニング:ELAN(エラン)

VLOOKUP関数で「#N/A」が出て手が止まる…
VLOOKUP関数の結果が「N/A」みたいな値になるんだけどこれは何?
エラー値が出たときは、どうしたらいい?
VLOOKUP関数が書けるようになった方から、上記のようなご相談をよくいただきます。
ひとつずつ解説します。
VLOOKUP関数でエラー値「#N/A」が表示される原因
では、VLOOKUP関数で下図のようなエラー値が出てしまう原因を見てみましょう。
この例では、C8セルのVLOOKUP関数の結果として「#N/A」というエラー値が出ています。
この原因は、以下となります。例題の式とあわせて見てみましょう。
■「#N/A」が表示される原因

原因は、このVLOOKUP関数の検索値である第一引数に指定したA8セルの値”2210”が、E列に存在しなかったため、「その検索値が見つかりませんでした」という報告として「#N/A」という値が出るようになっている、ということなのです。
言い換えると、次のような説明になります。
「第一引数に指定した値が、第二引数の一番左の列(検索列)に存在しない場合、VLOOKUP関数は#N/Aという値を返す仕組みになっている」
これで理屈は分かったとして、次によくいただくご質問は「式の結果がエラーになったらどうしたらよいのか」というものです。
例えばエラーが出たとき、次のようにしたい場合があります。
・正しい値を表示させる
・エラー値ではなく空白にする
・「-」(ハイフン)を表示する
これはどうすればよいかというと、まず正しい値が出てくるようにするには、「第二引数で指定する表に情報を追加する」必要があります。
正しい値を表示させるには
今回の場合、「勘定科目マスタ」に「必要な勘定科目が不足していた」ということですから、次のように、E9セルに「その勘定科目コードの追加」とF9セルに「勘定科目名を追加」してあげれば、C8セルの結果はエラー値ではなくなります。
一方、「エラーになるようなら、ハイフンなどを表示したり、もしくは何も表示しないようにする」にはどうすればよいのか。その対策として、定番の方法を確認しておきましょう。
エラー値が出たときの対策:「-」を表示/空白にする
それには、IFERROR関数というものを使います。
これは関数名から想像できる通り、「もし関数の結果がエラーだった場合、どうするかを指定する」ことができる、という関数なのです。
■IFERROR関数で「-」を表示するには
例えば、C8セルのVLOOKUP関数がエラーになる場合は「-(ハイフン)」を表示したい、という場合は、このような式になります。

全体図を見てみましょう。
このように、IFERROR関数は第一引数に指定した式がエラーになった場合、第二引数に指定した値を返す、というものです。
■IFERROR関数で空白にするには
ハイフンではなく空白にしたいという場合は

というように、第二引数に、空白を意味する””(ダブルクオーテーションを2つ続けて入力)を指定します。
以上が、VLOOKUP関数にIFERROR関数を組み合わせた定番の対策となります。次に「XLOOKUP関数」を使った方法をご紹介します。
「XLOOKUP関数」ならエラー値の対応がもっとラクになる
Excelのバージョン2021以降、またはMicrosoft 365のExcelでは、VLOOKUP関数の進化版である「XLOOKUP関数」というものが使えるようになっています。
このXLOOKUP関数のありがたい点の一つが、この関数だけでエラー値への対応もできてしまうことです。
先ほどの例の場合、XLOOKUP関数にて、結果がエラーになる場合は空白にしたい、というときはこのような式になります。

全体図を見てみましょう。
このXLOOKUP関数では、次のように5つの引数を指定しています。それぞれの役割を見た上で、全体として何をしてくれるのかを見てみましょう。
■XLOOKUP関数 5つの引数の役割

□第一引数
検索値
□第二引数
第一引数の値を検索する範囲
□第三引数
第一引数の値が第二引数で見つかった場合、それと同じ行の、この列の値が式の結果として使われる。
□第四引数
第一引数の検索値が、第二引数の範囲で見つからなかった場合に返す値を指定する。上記例では「空白にする」という意味。
□第五引数
検索の型(VLOOKUP関数と同様の役割)
例題の式を日本語に訳すとこんな動作ということになります。
A8セルの値をE列で探してみて、もし見つかったら、それと同じ行にあるF列のセルの値を返す。もし見つからなかったら、この式の結果は空白(””)にする。
という処理を行っていることになります。
このように、XLOOKUP関数であれば、VLOOKUP関数のようにIFERROR関数を組み合わせなくても、このXLOOKUP関数だけでエラー値対応までできてしまいます。
▼「VLOOKUP関数の理解度チェック」もぜひお試しください!―無料オンライン研修eラーニング:ELAN(エラン)

Excelの効率化支援を行う株式会社すごい改善代表取締役。実務直結主義のExcel研修を2011年から14年間に渡り500回以上開催、受講者は1万名を超える。著書『たった1日で即戦力になるExcelの教科書』『たった1秒で仕事が片づくExcel自動化の教科書』(技術評論社)など累計50万部を突破。
▼これまでの「Excel教室」
・式を壊してしまいそう…の不安を解消する方法
・集計しづらい状態のデータを受け取った。対処法は?
・Excel 5大グラフを理解する。スムーズな作り方も解説
・絶対参照($マーク)をわかりやすく解説
・Excelデータ入力で、やらないほうがいいこと
・セルの「表示形式」の工夫がわかるといろいろな問題が解決する
・IF関数の基本「もし、ここがこうだったら、こうしたい」のとき
・IF関数をさらに使いこなす!レベルアップ講座
・VLOOKUP関数の式の仕組みをやさしく解説













