ERROR.TYPE:エラーの種類を判別して処理を分岐させる

💡 やりたいこと

セルのエラーが「#N/A(検索で見つからない)」なのか「#DIV/0!(ゼロ除算)」なのか「#VALUE!(型の不一致)」なのかによって、表示するメッセージやその後の計算を細かく変えたい。

1. ERROR.TYPE関数の基本

IFERRORは「どんなエラーでも一律で同じ処理」にしてしまいますが、ERROR.TYPEを使えばエラーの発生原因を特定できます。

=ERROR.TYPE(調査したいセル)

エラーの種類に応じた「数値(1〜8)」を返します。エラーでない場合は #N/A を返してしまう点に注意が必要です。

🔥 エラー番号の対応表

  • 1#NULL!無効なセル参照指定(カンマ忘れ等)
  • 2#DIV/0!ゼロによる割り算が発生した
  • 3#VALUE!データ型が間違っている(文字と数字の計算など)
  • 4#REF!参照先のセルが削除されてしまった無効な参照
  • 5#NAME?関数名などの名前のスペルミス・未定義
  • 6#NUM!数値が大きすぎる、または小さすぎる問題
  • 7#N/AVLOOKUPなどで検索値が見つからない
  • 8#GETTING_DATA巨大なデータの計算中・読込中

2. 実践例:エラー種類別のメッセージ出し分け

IF関数を組み合わせて、「エラーがない場合」「エラー2(ゼロ除算)の場合」「エラー7(N/A)の場合」を分岐させます。
旧バージョンのExcel(2016など)でIFSやSWITCHが使えない場合はCHOOSE関数と連携させると綺麗です。

// IF多段ネストで処理を分岐させる(全ver対応) =IF(ISERROR(A1), IF(ERROR.TYPE(A1)=2, "分母がゼロです", IF(ERROR.TYPE(A1)=7, "データ未登録", "その他のエラー") ), A1)
// 新しいExcelならSWITCH関数でスマートに =IF(ISERROR(A1), SWITCH(ERROR.TYPE(A1), 2, "分母がゼロ", 7, "データなし", "その他エラー"), A1)
💡 #N/A エラー「だけ」を無視したいなら
Excel 2013以降であれば、ERROR.TYPEを使わなくても IFNA(数式, エラー時の値) 関数を使うことで、「#N/Aの時だけ」別の表示にし、それ以外の重大なエラーはあえて画面に残すことができます。

🔗 関連記事