IFNA関数 ● 「#N/A」エラーの場合に表示する値を指定する

[Excel 2013以降]

Excelの IFNA(イフ・エヌ・エー)関数の使い方を紹介します。

IFNA関数を使うと、VLOOKUP関数などの検索で値が見つからないときに出る「#N/A」エラーのエラー対策を行えます。

スポンサーリンク

書式

「#N/A」エラーの場合に表示する値を指定する
=IFNA(, エラーの場合の値)

]に「#N/A」エラーが出る場合に、エラー値の代わりに[エラーの場合の値]を返します。[]に「#N/A」エラーが出ない場合は、[]がそのまま返されます。

引数

引数 説明
エラー対策の対象となる式を指定する。
エラーの場合の値 ]が「#N/A」エラーになる場合に、エラー値「#N/A」の代わりに表示する値を指定する。

なお、IFNA関数で認識されるエラーは「#N/A」エラーだけです。[]に指定した式に「#N/A」以外のエラーが出る場合は、そのエラー値が返されます。

使用例1…VLOOKUP関数で検索値が見つからない場合に「該当なし」を表示する

図1を見てください。B列の「選手名」欄とC列の「年齢」欄にVLOOKUP関数が入力されており、A列の「No」に対応する選手名と年齢が「登録メンバー」表から検索されています。

「登録メンバー」表の「No」が「4」に対応する年齢は「#VALUE!」エラーになっているので、セルC4のVLOOKUP関数の結果も「#VALUE!」エラーになります。
また、セルA5に入力した「99」は「登録メンバー」表に存在しないので、セルB5とセルC5のVLOOKUP関数の結果は「#N/A」エラーになります。

=VLOOKUP(検索値, 範囲, 列番号, [検索の型])

セルB3 | =VLOOKUP(A3,$E$3:$H$7,2,FALSE)

セルC3 | =VLOOKUP(A3,$E$3:$H$7,4,FALSE)

図1 セルB3とセルC3にVLOOKUP関数を入力して、表の下端までのセルにコピーしたところ、セルC4に「#VALUE!」エラーが、セルB5とセルC5に「#N/A」エラーが表示された。

IFNA関数を使えば、図2のように「#N/A」エラーのセルに「該当なし」のような任意の文字を表示できます。引数[]に、元々セルに入力されていた VLOOKUP関数を指定します。[エラーの場合の値]に「"該当なし"」を指定します。

=IFERROR(, エラーの場合の値)

セルB3 | =IFNA(VLOOKUP(A3,$E$3:$H$7,2,FALSE),"該当なし")

セルC3 | =IFNA(VLOOKUP(A3,$E$3:$H$7,4,FALSE),"該当なし")

図2 セルB3とセルC3にIFNA関数を入力し直して、表の下端までのセルにコピーすると、セルB5とセルC5に「#N/A」エラーの代わりに「該当なし」が表示される。セルC4の「#VALUE!」は消えない。

IFNA関数で対処できるのは「#N/A」エラーだけなので、「#N/A」以外のエラーはそのまま表示されます。「#N/A」以外のエラーも一律に対処したい場合は、IFNA関数ではなく IFERROR関数を使用してください。また、「#N/A」エラーと「#N/A」以外のエラーを区別して対処したい場合は、次項を参照してください。

使用例2…「#N/A」エラーと「#N/A」以外のエラーを区別して対処する

IFNA関数とIFERROR関数を使うと、「#N/A」エラーと「#N/A」以外のエラーを区別してエラー対策が行えます。図3では、「#N/A」エラーの場合に「該当なし」、「#N/A」以外のエラーの場合に「要確認」と表示しています。
ポイントは、ネストの内側にIFNA関数を入れて、先に「#N/A」エラーの対処をすることです。IFERROR関数を先に実行してしまうと、「#N/A」エラーがほかのエラーと同様の処理になってしまうので注意してください。

セルC3 | =IFERROR(IFNA(VLOOKUP(A3,$E$3:$H$7,4,FALSE),"該当なし"),"要確認")

図3 セルC3に図の数式を入力し直して、表の下端までのセルにコピーする。セルC4では、「#VALUE!」の代わりに「要確認」が表示され、セルC5では「#N/A」の代わりに「該当なし」が表示される。

スポンサーリンク

関連記事