Excelの #REF! エラーの原因と直し方|ブック全体から一括で探す方法

Excel・VBA

Excelの表に「#REF!」が出てしまった。どこから壊れたのか分からない、他のシートにも出ていないか心配——。この記事では、#REF! の原因、ブック全体から一括で探す方法、直し方と予防策を解説します。

※この記事の後半で紹介するツールは、当ブログ(自動化ラボ)の筆者が開発・販売しているものです。

#REF! は「参照先が無くなった」という意味

#REF! は、数式が参照していたセルが無くなったときに表示されます。よくある原因は次のとおりです。

  • 数式が参照している行・列を削除した
  • 数式が参照しているシートを削除した
  • 参照先のセルに、別のセルを切り取って貼り付けた
  • 数式をコピーした結果、参照先がシートの外(1行目より上など)になった
  • VLOOKUP の列番号が、範囲の列数より大きい
  • INDIRECT に存在しないシート名やセル番地を渡した

一度 #REF! になると、数式の中身も =SUM(#REF!) のように書き換わり、元の参照先は分からなくなります。

直後なら Ctrl+Z で元に戻す

削除した直後に気づいたら、Ctrl+Z(元に戻す)が一番確実です。保存して閉じてしまった場合は、バックアップや「ファイル」→「情報」→「バージョン履歴」(OneDrive・SharePoint 上のファイル)から以前の版を確認しましょう。

ブック全体から #REF! を一括で探す

方法1:検索(Ctrl+F)で全シートを探す

  1. Ctrl+F で「検索と置換」を開き、「オプション」を押す
  2. 検索する文字列に「#REF!」と入力
  3. 検索場所を「ブック」、検索対象を「数式」にする
  4. 「すべて検索」を押す

シートをまたいで一覧が表示され、クリックするとそのセルに移動できます。

方法2:ジャンプでエラーのセルを選ぶ(シートごと)

F5 →「セル選択」→「数式」を選び、「エラー値」だけにチェックを入れて OK。そのシートでエラーになっているセルがすべて選択されます。#REF! 以外の #N/A や #DIV/0! もまとめて見つかります。

方法3:名前の定義も確認する

見落としがちなのが「名前の定義」です。「数式」タブ →「名前の管理」を開き、「フィルター」→「エラーのある名前」で、参照先が #REF! になった名前を表示できます。

直し方と予防策

  • #REF! の部分を、正しいセル範囲に入れ直す
  • VLOOKUP の列番号を直接書かず、XLOOKUP や INDEX+MATCH を使う(列の追加・削除に強い)
  • 表を「テーブル」にして、=SUM(売上[金額]) のような構造化参照にする
  • 参照されている行・列・シートを消す前に、「数式」タブの「参照先のトレース」で確認する

複数のファイルをまとめてチェックしたいとき

ファイルが何十個もある、毎月の締め前にまとめて確認したい——という場合は、1つずつ開いて検索するのは大変です。

「数式チェックくん」は、Excelファイルやフォルダを選ぶだけで、すべての数式を調べて#REF!、エラー値、外部リンク、数式に直接入力した数値、参照先が切れた名前の定義などを、シート・セル・数式つきで一覧にします。ファイルは読み取るだけで変更しません(Excel不要)。

問題の一覧(シート・セル・数式)
問題の一覧(シート・セル・数式)

まとめ

  • #REF! は参照先が削除されたときに出る
  • Ctrl+F(検索場所:ブック/検索対象:数式)で全シートから一括で探せる
  • 名前の定義のエラーも忘れずに確認
  • XLOOKUP やテーブルを使うと #REF! が起きにくくなる

あわせて読みたい

ほどき工房のExcelツール

Microsoft Excel、Microsoft Office、Visual Basic は Microsoft Corporation の商標です。

自分で調べて直す時間がない方へ
ココナラで作業をお受けしています(筆者のサービスです)。→ スプレッドシート・Excelの関数エラーを直します(ココナラ)

コメント

タイトルとURLをコピーしました