#REF! が出たときに最初に見る3か所

#REF! が出たときに最初に見る3か所

記事
IT・テクノロジー
Excelやスプレッドシートで突然 #REF! が並んだとき、原因はほぼ1つに絞れます。
「数式が見に行っていた場所が、もう存在しない」——これだけです。
逆に言えば、直前に何を消したかを思い出せれば、たいてい戻せます。順番に見ていく3か所をまとめました。

■ 1. 直前に削除した行・列・シート

いちばん多い原因です。
=SUM(B2:B10) の B列ごと削除すると、数式は参照先を失って =SUM(#REF!) になります。
シートを削除した場合も同じで、=売上!A1 が =#REF!A1 に変わります。

まず Ctrl+Z(スプレッドシートなら Cmd+Z)で戻せるか試してください。
戻せるなら、削除する前に「その列を参照している数式がないか」を確認してから消し直します。

すでに保存して閉じてしまった場合は、スプレッドシートなら「ファイル > 変更履歴 > 変更履歴を表示」から削除前の状態に戻せます。Excel でも、OneDrive や SharePoint 上のファイルならバージョン履歴が残っています。

■ 2. VLOOKUP の「列番号」

=VLOOKUP(A2, 商品マスタ!A:D, 4, FALSE) の 4 の部分です。
参照範囲が A:D(4列)なのに、マスタから1列削除して A:C になると、「4列目を取ってこい」という指示が範囲外を指してしまい #REF! になります。

これは Ctrl+Z では直りません。列番号を数え直して書き換える必要があります。

同じ理由で、マスタに列を挿入したときは #REF! にはならず、間違った列の値を静かに返します。エラーが出ないぶん、こちらの方が厄介です。列の増減があったら、VLOOKUP の列番号は数え直してください。
(XLOOKUP や INDEX+MATCH に置き換えておくと、この問題自体が起きなくなります)

■ 3. 別ファイルへの参照

='[売上2025.xlsx]4月'!B5 のように他のブックを参照している場合、そのファイルの移動・リネーム・削除で #REF! になります。

ファイル名を変えただけなら、元の名前に戻せば直ります。
共有フォルダで誰かが整理した直後に発生することが多いので、「昨日まで動いていたのに」というときは、まずファイルの場所を疑ってください。

■ やってはいけない直し方

#REF! が邪魔だからといって、=IFERROR(元の数式, "") で包んで見えなくする。これは実務でよく見かけますが、おすすめしません。

エラーの表示が消えるだけで、その数式は今後もずっと何も返しません。合計は静かに小さくなり、しばらく経ってから「数字が合わない」と気づくことになります。そのときには、いつから狂っていたのかを追うのが非常に難しくなっています。

IFERROR は「エラーが出るのは想定内で、その場合はこう表示したい」というときに使うものです。原因が分からないものを隠すために使うと、後で高くつきます。

■ それでも分からないとき

・数式が何段にもネストしていて、どこが壊れているか追えない
・前任者が作った表で、そもそも何を計算しているのか分からない
・直したつもりが、別のセルが #REF! になる

このあたりまで来たら、一度手を止めた方が安全です。壊れた数式を上書きし続けると、元に戻せる情報まで消えてしまいます。

私はこうしたファイルの調査と修正を承っています。「どこが」「なぜ」壊れていたかの説明を添えてお返ししていますので、同じ壊れ方を繰り返さないための材料としても使っていただけます。

――
この記事の執筆には生成AIを活用しています。内容は実際の挙動を確認したうえで書いています。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す