「VLOOKUPで#N/Aエラーが表示されて見栄えが悪い」
「割り算で#DIV/0!が出てしまう」
「計算式にエラーが混じると表全体が台無しになる」
このようなエラー表示の問題を解決するのが、ExcelのIFERROR関数です。
エラーが発生した場合に、自動的に指定した値やメッセージを表示することで、見た目もきれいで使いやすい表を作成できます。
この記事では、IFERROR関数の基本的な使い方から、実用的な活用例、注意点まで、初心者の方にもわかりやすく詳しく解説します。
IFERROR関数の基本概念と必要性

IFERROR関数とは
IFERROR関数は、指定した数式や関数がエラーを返した場合に、そのエラーの代わりに別の値を表示するExcelの論理関数です。
Excel 2007以降で利用できます。
なぜIFERROR関数が必要なのか
エラー表示の問題点
# エラーが表示される例
A B C
1 商品 単価 数量
2 りんご 150 10
3 バナナ 120 0
4 合計 =A2*B2 =A3*B3
# 結果: C3は #DIV/0! エラーが表示される
IFERROR使用後の改善
# IFERRORでエラーを回避
A B C
1 商品 単価 数量
2 りんご 150 10
3 バナナ 120 0
4 合計 =IFERROR(A2*B2,"") =IFERROR(A3*B3,"")
# 結果: C3は空白表示で見た目がきれい
IFERRORが対応するエラーの種類
エラー | 原因 | よくある場面 |
---|---|---|
#DIV/0! | ゼロ除算 | 割り算で分母が0 |
#N/A | 値が見つからない | VLOOKUP、MATCH関数 |
#VALUE! | データ型エラー | 数値と文字列の計算 |
#REF! | 参照エラー | 削除されたセルの参照 |
#NAME? | 名前エラー | 関数名の入力ミス |
#NUM! | 数値エラー | 無効な数値計算 |
#NULL! | NULL値エラー | 範囲の指定ミス |
IFERROR関数の基本構文と概要
基本構文
=IFERROR(値, エラー時の値)
パラメータの詳細
パラメータ | 説明 | 例 |
---|---|---|
値 | 通常実行したい数式や関数 | A1/B1 , VLOOKUP(...) |
エラー時の値 | エラーが発生した場合に表示する値 | 0 , "" , "該当なし" |
動作の流れ
- 第1引数の「値」を実行
- エラーが発生しない場合:そのまま結果を表示
- エラーが発生した場合:第2引数の「エラー時の値」を表示
基本的な使用例

