いまさら聞けないExcelの使い方講座

【Excel】「#N/A」エラーは意図通りなので非表示にしたい!データ入力の頼れる相棒VLOOKUP関数を使いこなすためのエラー処理2選

「#N/A」エラーが表示されるのはなぜ?

 Excelの業務で、データ入力の効率化を手助けしてくれるVLOOKUP関数(指定したデータリストから検索条件に合うデータを探してきてくれる関数)は、頼れる相棒のような存在ですよね。しかしながら、このVLOOKUP関数を使って作成した資料に「#N/A」というエラーが表示されて困った経験はありませんか。

 「#N/A」エラーは、数式の参照先に値が見つからない時などに表示されるエラーで、VLOOKUP関数を使った数式でよく見かけることがあります。

 そこで今回は、VLOOKUP関数を使った表でよく見かける「#N/A」エラーが発生する理由とその対処法について解説します。VLOOKUP関数自体はとても便利な関数なので、エラー処理とセットで覚えておくと、よりスムーズに活用できますよ!

VLOOKUP関数で「#N/A」エラーが出る時とは?

 どんな時に「#N/A」エラーが発生するのかを考える前に、まずVLOOKUP関数について解説します。例として、「請求書」のA列に入力された商品番号(①)を基に、右側の「商品カタログ」(②)から商品名を取り出してB列(③)に自動的に表示されるようにしてみましょう(わかりやすくするために、同一のシートに「請求書」と「商品カタログ」を作成していますが、「商品カタログ」のようなデータリストは別のシートで管理されていることもあります)。

 VLOOKUP関数は、「=VLOOKUP(検索値,範囲,列番号,検索方法)」という書式で記述します。少し複雑ですが、実際にセルに入力しながら説明していきます。

 セルB3に「=VLOOKUP(A3,$G$3:$I$10,2,FALSE)」(④)と入力します。この数式により、商品カタログ(セル範囲G3:I10)からセルA3の値に合致するデータを検索して、2番目の列の値(商品名)を取り出して表示することができます。最後の引数で指定した「FALSE」は、「完全に一致するデータを取り出す」という意味です。また、セルB3に入力した数式をコピペした時に参照範囲がずれないように、「$G$3:$I$10」のように絶対参照で指定しています。

 [Enter]キーを押して数式を確定します。セルA3に入力されている商品番号「A101」に該当する商品名「クラフト封筒 長形3号 100枚セット」(⑤)が自動的に表示されました。

 ここで、B列の他のセルにも数式をコピーしてみます。セルB3を選択してセルの右下にマウスポインターを合わせると、マウスポインターの形が変わるので(⑥)、そのままセルB7までドラッグします(⑦)。

 すると「#N/A」エラーが出てしまいましたね(⑧)。

ここでセルB4をクリックして、数式を確認してみます。セルB4には、「=VLOOKUP(A4,$G$3:$I$10,2,FALSE)」(⑨)という数式が入力されていますが、数式で参照しているセルA4(⑩)には値がありません。そのため、このような「#N/A」エラーが発生しているのです。

 しかしながら、実務ではA列にデータが入力されていなくてもB列だけには数式を入力しておきたいという場合がありますよね。以降の項では、こんな時に使えるエラー処理のテクニックを解説していきます。

対処法1:IFERROR関数を使う

 まず1つ目は、IFERROR関数を使って対処する方法です。IFERROR関数は数式の結果にエラーが発生した場合にどのように表示するかを指定できる関数で、「=IFERROR(値,エラーの場合の値)」という書式で記述します。

 セルB3に「=IFERROR(VLOOKUP(A3,$G$3:$I$10,2,FALSE),"")」(①)と入力します(セルB3にはエラーは出ていませんが、B列のすべてのセルに対してIFERROR関数を適用します)。この式は「『VLOOKUP(A3,$G$3:$I$10,2,FALSE)』の計算結果がエラーだった場合は何も表示しない」という意味です。

 [Enter]キーを押して数式を確定すると、先ほどと同様に「クラフト封筒 長形3号 100枚セット」(②)という結果が表示されます。

 B列の他のセルにもこの数式をコピーします。セルB3を選択してセルの右下にマウスポインターを合わせるとマウスポインターの形が変わるので(③)、そのままドラッグします(④)。

 すると、先ほどのエラーが消えました(⑤)。

対処法2:IF関数を使う

 2つ目は、IF関数を使って対処する方法です。IF関数は、条件によって表示する内容を変えたい時に使用する関数で、「IF(論理式,真の場合,偽の場合)」という書式で記述します。

 先ほどと同じ例を使って、今度はセルB3に「=IF(A3="","",VLOOKUP(A3,$G$3:$I$10,2,FALSE))」(①)と入力します。この式は「セルA3が空欄なら何も表示せず、空欄でなければ『VLOOKUP(A3,$G$3:$I$10,2,FALSE)』を実行する」という意味です。

 [Enter]キーを押して数式を確定すると、「クラフト封筒 長形3号 100枚セット」(②)という結果が表示されます。

 この数式をB列の他のセルにも数式をコピーしてみます。セルB3を選択してセルの右下にマウスポインターを合わせるとマウスポインターの形が変わるので(③)、そのままドラッグします(④)。

 すると、エラーが消えました(⑤)。

「#N/A」エラーに対処する

 今回は、「#N/A」エラーが発生する理由とその対処法について解説しました。適切なエラー処理を記述できれば、より美しい資料に仕上がります。

 また、今回の例で使ったVLOOKUP関数は、データ入力を効率化できるとても便利な関数なので、IF関数やIFERROR関数とセットで覚えておくと、よりスムーズに活用できますよ! ぜひトライしてみてくださいね。

今月のExcelTips