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

【Excel】「#N/A」エラーは想定内だから表示させたくない!VLOOKUP関数を使ったエクセル表で必須のエラー処理テク

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

 Excelを使った業務で、VLOOKUP関数を使用して資料を作ったことはありませんか。VLOOKUP関数は、指定したデータリストから検索条件に合うデータを探してきてくれる関数で、データ入力の効率化を手助けしてくれる便利な関数ですよね。

 しかしながら、このVLOOKUP関数を使って作成した資料に「#N/A」というエラーが表示されて(①)、困ったことのある読者は案外多いのではないでしょうか。

「#N/A」エラーは、数式が参照している値が見つからない時などに表示されるエラーで、VLOOKUP関数を使った数式でよく見かけることがあります。今回は、この「#N/A」エラーが発生する理由とその対処法について解説します。VLOOKUP関数はとても便利な関数なので、エラー処理とセットで覚えておくことをお勧めします。

どんな時に「#N/A」エラーが出るの?

 まず、VLOOKUP関数を使った数式を入力しながら、どんな時に「#N/A」エラーが表示されるのかを見ていきましょう。

 例として、次のような見積書([見積書]シート)と、商品情報が記載されているシート([商品カタログ]シート)を別々のシートで管理している業務があるとします。VLOOKUP関数を使うと、見積書に入力した「商品番号」をもとに[商品カタログ]シートの「商品カタログ表」を検索(①)し、「商品名」などの情報を自動的に抜き出して表示(②)することができます。

 VLOOKUP関数は、「=VLOOKUP(検索値,範囲,列番号,検索方法)」という書式で使います。この書式を使ってセルに数式を入力していきましょう。

 [見積書]シートのセルB8に、VLOOKUP関数を使って数式を入力します。1つ目の引数には、検索する値(ここでは「A-002」と入力されたセルA8)(③)を指定し、2つ目の引数には、検索する範囲(ここでは[商品カタログ]シートのセル範囲A4:C12)(④)を指定します。あとで、この数式をほかのセルにコピーしても値がずれないように、セル範囲は「$A$4:$C$12」のように絶対参照で指定します。3つ目の引数には、検索範囲のどの列のデータを取り出すかを列番号で指定します。ここでは左から2つ目の列([商品カタログ]シートの「商品名」列)からデータを取り出したいので「2」(⑤)と指定しています。最後の引数で指定した「FALSE」(⑥)は、「完全に一致するデータを取り出す」という意味です。

 数式の入力ができたら、[Enter]キーを押して入力内容を確定します。セルA8に入力された「A-002」に該当する商品名「クラフト封筒 長形4号 100枚セット」が(⑦)自動的に表示されましたね。

 この数式をB列のほかのセルにもコピーしましょう。オートフィルを使って、セルB8に入力した数式をセルB13までコピーします(⑧)。

 すると、「#N/A」エラー(⑨)がずらりと表示されました!

 「#N/A」エラーが発生しているセルの1つ(セルB9)をクリックして、数式を確認してみましょう。セルB9には、「=VLOOKUP(A9,商品カタログ!$A$4:$C$12,2,FALSE)」(⑩)という数式が入力されています。でも、この数式で参照しているセルA9(⑪)は空欄になっていますよね。参照しているセルに値がないという理由で、「#N/A」エラーが発生しているのです。

 ここまでの解説で、エラーが発生する理由はわかってもらえたと思いますが、今回の例のように、A列にデータが入力されていなくても、B列には数式だけ入力しておきたいというようなケースってありますよね。次の項では、このような時に知っていると役立つエラー処理のテクニックを解説します。

IFERROR関数を使って「#N/A」エラーを表示させないようにする

 今回のような場合に、エラーを表示させないようにする方法はいくつかありますが、今回はIFERROR関数を使ったやり方を解説します。

 IFERROR関数は、数式にエラーがあった場合に表示する値を指定できる関数で、次の書式で記述します。

 この書式に従って、数式を作成していきましょう。セルB8に「=IFERROR(VLOOKUP(A8,商品カタログ!$A$4:$C$12,2,FALSE),"")」(①)と入力します。これは、1つ目の引数で指定した「VLOOKUP(A8,商品カタログ!$A$4:$C$12,2,FALSE)」(②)という数式でエラーが発生した場合、2つ目の引数で指定した「""」(③)を表示する、つまり何も表示しないという意味になります。

 なお、現状セルB8にエラーは発生していませんが、B列のすべてのセルに同じ数式を入力したいので、このように記述します。

 数式の入力ができたら、[Enter]キーを押して入力内容を確定します。セルB8ではエラーが発生しているわけではないため、先ほどと同様、「クラフト封筒 長形4号 100枚セット」(④)が表示されます。

 この数式をB列のほかのセルにもコピーしましょう。オートフィルを使って、セルB8に入力した数式をセルB13までコピーします(⑤)。

 「#N/A」エラーは表示されなくなりましたね(⑥)。

「#N/A」エラーはIFERROR関数で非表示にする

 今回は、VLOOKUP関数を使った数式で、「#N/A」エラーが表示される理由とそれを表示させないようにする方法について解説しました。VLOOKUP関数は、Excelを使った事務処理で定番の関数です。ぜひエラー処理とセットで覚えておいてくださいね!

Windows 7マシン乗り換えの時。新PCはExcel作業効率が上がるものを!

 Windows 7のサポート終了が迫っている。どうせ買い替えるなら業務効率化を狙ってパソコンを買い替えよう! ExcelやPowerPointを使った作業が一気に快適になるパソコンのスペックを確認!

今月のExcelTips