ゼロ除算エラーの回避
# エラーが出る例
A1: 100
B1: 0
C1: =A1/B1 # 結果: #DIV/0!
# IFERRORで回避
C1: =IFERROR(A1/B1, 0) # 結果: 0
C2: =IFERROR(A1/B1, "計算不可") # 結果: 計算不可
C3: =IFERROR(A1/B1, "") # 結果: (空白表示)
VLOOKUP関数でのエラー回避
# 社員マスター
A B
1 社員ID 氏名
2 101 田中
3 102 佐藤
4 103 鈴木
# エラーが出る例
D1: =VLOOKUP(105, A2:B4, 2, FALSE) # 結果: #N/A
# IFERRORで回避
D1: =IFERROR(VLOOKUP(105, A2:B4, 2, FALSE), "該当なし") # 結果: 該当なし
D2: =IFERROR(VLOOKUP(105, A2:B4, 2, FALSE), "") # 結果: (空白)
D3: =IFERROR(VLOOKUP(105, A2:B4, 2, FALSE), "未登録") # 結果: 未登録
計算式での総合的なエラー処理
# 売上計算での活用
A B C D
1 商品 単価 数量 売上
2 商品A 100 5 =IFERROR(B2*C2, 0)
3 商品B 150 0 =IFERROR(B3*C3, 0)
4 商品C 3 =IFERROR(B4*C4, 0) # B4が空白でもエラーにならない
# 結果: エラー表示なしで計算が完了
実用的なビジネス活用例
顧客管理システムでの活用
# 顧客マスターと注文データの連携
# 顧客マスター(別シート)
A B C
1 顧客ID 会社名 担当者
2 C001 ABC商事 田中
3 C002 XYZ企画 佐藤
# 注文管理表
D E F
1 顧客ID 会社名 担当者
2 C001 =IFERROR(VLOOKUP(D2,顧客マスター!A:C,2,0),"未登録") =IFERROR(VLOOKUP(D2,顧客マスター!A:C,3,0),"")
3 C003 =IFERROR(VLOOKUP(D3,顧客マスター!A:C,2,0),"未登録") =IFERROR(VLOOKUP(D3,顧客マスター!A:C,3,0),"")
# 結果: 存在しない顧客ID(C003)には「未登録」と表示
在庫管理での活用
# 在庫計算での安全な処理
A B C D E
1 商品名 入庫 出庫 残高 回転率
2 商品A 100 80 =B2-C2 =IFERROR(C2/D2, 0)
3 商品B 50 50 =B3-C3 =IFERROR(C3/D3, 0) # 残高0での除算回避
4 商品C 30 25 =B4-C4 =IFERROR(C4/D4, 0)
# 残高が0でも回転率計算でエラーが発生しない
成績管理での活用
# 学生成績表での安全な平均計算
A B C D E F
1 学生名 国語 数学 英語 合計 平均
2 田中 85 90 78 =B2+C2+D2 =IFERROR(E2/3, "")
3 佐藤 92 85 =B3+C3+D3 =IFERROR(E3/3, "") # 数学未受験
4 鈴木 78 85 90 =B4+C4+D4 =IFERROR(E4/3, "")
# 未受験科目があってもエラー表示されない
売上分析での活用
# 月別売上分析
A B C D E
1 月 売上 前年同月 成長率 評価
2 1月 1200000 1000000 =IFERROR((B2-C2)/C2*100, 0)&"%" =IF(D2>10,"優秀","標準")
3 2月 1500000 =IFERROR((B3-C3)/C3*100, 0)&"%" =IF(D3>10,"優秀","標準")
4 3月 1100000 1200000 =IFERROR((B4-C4)/C4*100, 0)&"%" =IF(D4>10,"優秀","標準")
# 前年データがない月もエラーにならない
IF関数との違いと使い分け
IF関数との比較
関数 | 主な用途 | 判定基準 | 記述例 |
---|---|---|---|
IF | 条件による分岐 | 論理条件 | =IF(A1>100, "大", "小") |
IFERROR | エラー処理 | エラーの有無 | =IFERROR(A1/B1, 0) |
同じ結果を得る場合の比較
# ゼロ除算を避ける場合
# IF関数を使った方法
=IF(B1=0, 0, A1/B1)
# IFERROR関数を使った方法
=IFERROR(A1/B1, 0)
# IFERRORの方がシンプルで読みやすい
複雑な条件でのIF vs IFERROR
# 複数の条件をチェックする場合
# IF関数での複雑な条件チェック
=IF(OR(B1=0, B1="", ISBLANK(B1)), 0, A1/B1)
# IFERRORでのシンプルな処理
=IFERROR(A1/B1, 0)
# IFERRORは条件を考えなくてもエラーを包括的に処理
他の関数との組み合わせ

VLOOKUP + IFERROR
# 基本パターン
=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), "該当なし")
# 実用例:価格表から価格を取得
=IFERROR(VLOOKUP(A2, 価格表!A:C, 3, FALSE), "価格未設定")
INDEX + MATCH + IFERROR
# より柔軟な検索でのエラー処理
=IFERROR(INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0)), "見つかりません")
# 実用例:双方向検索
=IFERROR(INDEX(B:B, MATCH(E1, A:A, 0)), "該当データなし")
SUMIF + IFERROR
# 条件付き合計でのエラー処理
=IFERROR(SUMIF(条件範囲, 条件, 合計範囲), 0)
# 実用例:部門別売上合計
=IFERROR(SUMIF(部門列, "営業", 売上列), "データなし")
ネストしたIFERROR
# 段階的なエラー処理
=IFERROR(
VLOOKUP(A1, 主テーブル, 2, FALSE),
IFERROR(
VLOOKUP(A1, 予備テーブル, 2, FALSE),
"該当なし"
)
)
# より読みやすい記述方法
=IFERROR(
VLOOKUP(A1, 主テーブル, 2, FALSE),
IFERROR(VLOOKUP(A1, 予備テーブル, 2, FALSE), "該当なし")
)
エラー時の表示オプション
よく使われる表示パターン
# 1. 空白表示
=IFERROR(数式, "")
# 2. ゼロ表示
=IFERROR(数式, 0)
# 3. 文字メッセージ
=IFERROR(数式, "該当なし")
=IFERROR(数式, "計算不可")
=IFERROR(数式, "データ不足")
# 4. ダッシュ表示
=IFERROR(数式, "-")
# 5. 条件付きメッセージ
=IFERROR(数式, IF(条件, "メッセージ1", "メッセージ2"))
用途別推奨表示
用途 | 推奨表示 | 理由 |
---|---|---|
数値計算 | 0 | 後続の計算に影響しない |
文字情報 | "" または "-" | 見た目がすっきり |
検索結果 | "該当なし" | ユーザーに分かりやすい |
分析データ | "データ不足" | 原因が明確 |
一時的な処理 | "" | 目立たない |
注意点とベストプラクティス
注意すべきポイント
1. エラーの隠蔽リスク
# 危険な例:すべてのエラーを隠してしまう
=IFERROR(複雑な数式, "")
# 改善例:段階的なエラー処理
=IF(前提条件チェック, IFERROR(数式, "計算エラー"), "条件不足")
2. 空文字列の扱い
# ""は空白に見えるが、セルとしては非空白
A1: =IFERROR(1/0, "")
# 空白チェックの結果
=ISBLANK(A1) # FALSE(空白ではない)
=A1="" # TRUE(空文字列)
=LEN(A1) # 0(文字数は0)
3. パフォーマンスへの影響
# 非効率な例:毎回複雑な計算を実行
=IFERROR(複雑で重い数式, 0)
# 効率的な例:事前条件チェック
=IF(簡単な前提条件, IFERROR(数式, 0), 0)
ベストプラクティス
1. 適切な粒度でのエラー処理
# 推奨:処理単位でのエラー処理
売上 = IFERROR(単価 * 数量, 0)
利益率 = IFERROR(利益 / 売上, 0)
# 非推奨:全体を一括でエラー処理
結果 = IFERROR(複雑な計算全体, "エラー")
2. 意味のあるエラーメッセージ
# 良い例:原因が分かるメッセージ
=IFERROR(VLOOKUP(A1, マスター, 2, 0), "商品マスターに未登録")
# 悪い例:抽象的すぎるメッセージ
=IFERROR(VLOOKUP(A1, マスター, 2, 0), "エラー")
3. ドキュメント化
# コメント機能でエラー処理の意図を記載
=IFERROR(複雑な数式, 0)
/*
コメント:分母が0の場合は0を表示
前提:データ不備時の標準処理
*/
関連関数との比較

