【Excel】IFERRORとIFNAの違いと使い分け

【Excel】IFERRORとIFNAの違いと使い分け
🛡️ 超解決

Excelで数式を組んでいると、意図しないエラーが表示されて困ることがあります。エラー表示が乱雑だと、シートの可読性が下がり、業務効率の低下につながります。この記事では、Excelのエラー処理関数であるIFERROR関数とIFNA関数の違いを理解し、状況に応じた適切な使い分けで、見やすいシートを作成する方法を解説します。

それぞれの関数の特性を知ることで、データ検索や計算におけるエラー表示を効果的に制御できるようになります。

【要点】IFERROR関数とIFNA関数を状況に応じて使い分ける

  • IFERROR関数: すべてのExcelエラーを捕捉し、指定した値に置き換えることができます。
  • IFNA関数: #N/Aエラーのみを捕捉し、指定した値に置き換えることができます。
  • 使い分けのポイント: エラーの種類を明確にしたい場合や、#N/Aエラーに特化して処理したい場合にIFNA関数が有効です。

ADVERTISEMENT

Excelのエラー表示とIFERROR・IFNA関数の基本

Excelでは、数式の計算結果が正しくない場合やデータが見つからない場合に、さまざまなエラーメッセージが表示されます。これらのエラーは、数式の問題点を示す重要な情報ですが、そのまま表示されるとシートが見にくくなることがあります。IFERROR関数とIFNA関数は、これらのエラーを捕捉し、代わりに指定した値を表示することで、シートの可読性を高めるために使われます。

Excelで表示される主なエラーの種類

代表的なエラーには、以下のようなものがあります。

  • #DIV/0!: ゼロで除算したときに発生するエラー。
  • #VALUE!: 数式の引数に正しくない種類の値が指定されたときに発生するエラー。
  • #REF!: セル参照が無効になったときに発生するエラー。
  • #N/A: 利用できる値がないときに発生するエラー。VLOOKUP関数やXLOOKUP関数で検索値が見つからない場合によく表示されます。
  • #NAME?: Excelが数式中の文字列を認識できないときに発生するエラー。
  • #NUM!: 数値が無効なときに発生するエラー。
  • #NULL!: 相互に交差しない2つの範囲の交点を指定したときに発生するエラー。

IFERROR関数の概要

