【Excel】IFERROR関数とIFNA関数の使い分け!Excelのエラー処理で意図しない隠蔽を防ぐ方法

【Excel】IFERROR関数とIFNA関数の使い分け!Excelのエラー処理で意図しない隠蔽を防ぐ方法
🛡️ 超解決

Excelで数式の結果がエラーになった場合、そのまま表示されると見栄えが悪くなります。IFERROR関数やIFNA関数を使えば、エラー発生時に特定の値を表示できます。しかし、これらの関数を誤って使うと、本来確認すべきエラーを見逃す可能性があります。この記事では、IFERROR関数とIFNA関数の違いと、それぞれの適切な使い方を解説します。意図しないエラーの隠蔽を防ぎ、正確なデータ分析を行うための知識を習得できます。

Excelでのエラー処理は、データ分析の正確性を高める上で重要です。特に、IFERROR関数とIFNA関数は、エラー発生時の代替値を指定できる便利な機能です。これらの関数を理解し、適切に使い分けることで、より洗練されたワークシートを作成できます。本記事を読めば、これらの関数を正確に理解し、効果的に活用できるようになるでしょう。

ADVERTISEMENT

IFERROR関数とIFNA関数の基本機能

Excelにおけるエラー処理関数は、数式がエラーを返した場合に、そのエラー値の代わりに指定した値を表示する機能を提供します。

これにより、ワークシートの見た目を整えたり、エラー発生時の代替処理を定義したりできます。IFERROR関数とIFNA関数は、このエラー処理を行う代表的な関数です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

IFERROR関数とIFNA関数の違いと仕組み

IFERROR関数とIFNA関数は、どちらも数式のエラーを捕捉して代替値を表示する機能を持っています。しかし、捕捉するエラーの種類に違いがあります。

この違いを理解することが、適切な使い分けの鍵となります。

IFERROR関数が捕捉するエラー

IFERROR関数は、Excelで発生するほぼ全てのエラー値を捕捉します。これには、#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL! などが含まれます。

数式の結果がこれらのいずれかのエラーになった場合、IFERROR関数は指定された代替値を返します。そのため、汎用的なエラー処理に適しています。

IFNA関数が捕捉するエラー

IFNA関数は、IFERROR関数よりも限定的なエラーのみを捕捉します。具体的には、#N/Aエラーのみを対象とします。

#N/Aエラーは、主にVLOOKUP関数、HLOOKUP関数、MATCH関数、XLOOKUP関数などが、検索対象のデータを見つけられなかった場合に発生します。IFNA関数は、この#N/Aエラーに特化した処理を行いたい場合に利用します。

IFERROR関数とIFNA関数の使い分け

IFERROR関数とIFNA関数のどちらを使うべきかは、どのようなエラーを処理したいかによって決まります。

それぞれの関数が適している状況を理解することが重要です。

IFERROR関数が適しているケース

IFERROR関数は、数式から発生する可能性のあるあらゆる種類のエラーをまとめて処理したい場合に有効です。例えば、複数の関数が組み合わさった複雑な数式や、外部データソースからの参照など、予期しないエラーが発生しやすい状況で利用します。

「エラーが発生したら、とにかく『データなし』と表示したい」といった、エラーの種類を問わない一括処理を行いたい場合に最適です。

IFNA関数が適しているケース

IFNA関数は、特に検索関数で「データが見つからない」という#N/Aエラーのみを区別して処理したい場合に推奨されます。例えば、VLOOKUP関数で商品コードを検索し、商品コードが存在しない場合にのみ「該当なし」と表示したい場合などです。

