Excelのエラーメッセージは、表示を隠す前に種類と最初に壊れたセルを特定すれば解決できます。#DIV/0!、#N/A、#VALUE!、#REF!、#NAME?、#NUM!、#NULL!、#####は原因が異なります。最初の確認は、エラーセルを選択して数式バーと左上の警告アイコンを見て、「数式」→「数式の検証」で参照を一段ずつ追うことです。集計表では最終結果ではなく、上流の入力・中間計算から調べます。
エラー値を原因別に読む
#DIV/0!:分母が0または空白
割り算の分母が0、または空白セルを0として扱ったときに出ます。売上が未入力なのか、本当に0なのかを区別します。単にIFERRORで空文字へ隠すと入力漏れを見逃すため、業務上0が許されない場合は入力を直します。0のときだけ別表示するなら分母を先に判定します。
=IF(C2=0,"未算定",B2/C2)
#N/A:検索対象が見つからない
XLOOKUP、VLOOKUP、MATCHなどで一致がないときの代表的な値です。前後の空白、数値と文字列の型違い、検索範囲、完全一致の指定を確認します。「該当なし」が正常な業務状態なら、XLOOKUPの見つからない場合の引数やIFNAで意味のある文字を返します。通信障害や参照範囲破損まで一律に隠すIFERRORより、対象を限定できます。
=XLOOKUP(A2,商品表[コード],商品表[単価],"未登録",0)
=IFNA(MATCH(A2,$F$2:$F$100,0),"未登録")
#VALUE!:引数の型や文字列が不適切
数値計算へ文字列が混ざった、日付が文字列のまま、関数の引数形式が違う場合に出ます。セルの表示形式を「数値」に変えるだけでは、文字列として保存された値自体は変換されません。ISNUMBER、ISTEXTで型を確認し、余分な空白はTRIM、印刷不能文字はCLEAN、数値文字列はVALUEなど、原因に合わせてコピー列で変換します。原データを一括置換する前に件数を比較します。
#REF!:参照先が削除された
参照していたセル、行、列、シート、ブックが削除されると#REF!になります。数式中の#REF!へ推測した範囲を入れるのではなく、直前のバックアップ、バージョン履歴、同じ構造の正常ファイルと比較します。行や列を消す前に「数式」→「参照元のトレース」「参照先のトレース」で依存関係を見ると予防できます。保存前なら元に戻し、保存後は履歴から正しい数式を復元します。
#NAME?:関数名や名前を認識できない
関数名のスペル、定義名、文字列の引用符を確認します。新しいMicrosoft 365関数を古い永続ライセンス版で開いた場合や、アドイン定義関数が読み込まれていない場合も起こります。先頭に_xlfn.が付く場合は、そのExcel版で関数が未対応である可能性があります。互換関数へ置き換えるか、対象バージョンを揃えます。
#NUM!、#NULL!、#####
#NUM!は数値引数や計算結果が許容範囲外、反復計算が収束しない場合などです。#NULL!は、本来「:」や「,」を使うべき範囲演算子が空白になっている場合に出ます。#####は多くの場合、列幅不足か、負の日付・時刻を表示できない状態で、セル値そのものがエラーとは限りません。列境界をダブルクリックして自動調整し、数式と表示形式を確認します。
最初に壊れたセルを見つける
- ブックのコピーを作り、手動計算になっていないか「数式」→「計算方法の設定」を確認する。
- 「ホーム」→「検索と選択」→「条件を選択してジャンプ」→「数式」でエラーを選び、該当セルを一覧化する。
- 最終集計セルから「参照元のトレース」を使い、エラーが初めて現れる中間セルまで戻る。
- 「数式の検証」で下線部分を評価し、どの引数が想定外か確認する。
- 正常な隣接行の数式と絶対参照、相対参照、テーブル参照を比較する。
エラーが大量にある場合、一番上のセルを直せば連鎖して消えることがあります。数式を列全体へ再コピーする前に、テーブルの計算列か、例外行を許す設計かを確認します。緑の三角形はエラーチェック規則による警告で、必ず誤りとは限りません。「エラーを無視する」は原因を理解し、意図した例外だと記録できる場合だけ使います。
IFERRORは最後に、範囲を限定して使う
IFERRORは任意のエラーを一つの代替値へ変えるため、#N/Aと#REF!を区別できなくなります。ユーザー向け帳票で表示を整える目的には便利ですが、計算の正しさを保証しません。まず原因を修正し、予測可能で許容されたエラーだけに適用します。検索の未登録だけならIFNA、0除算だけなら分母判定の方が診断可能性を保てます。
=IFNA(XLOOKUP(A2,商品表[コード],商品表[単価]),"未登録")
=IF(C2=0,NA(),B2/C2)
空文字を返すと、見た目は空白でもCOUNTAや後続数式では値があるセルとして扱われることがあります。0を返すと平均やグラフが変わります。NA()を返すとグラフで欠測として扱いやすい一方、後続計算へ#N/Aが伝播します。代替値は表示目的と計算目的を分けて選びます。
循環参照と計算設定を確認する
ステータスバーに「循環参照」と出る場合、数式が自分自身を直接または間接に参照しています。「数式」→「エラーチェック」→「循環参照」からセルへ移動し、参照方向を修正します。反復計算が意図された財務モデルでは、回数や許容誤差を勝手に変更せず、モデル所有者の仕様を確認します。計算方法が手動だと、式を直しても値が更新されないためF9で再計算し、保存・再オープン後も一致するか確認します。
配列数式とスピルエラーを確認する
Microsoft 365などの動的配列対応Excelでは、数式が複数セルへ結果を広げられないと#SPILL!が出ます。予定されたスピル範囲に値、結合セル、テーブル境界がないか確認します。邪魔なセルを無条件に消さず、その値の所有者を確認して移動します。従来のCtrl+Shift+Enter配列数式を編集する場合は、配列範囲全体を選ぶ必要があるため、版と数式方式を見分けます。
修正後の検証と戻し方
修正前後でエラー種類別の件数、主要な合計・平均・明細件数を比較します。「条件を選択してジャンプ」でエラーセルが残っていないか再確認し、期待された#N/Aなどは理由を記録します。数式表示で列の式が連続しているかも確認します。共同利用ブックは所有者の受け入れ確認を得てから原本へ反映します。
結果が変わりすぎた場合は、修正セルを増やさず調査用コピーを破棄し、元のコピーへ戻ります。バージョン履歴があるOneDriveまたはSharePointファイルでは履歴から比較できますが、復元は同時編集者へ影響するため所有者と調整します。エラー表示だけを全体設定で無効にせず、正しい式と入力を保つことを完了条件にします。
再発を防ぐ入力設計
データの入力規則でコード候補や数値範囲を限定し、元データはExcelテーブルにして範囲追加を自動追従させると、型違いと参照漏れを減らせます。削除前には参照元・参照先を確認し、月次ファイルは計算式セルを保護して入力セルと区別します。ただし保護解除パスワードを共有資料へ書かず、管理方法は組織規程に従います。
重要なブックでは、正常値の件数・合計・最大最小を別の検算欄に置き、更新日とデータ件数を表示します。これにより#エラーが見えない場合でも、0や空文字へ置換された異常に気付きやすくなります。エラー処理は見た目を整える作業ではなく、データ品質と計算根拠を守る作業です。

コメント