IFERROR関数は、数式がエラーを返す場合に、指定した値を返す関数です。あらゆる種類のエラー(#DIV/0!, #VALUE!, #N/A!など)に対応できる汎用性の高さが特徴です。数式の形式は=IFERROR(値, エラーの場合の値)となります。この関数はExcel2007以降で利用できます。

IFNA関数の概要

IFNA関数は、数式が#N/Aエラーを返す場合にのみ、指定した値を返す関数です。特にVLOOKUP関数やXLOOKUP関数などで、検索値が見つからないときに発生する#N/Aエラーの処理に特化しています。数式の形式は=IFNA(値, #N/Aの場合の値)となります。この関数はExcel2013以降で利用できます。

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

IFERROR関数とIFNA関数の使い方と具体例

ここからは、それぞれの関数を具体的なケースでどのように使うのかを解説します。

IFERROR関数の実際使用手順

IFERROR関数は、さまざまな種類のエラーを処理できます。ここでは、いくつかの代表的なエラー処理の例を示します。

  1. ゼロ除算エラーの処理
    セルA1に数値100、セルB1に数値0が入力されているとします。セルC1に=A1/B1と入力すると、#DIV/0!エラーが表示されます。このエラーを「0で除算できません」というメッセージに置き換えたい場合の手順です。
    1. セルC1を選択します。
    2. 数式バーに=IFERROR(A1/B1, "0で除算できません")と入力します。
    3. Enterキーを押します。セルC1には「0で除算できません」と表示されます。
  2. データ型不一致エラーの処理
    セルA2に数値100、セルB2に文字列「abc」が入力されているとします。セルC2に=A2+B2と入力すると、#VALUE!エラーが表示されます。このエラーを「データエラー」というメッセージに置き換えたい場合の手順です。
    1. セルC2を選択します。
    2. 数式バーに=IFERROR(A2+B2, "データエラー")と入力します。
    3. Enterキーを押します。セルC2には「データエラー」と表示されます。
  3. VLOOKUP関数でのエラー処理
    商品IDと商品名の一覧表があり、VLOOKUP関数で商品名を検索します。検索値が見つからない場合は#N/Aエラーが表示されます。このエラーを「商品なし」というメッセージに置き換えたい場合の手順です。
    1. たとえば、セルE1に検索したい商品ID「999」を入力し、セルF1に結果を表示するとします。
    2. セルF1を選択し、数式バーに=IFERROR(VLOOKUP(E1,A1:B10,2,FALSE), "商品なし")と入力します。A1:B10は商品IDと商品名の一覧表の範囲です。
    3. Enterキーを押します。もし商品ID「999」が一覧にない場合、セルF1には「商品なし」と表示されます。

IFNA関数の実際使用手順

IFNA関数は、#N/Aエラーに特化した処理を行います。これは、検索関数でデータが見つからない場合によく活用されます。

  1. VLOOKUP関数での#N/Aエラー処理
    前述のVLOOKUP関数の例で、検索値が見つからない場合の#N/Aエラーを「商品なし」と表示したい場合の手順です。IFNA関数を使うと、#N/Aエラーのみを対象に処理できます。
    1. セルE2に検索したい商品ID「888」を入力し、セルF2に結果を表示するとします。
    2. セルF2を選択し、数式バーに=IFNA(VLOOKUP(E2,A1:B10,2,FALSE), "商品なし")と入力します。
    3. Enterキーを押します。もし商品ID「888」が一覧にない場合、セルF2には「商品なし」と表示されます。
  2. XLOOKUP関数での#N/Aエラー処理(Excel for Microsoft 365, Excel 2021向け)
    XLOOKUP関数も、検索値が見つからない場合は#N/Aエラーを返します。このエラーを「該当なし」というメッセージに置き換えたい場合の手順です。XLOOKUP関数にはエラー処理の引数があるため、通常はIFNA関数との併用は稀です。
    1. セルE3に検索したい商品名「りんご」を入力し、セルF3に結果を表示するとします。検索範囲は商品名がB列、価格がC列とします。
    2. セルF3を選択し、数式バーに=IFNA(XLOOKUP(E3,B1:B10,C1:C10), "該当なし")と入力します。
    3. Enterキーを押します。もし商品名「りんご」が一覧にない場合、セルF3には「該当なし」と表示されます。

    補足: XLOOKUP関数自体に「見つからない場合」の引数があるため、=XLOOKUP(E3,B1:B10,C1:C10,"該当なし")のようにIFNA関数を使わずにエラー処理が可能です。IFNA関数は、他の関数と組み合わせて#N/Aエラーのみを処理したい場合に有用です。

IFERROR・IFNA関数使用時の注意点と失敗例

エラー処理関数は便利ですが、誤った使い方をすると意図しない結果を招くことがあります。ここでは、よくある失敗例とその対処法を解説します。

IFERROR関数で意図せぬエラーまで隠してしまう

原因: IFERROR関数はすべてのエラー種類を捕捉するため、#N/A以外の論理的な誤りや参照エラーなど、本来修正すべきエラーまで非表示にしてしまう可能性があります。これにより、問題の発見が遅れることがあります。

対処: 検索関数(VLOOKUP関数、XLOOKUP関数など)の結果のみを処理したい場合は、#N/Aエラーに特化したIFNA関数を使用することを検討してください。これにより、他の種類のエラーはそのまま表示され、問題の特定に役立ちます。また、デバッグ中はIFERROR関数を一時的に外し、元々のエラーを確認することも有効です。

IFNA関数が#N/A以外のエラーに対応できない

原因: IFNA関数は#N/Aエラー専用のため、#DIV/0!や#VALUE!などのエラーが発生しても、それらを処理せずにそのまま表示してしまいます。これにより、シートに複数の種類のエラーが混在して表示されることがあります。

対処: #N/Aエラーだけでなく、複数の種類のエラーを処理したい場合は、IFERROR関数を使用します。ただし、前述の通り、意図しないエラーを隠蔽しないよう注意が必要です。場合によっては、エラーの種類ごとにIF関数とISERROR関数、ISNA関数を組み合わせる複雑な数式も検討できますが、可読性が低下する可能性もあります。

古いExcelバージョンで関数が使用できない

原因: IFERROR関数はExcel2007以降、IFNA関数はExcel2013以降で導入された新しい関数です。そのため、それ以前のバージョンのExcelではこれらの関数は利用できません。

対処: 古いバージョンのExcelを使用している場合は、IF関数とISERROR関数、またはIF関数とISNA関数を組み合わせてエラー処理を実現します。例えば、IFERROR関数の代替として=IF(ISERROR(A1/B1), "エラー", A1/B1)のように記述します。IFNA関数の代替としては=IF(ISNA(VLOOKUP(E1,A1:B10,2,FALSE)), "商品なし", VLOOKUP(E1,A1:B10,2,FALSE))のような数式になります。

ADVERTISEMENT

IFERROR関数とIFNA関数の機能比較

項目 IFERROR関数 IFNA関数
対応するエラーの種類 すべてのエラー(#N/A, #DIV/0!, #VALUE!など) #N/Aエラーのみ
Excel対応バージョン Excel2007以降 Excel2013以降
汎用性 高い(あらゆるエラーを処理できる) 限定的(#N/Aエラーに特化)
主な用途 計算結果や参照で発生する広範なエラーを隠す VLOOKUP関数やXLOOKUP関数などの検索エラーを処理する
メリット 簡単な記述で多様なエラーを処理できる #N/Aエラー以外の問題を検出しやすい
デメリット 意図しないエラーまで隠蔽するリスクがある #N/A以外のエラーには対応できない

まとめ

IFERROR関数とIFNA関数は、Excelでのエラー処理を効率化する強力な機能です。すべてのエラーを包括的に処理したい場合はIFERROR関数を、データ検索の結果に特化して#N/Aエラーのみを処理したい場合はIFNA関数を選ぶことで、より明確で分かりやすいシートを作成できます。

それぞれの関数の特性と対応バージョンを理解し、適切な場面で活用することで、あなたのExcelスキルはさらに向上します。ぜひ、今回の知識を活かして、業務で遭遇するエラーをスムーズに処理し、シートの品質を高めてください。

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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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