[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)
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),"該当なし")
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」エラーがほかのエラーと同様の処理になってしまうので注意してください。