IFNA関数との違い(Excel 2013以降)
# IFERROR:すべてのエラーを処理
=IFERROR(VLOOKUP(A1, 範囲, 2, 0), "エラー")
# IFNA:#N/Aエラーのみを処理
=IFNA(VLOOKUP(A1, 範囲, 2, 0), "該当なし")
# 使い分け:特定のエラーだけ処理したい場合はIFNA
ISERROR関数との組み合わせ
# 従来の方法(Excel 2003以前)
=IF(ISERROR(数式), "エラー時の値", 数式)
# IFERRORでの簡略化(Excel 2007以降)
=IFERROR(数式, "エラー時の値")
# IFERRORの方が効率的(数式を1回だけ評価)
高度な活用テクニック
動的なエラーメッセージ
# エラーの種類に応じたメッセージ
=IFERROR(
VLOOKUP(A1, データ, 2, 0),
IF(A1="", "検索値が空白", "該当データなし")
)
配列数式でのIFERROR
# 配列全体でのエラー処理
{=IFERROR(A1:A10/B1:B10, 0)}
# Office 365での動的配列
=IFERROR(A1:A10/B1:B10, 0)
条件分岐とIFERRORの組み合わせ
# 複雑な条件処理
=IF(条件1,
IFERROR(処理1, "エラー1"),
IF(条件2,
IFERROR(処理2, "エラー2"),
"条件なし"
)
)
トラブルシューティング
よくある問題と解決法
1. IFERRORが効かない場合
# 問題:エラーではない値が返される
=IFERROR(A1/B1, 0) # B1が空白の場合、0が返される
# 解決:空白チェックを追加
=IF(B1="", 0, IFERROR(A1/B1, 0))
2. 意図しない値が表示される
# 問題:エラー以外の値も置き換えられる
=IFERROR(IF(A1>100, A1, "範囲外"), "エラー")
# 解決:条件を明確にする
=IF(A1="", "未入力", IFERROR(IF(A1>100, A1, "範囲外"), "計算エラー"))
3. パフォーマンスの問題
# 問題:重い計算がエラー時にも実行される
=IFERROR(重い計算(A1), 軽い計算(A1))
# 解決:事前条件チェック
=IF(基本条件チェック(A1), IFERROR(重い計算(A1), 0), 軽い計算(A1))
まとめ
IFERROR関数は、Excelでの実用的な表作成において欠かせない重要な関数です。エラー表示を回避することで、見た目の美しさとユーザビリティの両方を向上させることができます。
重要なポイント
- 基本機能:エラーが発生した場合に代替値を表示
- 基本構文:
=IFERROR(値, エラー時の値)
- 対象エラー:#DIV/0!、#N/A、#VALUE!など全種類
- 主な用途:VLOOKUP、除算、計算式のエラー処理
活用のメリット
効果 | 具体例 |
---|---|
見た目の改善 | エラー表示がなくなり、プロフェッショナルな印象 |
ユーザビリティ向上 | 分かりやすいメッセージでユーザーガイド |
後続処理の安全性 | エラーによる計算停止を防ぐ |
メンテナンス性 | データ不備があっても表が破綻しない |
コメント