他の種類のエラー(例: #DIV/0!)は、データの問題ではなく数式の誤りを示唆している場合があるため、それらはそのまま表示させて、原因究明に役立てたいという意図がある場合に適しています。

ADVERTISEMENT

IFERROR関数を使ったエラー処理の手順

IFERROR関数は、数式全体をその関数で囲むことで適用します。以下に具体的な手順を示します。

  1. エラー処理したい数式を作成する
    例えば、セルA1をB1で割る数式「=B1/A1」を作成します。A1が0の場合、#DIV/0!エラーが発生します。
  2. IFERROR関数で数式を囲む
    作成した数式「=B1/A1」をIFERROR関数で囲み、エラー発生時の代替値として「0」を指定します。数式は「=IFERROR(B1/A1, 0)」となります。
  3. Enterキーで確定する
    数式を入力したセルに、エラー値の代わりに指定した代替値が表示されます。

IFNA関数を使ったエラー処理の手順

IFNA関数も、IFERROR関数と同様に、エラー処理したい数式を関数で囲んで適用します。以下に手順を示します。

  1. #N/Aエラーが発生する可能性のある数式を作成する
    例えば、セルA1にある商品コードを、範囲B1:C5から検索する数式「=VLOOKUP(A1, B1:C5, 2, FALSE)」を作成します。A1の商品コードがB1:B5に見つからない場合、#N/Aエラーが発生します。
  2. IFNA関数で数式を囲む
    作成した数式「=VLOOKUP(A1, B1:C5, 2, FALSE)」をIFNA関数で囲み、#N/Aエラー発生時の代替値として「商品コードが見つかりません」と表示させます。数式は「=IFNA(VLOOKUP(A1, B1:C5, 2, “商品コードが見つかりません”))」となります。
  3. Enterキーで確定する
    数式を入力したセルに、#N/Aエラーの代わりに指定した代替値が表示されます。

意図しないエラーの隠蔽を防ぐための注意点

IFERROR関数やIFNA関数は便利ですが、使い方を誤ると問題が発生する可能性があります。特に、エラーを安易に隠蔽してしまうことには注意が必要です。

以下に、注意すべき点を挙げます。

IFERROR関数による他のエラーの隠蔽

IFERROR関数は、#N/Aエラーだけでなく、#VALUE!、#REF!、#DIV/0!などの他のエラーもすべて代替値に置き換えてしまいます。これにより、数式の本来の問題点やデータ上の異常を見逃す可能性があります。

例えば、本来「0」で割ってはいけないデータがあるのに、IFERROR関数で#DIV/0!エラーを「0」に置き換えてしまうと、そのデータ上の問題に気づけなくなります。これは、データ分析の精度を低下させる原因となります。

IFNA関数で#N/A以外のエラーを見逃す

IFNA関数は#N/Aエラーに特化しているため、それ以外のエラーはそのまま表示されます。これは意図した動作ですが、もし検索関数以外で発生したエラーもまとめて処理したい場合には、IFNA関数だけでは対応できません。

意図しないエラーが数式内に潜んでいる場合、IFNA関数ではそれらを隠蔽しないため、原因究明には役立ちますが、エラー処理の目的によっては不十分となることがあります。

エラー発生時の代替値の選択

エラー発生時に表示する代替値は、そのデータが持つ意味を考慮して慎重に選択する必要があります。単に空白にする、0にする、あるいは「エラー」と表示するだけでは、後でその意味を理解できなくなる可能性があります。

例えば、検索で見つからなかった場合に「該当なし」と表示するのは適切ですが、計算結果がエラーになった場合に「0」と表示すると、本来「0」であるべき結果と区別がつかなくなることがあります。代替値は、その値が何を意味するのかを明確にするものであるべきです。

IFERROR関数とIFNA関数の比較表

両関数の違いを、以下の表にまとめました。

項目 IFERROR関数 IFNA関数
捕捉するエラーの種類 ほぼ全てのエラー (#N/A, #VALUE!, #REF!, #DIV/0! など) #N/Aエラーのみ
主な用途 汎用的なエラー処理、エラーの包括的な隠蔽 検索関数における「見つからない」エラーの特定処理
長所 幅広いエラーに対応でき、簡潔に記述できる #N/Aエラーを明確に区別して処理できる
短所 他の種類のエラーを見逃す可能性がある #N/A以外のエラーには対応できない
代替値の指定 エラー発生時に表示する値を指定 #N/Aエラー発生時に表示する値を指定

まとめ

IFERROR関数とIFNA関数は、Excelでのエラー処理を効率化する強力なツールです。IFERROR関数はあらゆる種類のエラーを、IFNA関数は#N/Aエラーのみを捕捉します。

これらの関数を適切に使い分けることで、ワークシートの可読性を向上させ、データ分析の精度を高めることができます。エラーを隠蔽しすぎず、必要なエラーは適切に表示させるバランス感覚が重要です。今後は、これらの関数を状況に応じて使い分け、より堅牢なExcelファイルを作成することを目指しましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】