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関数という方法もありますので、ケースバイケースでつかっていくといいかもしれませんね。