エクセル ifna | 基本の使い方からiferrorとの違い、エラーを回避する方法まで解説

に投稿

【Excel】エクセルのIFNA関数は、数式の結果が「#N/A」エラーになった場合に、指定した値を返す関数です。XLOOKUP関数やVLOOKUP関数などで検索値が見つからないときに役立ちます。この記事では、IFNA関数の基本構文や使い方、IFERROR関数との違い、実務で活用できる具体例、使用時の注意点をわかりやすく解説します。

エクセル ifna | 基本の使い方からiferrorとの違い、エラーを回避する方法まで解説

IFNA関数とは

IFNA関数は、指定した数式の結果が「#N/A」エラーの場合に、代わりの値を表示するための関数です。検索関数を使用すると、検索対象のデータが見つからない場合に「#N/A」と表示されることがあります。このようなエラーをわかりやすいメッセージに置き換えたいときに、IFNA関数が役立ちます。

例えば、商品コードを検索して商品名を取得する表で、該当するコードが見つからなかった場合に「該当なし」と表示できます。エラー表示をそのまま残すよりも、表の内容を理解しやすくなるでしょう。

IFNA関数の特徴は、すべてのエラーを処理するのではなく、「#N/A」エラーだけを対象にすることです。そのため、数式に別の問題が発生した場合には、エラーを隠さずに確認できます。

IFNA関数の基本構文

IFNA関数の基本構文は、次のとおりです。

=IFNA(値, NAの場合の値)

それぞれの引数には、以下の内容を指定します。

  • 値:エラーかどうかを判定したい数式やセルを指定します。
  • NAの場合の値:「#N/A」エラーが発生したときに返す値を指定します。

例えば、A2セルの値を参照し、「#N/A」エラーが発生した場合に「該当なし」と表示するには、次の数式を入力します。

=IFNA(A2,"該当なし")

A2セルが通常の値であれば、その値がそのまま表示されます。一方、A2セルが「#N/A」エラーの場合は、「該当なし」と表示されます。

なお、IFNA関数は「#N/A」以外のエラーには対応していません。例えば、「#VALUE!」や「#REF!」などのエラーが発生した場合は、そのエラーがそのまま表示されます。

IFNA関数でVLOOKUP関数のエラーを処理する方法

IFNA関数は、VLOOKUP関数と組み合わせることで、検索結果が見つからない場合のエラー表示を簡単に処理できます。

例えば、A列に商品コード、B列に商品名が入力された一覧表があり、D2セルの商品コードから商品名を検索するとします。次の数式を使用すると、該当する商品名を取得できます。

=IFNA(VLOOKUP(D2,A2:B10,2,FALSE),"該当なし")

この数式では、VLOOKUP関数がD2セルの商品コードをA2から検索し、一致するコードが見つかった場合に、同じ行のB列から商品名を返します。

検索値が見つからず「#N/A」エラーが発生した場合は、IFNA関数によって「該当なし」と表示されます。

この方法は、商品管理や顧客情報の検索、社員番号から氏名を取得する処理などに便利です。エラーを適切なメッセージに置き換えることで、Excelの表を見やすく整理できます。

IFNA関数とXLOOKUP関数を組み合わせる方法

XLOOKUP関数とIFNA関数を組み合わせると、検索結果が見つからない場合の表示を柔軟に設定できます。

例えば、A2に商品コード、B2に商品名が入力されている場合、D2セルの商品コードから商品名を検索する数式は次のとおりです。

=IFNA(XLOOKUP(D2,A2:A10,B2:B10),"商品が見つかりません")

この数式では、XLOOKUP関数が検索値に一致する商品コードを探し、対応する商品名を返します。該当する商品コードが存在しない場合には、IFNA関数によって「商品が見つかりません」と表示されます。

ただし、XLOOKUP関数には、検索値が見つからなかった場合に返す値を指定する引数が用意されています。そのため、次のようにIFNA関数を使わずに記述することも可能です。

=XLOOKUP(D2,A2:A10,B2:B10,"商品が見つかりません")

XLOOKUP関数を使用できる環境では、こちらの方法も便利です。一方、別の検索関数や数式で発生する「#N/A」エラーをまとめて処理したい場合には、IFNA関数が役立ちます。

IFNA関数とIFERROR関数の違い

IFNA関数とIFERROR関数は、どちらもエラーが発生した場合に代わりの値を返す関数ですが、処理するエラーの範囲が異なります。

IFNA関数は「#N/A」エラーだけを対象とします。一方、IFERROR関数は「#N/A」「#VALUE!」「#REF!」「#DIV/0!」など、Excelで発生するさまざまなエラーを処理できます。

IFNA関数を使用する場合は、次のように記述します。

=IFNA(A2/B2,"検索結果なし")

この数式では、A2/B2の計算結果が「#N/A」エラーの場合に「検索結果なし」と表示されます。ただし、B2が0であるために「#DIV/0!」エラーが発生した場合は、そのエラーが表示されます。

一方、IFERROR関数を使用すると、次のように記述できます。

=IFERROR(A2/B2,"計算できません")

こちらは「#DIV/0!」を含む各種エラーを処理し、「計算できません」と表示します。

検索結果が見つからない場合だけを処理したいならIFNA関数、幅広いエラーをまとめて処理したいならIFERROR関数を選ぶとよいでしょう。意図しないエラーまで隠してしまわないよう、目的に合わせて使い分けることが大切です。

IFNA関数を使用する際の注意点

IFNA関数を使用するときは、いくつかの注意点があります。

まず、IFNA関数は「#N/A」エラー以外を処理できません。数式に「#VALUE!」や「#REF!」などのエラーが発生している場合は、原因を確認して修正する必要があります。

また、IFNA関数でエラー表示を置き換えても、検索元のデータが自動的に修正されるわけではありません。検索値の入力ミスや、検索対象の表にデータが存在しないことが原因の場合もあります。エラーを非表示にするだけでなく、必要に応じてデータの内容も確認しましょう。

さらに、代わりに表示する値は、利用する目的に合わせて設定することが重要です。「該当なし」「未登録」「データなし」など、利用者が意味を理解しやすい表現を選ぶと、管理表の利便性が高まります。

IFNA関数は、Excel 2013以降のバージョンで利用できます。古いExcel環境との互換性が必要な場合は、使用する関数が対応しているかを確認しておきましょう。

“エクセルのIFNA関数は、検索値が見つからないときなどに発生する「#N/A」エラーを、わかりやすいメッセージに置き換えられる便利な関数です。VLOOKUP関数やXLOOKUP関数と組み合わせれば、商品管理や顧客情報の検索など、さまざまな業務で活用できます。IFERROR関数との違いを理解し、特定のエラーだけを処理したい場合はIFNA関数、幅広いエラーを処理したい場合はIFERROR関数を選びましょう。エラーの原因も適切に確認しながら、見やすく管理しやすいExcelシートを作成してみてください。”