Excelで複雑な条件分岐やエラー処理を行う際に、非常に便利なのが「IFERROR」と「IF」の組み合わせです。特に、計算式や検索関数("VLOOKUP"、"INDEX"、"MATCH"など)を使っていると、どうしても「#DIV/0!」「#N/A」などのエラーが発生してしまうことがあります。これらを放置すると、見栄えが悪いだけでなく、他の関数や集計にも悪影響を及ぼします。
この記事では、「IFERROR(IF(...))」の使い方とその応用、注意点、よくある間違いなどを、実務目線で分かりやすく解説します。
目次
- ✅ IF関数とIFERROR関数、それぞれの役割とは?
- ・IF関数の役割
- ・IFERROR関数の役割
- ✅ IF関数とIFERROR関数の組み合わせ基本形
- ・例:割り算+条件付き評価+エラー処理
- ■実務で使える応用例
- ① データ存在チェック&エラー回避
- ② 数値のランク評価+エラー対策
- ③ 除算によるエラー処理+条件付きメッセージ
- ■ IFERRORで囲む位置に注意!
- ・例:IFERRORが内側にある場合
- ■ よくあるエラーとその対策
- 1. 式の途中でエラーが出てしまう
- 2. IFERRORを付けても「#VALUE!」になる
- ■ IFERROR(IF(...))の活用ポイントまとめ
- ■まとめ:IFERROR×IFは実務に欠かせない鉄板テクニック
✅ IF関数とIFERROR関数、それぞれの役割とは?
まずは基本を押さえておきましょう。
・IF関数の役割
IF関数は、ある条件に応じて「値Aまたは値B」を返す分岐構文です。
=IF(条件, 真の場合の値, 偽の場合の値)
例:
=IF(A2>=60, "合格", "不合格")
A2の値が60以上なら「合格」、それ以外は「不合格」と表示します。
【Excel】IF関数とは?使い方・複数条件・ネスト構造まで徹底解説!
・IFERROR関数の役割
IFERROR関数は、指定した数式にエラーが出た場合に「別の値(代替値)」を返します。
=IFERROR(数式, エラー時の値)
例:
=IFERROR(A2/B2, "エラー")
B2が0や空白で割り算エラーが出る場合、「エラー」と表示します。
【Excel】【初心者でも簡単】IFERROR関数の使い方を徹底解説!Excelのエラーを見やすく整える実務テクニック
✅ IF関数とIFERROR関数の組み合わせ基本形
「IFERROR(IF(...))」という形にすることで、「条件判定→その結果を評価→その結果がエラーだったら別の値を返す」といった柔軟な処理ができます。
以下はその基本形:
=IFERROR(IF(条件, 値1, 値2), 代替値)
・例:割り算+条件付き評価+エラー処理
以下のような場合、B列に「売上」、C列に「件数」があるとして、1件あたりの売上を算出します。
=IFERROR(IF(C2>0, B2/C2, ""), "未計算")
- C2が0より大きい → 売上割る件数
- C2が0以下 → 空欄
- 上記がエラーになったら →「未計算」と表示
■実務で使える応用例
① データ存在チェック&エラー回避
別シートの名簿に名前が存在するかどうかを確認したいとき、以下のような構文になります。
=IFERROR(IF(VLOOKUP(A2, 名簿!A:A, 1, FALSE)=A2, "○", "×"), "×")
- VLOOKUPで検索成功 → 「○」
- 失敗して#N/A → IFERRORで「×」
IF関数だけではエラー処理できませんが、IFERRORを使うことで"○/×"判定がスマートになります。
② 数値のランク評価+エラー対策
社員の評価点数に応じてランクを判定し、点数が未入力の場合には「未入力」と表示したいケースです。
=IFERROR(IF(A2>=80, "S", IF(A2>=70, "A", IF(A2>=60, "B", "C"))), "未入力")
このようにネストされたIF文の外側にIFERRORを組み込むことで、A2が空白や文字列でエラーが出たときも「未入力」と出せます。
③ 除算によるエラー処理+条件付きメッセージ
以下は、実務でよくある「在庫数に対する出荷割合」を表示しつつ、ゼロ割エラーを回避する例です。
=IFERROR(IF(B2=0, "在庫なし", A2/B2), "計算不能")
- B2(在庫数)が0 → 「在庫なし」
- B2が正常 → 割合計算
- 計算中にエラー →「計算不能」
計算とメッセージ表示を両立し、誰が見ても分かりやすい表になります。
■ IFERRORで囲む位置に注意!
「IFERROR(IF(...))」と「IF(IFERROR(...))」は似ているようで動作が異なります。
・例:IFERRORが内側にある場合
=IF(IFERROR(A2/B2, 0)>1, "高すぎ", "正常")
- A2/B2がエラー → 0に変換
- 0 > 1 ではないので「正常」
この構文は「エラーを0とみなして判定したい」場合に有効です。
一方、「IF全体が失敗したら"---"を表示したい」という場合は、IFERRORが外側です:
=IFERROR(IF(B2=0, "ゼロ割不可", A2/B2), "---")
■ よくあるエラーとその対策
1. 式の途中でエラーが出てしまう
原因:「IF」の中で使っている式(たとえばVLOOKUPや除算)がエラーになると、IF関数そのものが動かなくなる。
対策:IFERRORで"IF"全体を囲う。
2. IFERRORを付けても「#VALUE!」になる
原因:IFERRORの中のIF関数自体が正しく書かれていない(たとえば括弧漏れや引数の不整合)
対策:構文を一度簡略化して順に確認する。関数のネストが深い場合は、"関数の挿入"から一つずつ組み立てる。
■ IFERROR(IF(...))の活用ポイントまとめ
| 活用シーン | メリット |
|---|---|
| エラー時の値制御 | #N/Aや#DIV/0!を「未入力」などにできる |
| 計算&メッセージ併用 | 条件に応じて計算 or 文字出力が可能 |
| データの見栄え向上 | エラー表示がなくなり、表が整う |
| 入力チェックと両立 | 空白・0・エラーなどを柔軟に扱える |
■まとめ:IFERROR×IFは実務に欠かせない鉄板テクニック
IFERRORとIF関数の組み合わせは、初心者から上級者までExcel業務の中で非常に重宝される関数構成です。「条件判定」と「エラー対策」を同時に行えることで、表の完成度が大きく向上し、誰が見ても安心できるシートを作成できます。
特に、業務で複数人が使うExcelファイルでは、#N/Aや#DIV/0!などのエラーが残っていると混乱の元です。今回ご紹介したテクニックを使えば、柔軟かつ堅牢な表計算を実現できるでしょう。