10/13/2020

Excel。VLOOKUP関数で発生する#N/AエラーはIFERROR関数で対応しちゃいましょう。【IFERROR】

Excel。VLOOKUP関数で発生する#N/AエラーはIFERROR関数で対応しちゃいましょう。

<IFERROR+VLOOKUP関数>

VLOOKUP関数についてまわるエラー。

それが、「#N/A」。

ノーアサインというエラーなのですが、原因は、検索値がない、つまり「検索するものがないので、探すことができない」ので発生するエラーです。

 

C2に設定してある数式を確認しておきましょう。


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

VLOOKUP関数の引数は、次のようになっています。

VLOOKUP関数ダイアログボックスをつかって確認しておきましょう。


検索値がB2。ここに入力した値を次の範囲から検索します。

範囲は、$E$2:$F$7。

商品リストなどが該当します。

見出し行は不要ですので、データの部分だけを範囲選択します。


列番号は、2。

上記で選択した「範囲」の左側から何列目のデータを抽出したらいいのか?という意味です。

今回は、商品名を抽出し表示したいわけですね。

範囲で商品名は2列目にあるので、「2」です。


検索方法は、「FALSE」。

完全一致で値を検索します。


さて、B2に検索する値が入力されれば、エラーは表示されなくなりますが、見積書や請求書など、すべての行を使わない場合は、エラーが表示されてしまいます。


基本的には、IF+VLOOKUP関数というネストで、検索値が空白だったら、空白。

そうでなければVLOOKUP関数という方法もいいのですが、検索値がないものを入力してしまった場合でもエラー「#N/A」が表示されてしまいます。


 

C2の数機は、

=IF(B2="","",VLOOKUP(B2,$E$2:$F$7,2,FALSE))

C2:C6までは、数式をオートフィルでコピーしています。

そのため、C3:C6はエラーが表示されていません。


B列に入力規則のリストをつかって、対象外のものを入力できないようにすれば、IF+VLOOKUP関数でも問題はありませんが、エラーを表示させなくするには、IF関数との組み合わせでは、エラーに対して確実に対応することができません。


そこで、エラーの時に、このような処理をすると支持する関数があります。

それが『IFERROR関数』。


IFERROR+VLOOKUP関数とすれば、検索値が空白であっても、対象外のデータが入力されていたとしても、エラーを非表示にできます。


C2をクリックして、IFERROR関数ダイアログボックスを表示します。


値には、VLOOKUP関数を設定します。


エラーの場合の値は、エラーが発生した時、どうするのかを設定します。

今回は、空白にしたいので、「””(ダブルコーテーション×2)」。


OKボタンをクリックして、数式をオートフィルでコピーします。


C2の数式は、

=IFERROR(VLOOKUP(B2,$E$2:$F$7,2,FALSE),"")

結果を確認してみましょう。


存在しない商品コードを入力しても、エラーは表示されていないことが確認できました。


テキストなどでは、IF関数との組み合わせを紹介したこともあるようで、IF+VLOOKUP関数のネストでエラーを非表示するようにしていますが、IFERROR+VLOOKUP関数という方法もありますので、ケースバイケースでつかっていくといいかもしれませんね。