IFNA関数:#N/Aエラー発生時にエラー値の代わりの値を返す

広告

IFNA 関数は Excel で用意されている関数の一つで、指定の値が #N/A エラーとなった場合に、エラー値の代わりに指定した別の値を返します。同じような関数に IFERROR 関数がありますが、 IFERROR 関数はエラーの種類に関係なく別の値を返すのに対して IFNA 案数は #N/A エラーの場合だけに別の値を返します。ここでは Excel における IFNA 関数の使い方について解説します。

(2021 年 09 月 13 日公開 / 2021 年 09 月 13 日更新)

IFNA関数の解説

IFNA 関数は引数に指定した値が #N/A エラーになった場合に、エラー値の代わりに指定した別の値を返します。

IFNA(値、#N/Aエラーの場合の値)

1 番目の引数にエラーかどうかを調べる値または値が入力されているセルを指定します。値が #N/A エラーでなかった場合は値をそのまま返しますが、もしエラーだった場合は 2 番目の引数に指定した値を代わりに返します。なお IFERROR 関数と異なり #N/A エラーだけが対象となります。他のエラーが発生した場合はそのままエラーを返します。

※ IFERROR 関数については「IFERROR関数:エラー発生時にエラー値の代わりの値を返す」を参照されてください。

例えば VLOOKUP 関数や HLOOKUP 関数を実行した場合、引数に指定した値が検索対象の範囲に見つからなかった場合に #N/A エラーが返されます。

=VLOOKUP(B11,B3:D7,2,FALSE)
--> #N/A

#N/A が発生した場合に、 #N/A の代わりに別の値を表示するようにするには IFNA 関数を使って次のように記述します。

=IFNA(VLOOKUP(B11,B3:D7,2,FALSE),"Not Found")
--> Not Found

このように #N/A エラーが発生する可能性がある場合に IFNA 関数を使用することで、エラー値を表示する代わりに指定した任意の文字列を表示させることができます。

※ VLOOKUP 関数については「VLOOKUP関数:指定の列を縦方向に検索し同じ行にある値を取得する」を参照されてください。

IFNA関数のサンプル

それでは実際に IFNA 関数を使ってみます。 Excel のシートに対象の数値を次のように入力しました。

IFNA関数のサンプル(1)

#N/A エラーが発生する状況を試してみるために C11 セルに VLOOK 関数を次のように入力しました。

=VLOOKUP(B11,B3:C7,2,FALSE)

IFNA関数のサンプル(2)

詳しい説明はここでは省略しますが、 B11 セルに入力された値が B3 から B7 までのセルに入力された値に一致するか検索し、見つかった場合は同じ行の商品名を返します。例えば B11 セルに A-03 と入力すると VLOOKUP 関数が入力された C11 には "筆箱" が表示されます。

IFNA関数のサンプル(3)

もし B11 セルに入力された値が B3 から B7 までのセルに入力された値と一致しなかった場合は VLOOKUP 関数が入力された C11 には #N/A が表示されます。

IFNA関数のサンプル(4)

このように関数が返す値として #N/A となる可能性がある場合に、 #N/A の代わりに別の値を表示させたい場合は、 IFNA 関数の最初の引数に #N/A を返す可能性のある関数を指定し、 2 番目の引数に #N/A の代わりに返す文字列を指定します。

では C11 セルに次のように入力しました。

=IFNA(VLOOKUP(B11,B3:C7,2,FALSE),"Not Found")

IFNA関数のサンプル(5)

先ほど同じように B11 セルに入力された値が B3 から B7 までのセルに入力された値に一致するか検索し、見つかった場合は同じ行の商品名を VLOOKUP 関数は返します。 IFNA 関数では 1 番目の引数に指定した関数が #N/A 以外を返した場合はその値をそのまま返すので C11 セルには VLOOKUP 関数が返した値がそのまま表示されます。

IFNA関数のサンプル(6)

もし B11 セルに入力された値が B3 から B7 までのセルに入力された値と一致しなかった場合は VLOOKUP 関数は #N/A を返します。 IFNA 関数では 1 番目の引数に指定した関数が #N/A を返した場合は、代わりに 2 番目の引数に指定した文字列を返すので C11 セルには "Not Found" が表示されます。

IFNA関数のサンプル(7)

このように IFNA 関数を使用することで、 #N/A がセルに入力される可能性がある場合に別の値を代わりに表示させることができます。

関数の挿入を使ってIFNA関数を入力する

IFNA 関数を入力する場合に関数の挿入を使って行う方法を試してみます。関数を挿入するセルをクリックして選択したあとで、関数の挿入をクリックします。

関数の挿入を使ってIFNA関数を入力する(1)

「関数の挿入」ダイアログが表示されたら関数名のところで「IFNA」をクリックしてください。そのあとで「OK」をクリックしてください。

関数の挿入を使ってIFNA関数を入力する(2)

「関数の引数」ダイアログが表示されたら、 1 番目の引数を入力するテキストボックスに "VLOOKUP(B11,B3:C7,2,FALSE)"" と入力しました。

関数の挿入を使ってIFNA関数を入力する(3)

続いて 2 番目の引数を入力するテキストボックスに 1 番目の引数が #N/A エラーになった場合に返す値を入力しました。

関数の挿入を使ってIFNA関数を入力する(4)

最後に「OK」をクリックしてください。最初に選択したセルに IFNA 関数が入力されます。

関数の挿入を使ってIFNA関数を入力する(5)

現在は B11 セルに何も入力されていないので VLOOKUP 関数は #N/A を返し、結果として IFNA 関数は "Not Found" を表示しています。

B11 セルに "A-02" と入力すると VLOOKUP 関数は "消しゴム" を返すので IFNA 関数もそのまま "消しゴム" を返します。

関数の挿入を使ってIFNA関数を入力する(6)

B11 セルに B3:B7 の範囲に存在しない "A-04" のような値を入力すると VLOOKUP 関数は #N/A を返しので、結果として IFNA 関数は "Not Found" を表示しています。

関数の挿入を使ってIFNA関数を入力する(7)

-- --

Excel における IFNA 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。