Excel IFERROR 関数の使い方
IFERROR(イフエラー)は、計算が正常ならその結果を返し、エラーなら代わりの値を返す Excel(エクセル)の関数です。#N/A や #DIV/0! をレポートから外すいちばん手早い方法ですが、本当の不具合まで隠してしまうこともあります。使いどころと注意点を、例題と練習問題で身につけましょう。
IFERROR 関数の構文と引数
IFERROR はエラー処理のヒューズです。値が正常ならその結果を返し、エラーになった瞬間に指定した代わりの値を返します。
調べる数式や式です(例:C2/B2、VLOOKUP(E2, A2:C6, 3, FALSE))。#N/A・#DIV/0!・#VALUE!・#REF!・#NAME?・#NUM! など、どの種類のエラーも拾います。
エラーのときに返す値です。ダブルクォーテーションの文字("Not found")、数値、空白("")、別の数式も使えます。省略すると、エラーは空白のセルとして表示されます。
どのエラーを拾えますか?
- #N/A — 検索関数が見つからない(VLOOKUP・XLOOKUP・MATCH の不一致)
- #DIV/0! — 0 または空白セルで割ったとき
- #VALUE! — 引数の型が合わない(文字に対して計算するなど)
- #REF! — 参照先のセルが削除された——構造の破損なので、IFERROR で隠すのは慎重に
- #NAME? — 関数名や名前のつづり違い(例:=VLOKUP(…))
定番の組み合わせ:除算の保険と検索のフォールバック
除算は #DIV/0! のもっとも多い原因です。数量が 0 や空白だとエラーになります。なお、合計が 0 は正当な数値です(0 ÷ 5 = 0)。IFERROR はそれを変えません。
検索の不一致には IFERROR より IFNA のほうが正確です。#N/A だけを置き換え、#REF! のような構造エラーはそのまま残します。XLOOKUP なら4つ目の引数で =XLOOKUP(E2, A2:A6, C2:C6, "Not found") と書けます。
3つの道具の役割:IFNA / IFERROR / ISNA
IFNA
メス。#N/A(見つからない)だけを置き換え、ほかのエラーはそのまま——検索のフォールバックの第一候補です。本当の不具合を静かに隠せません。
IFERROR
ヒューズ。すべてのエラーを拾えて手軽ですが、#REF! のような本当の破損も "Not found" になってしまいます。レポートを出す直前の最後の守りとして使うのが向いています。
ISNA / ISERROR
監査役。置き換えず、報告だけします。=ISNA(VLOOKUP(…)) は TRUE/FALSE を返し、監査列・条件付き書式・=SUMPRODUCT(--ISNA(range)) の集計に向きます。
よくある誤りと注意点
- 問題を隠してしまう — IFERROR はすべてを隠します。=IFERROR(VLOOKUP(…), "") は、列削除の #REF! まで空白にしてしまい、レポートが静かに間違ったままになります。先に IFNA や IF で具体条件を見てから、ヒューズをかけます。
- 構文エラー — 構文エラーは救えません。括弧の不足、引用符の抜け、区切り文字の誤りなど、数式が評価されない段階では IFERROR は動きません。まず構文を直します。
- 範囲をまとめて包む — 範囲全体をむやみに包まないでください。どこが壊れているかの手がかりが消えます。調査中は ISERROR / ISNA で印を付け、直してから包みます。
トラブルシュート:数式が計算されない・文字のまま表示される4つの原因
Excel や Google スプレッドシートが数式を普通の文字として表示する(画面に =SUM(A1:A5) が出る)ときや、値が自動更新されないときは、数式が計算段階に入っていないため IFERROR は助けになりません。次の4つを確認してください。
1. セルの表示形式が「文字列」になっている
数式を入れる前に文字列形式だと、Excel はそれをただの文字として扱います。対処:「標準」や「数値」に戻し、セルを選んで F2 → Enter で再計算します。
2. 「数式の表示」モードがオンになっている
シート全体の数式がいきなり見えるときは、Ctrl + `(バッククォート)か、「数式」タブの「数式の表示」をオフにします。
3. ブックの計算方法が「手動」になっている
「数式」→「計算方法の設定」が手動になっていないか確認し、「自動」に戻します(または F9 で再計算)。
4. 等号の前に余分なスペースがある
先頭に空白があると(例:" =A1+B1")、Excel は文字として扱います。先頭の空白を消すと計算が戻ります。
関連する練習問題
ゼロ除算、検索の不一致、ISNA による監査など、エラー処理の一連を実際の場面で練習しましょう。
よくある質問
Excel の IFERROR 関数は何をする関数ですか?
=IFERROR(値, エラーの場合の値) は、まず値を計算して結果を返します。#N/A・#DIV/0!・#VALUE!・#REF!・#NAME? などのエラーが出たときだけ、エラーの場合の値に差し替えます。エラーの場合の値を省略すると、エラーは空白のセルとして表示されます。
IFERROR と IFNA の違いは何ですか?
IFNA は #N/A(見つからない)だけを置き換え、ほかのエラーはそのまま残します。IFERROR はすべてのエラーを置き換えます。検索なら IFNA(または XLOOKUP の「見つからない場合」の引数)がおすすめです。列の削除による #REF! は、「見つかりません」と静かに表示されるより、エラーのまま残したほうが安全です。
VLOOKUP や XLOOKUP の #N/A はどう直しますか?
包んで =IFNA(VLOOKUP(…), "Not found") とすると、見つからないときだけを置き換えます。XLOOKUP なら4つ目の引数で =XLOOKUP(E2, A2:A6, C2:C6, "Not found") と書けます。置き換えではなく確認したいときは =ISNA(VLOOKUP(…)) で TRUE/FALSE を返します。
Google スプレッドシートで formula parse error と出るのはなぜですか?
数式の解析エラーは、スプレッドシートが数式を読めないときに出ます。括弧の不足、引用符の抜け、区切り文字の誤り(環境によっては , の代わりに ;)などです。IFERROR は助けになりません。実行時のエラーではなく、まず構文を直してから IFERROR を使います。