数式を入れたセルに突然 #REF! や #NAME? が表示される。あるいは「循環参照が発生しています」という警告ダイアログが、何度OKを押しても消えない。参照や数式構造のエラーは、原因が見えにくいぶん手が止まりやすいトラブルです。
放置すると計算結果が壊れたまま資料に紛れ込み、合計や集計が静かにズレ続けます。気づいたときには「どこから直せばいいのか分からない」状態になりがちです。
この記事では、#REF!・循環参照・#NAME?、そして「コピーしたら参照がズレた」「別シート参照が壊れた」という5つの症状を扱います。まず症状から逆引きできる早見表で特定し、それぞれ「30秒チェック → 原因 → 直し方」の順で解決していきます。今日中に直したい方は、まず次の早見表から自分の症状を探してください。
なお本記事の操作はすべて Excel(Microsoft Excel) の仕様で説明します。Google スプレッドシートとは確認場所や挙動が異なる部分があるため、Excel を前提に読み進めてください。
対応バージョン: 本記事の数式・参照の挙動は Excel デスクトップ版・Excel for the web(Web版)共通です。ただし循環参照の発生セル特定・名前マネージャー・追跡矢印・反復計算の設定はデスクトップ版専用機能です。Web版のみを使っている方は、該当箇所の注記を必ず確認してください。
【症状別早見表】どのエラーかをまず特定する
まずは、今あなたの画面で起きている症状を下の表から探してください。原因の見当をつけてから、対応するセクションへジャンプすると最短で直せます。
| 症状 | 主な原因 | まず見るところ | 直し方の方向性 |
|---|---|---|---|
#REF! が出た | 参照先の行・列・シートを削除した/コピーで参照が範囲外になった | 直前に削除・コピーをしなかったか | Ctrl+Z で元に戻す or 参照を入れ直す |
| 循環参照の警告が消えない | 数式が直接・間接的に自分自身を参照している | ステータスバー左下の「循環参照」表示 | 発生セルを特定して自己参照を外す |
#NAME? が出た | 関数名のスペルミス/削除した名前付き範囲を参照/クォート・コロン漏れ | 数式の関数名・名前の綴りが正しいか | 綴りを直す or 名前を再定義する |
| コピーしたら参照がズレた | 絶対参照・相対参照の使い分けミス($ の付け忘れ) | コピー元の数式に $ が付いているか | 固定したいセルに $ を付ける |
| 別シート参照が壊れた | 参照先シートを削除した/シート名にスペースがある | シート名!セル の構文が正しいか | シートを復元 or 構文を直す |
このあとのセクションは上から順に、#REF! → 循環参照 → #NAME? → コピーずれ(別シート参照崩れを含む)の順で並んでいます。自分の症状の見出しまで飛んでください。
ちなみに「数式自体は壊れていないのに合計や検索結果が合わない」場合は、参照エラーではなくデータ品質や計算設定が原因のことがあります。その切り分けについては最後のFAQで触れます。
#REF!エラー:参照先が消えたとき
#REF! は「数式が参照しようとしているセルが、もう存在しない」というサインです。REF は reference(参照)の略で、参照先が無効になった瞬間に表示されます。
30秒チェック(まずここを見る)
- 直前に行・列・シートを削除しなかったかを思い出す
- 直前に数式をコピー&貼り付けしなかったかを確認する
- 心当たりがあれば、まず
Ctrl+Z(元に戻す)を押す
#REF! の多くは「直前の操作」が引き金です。削除やコピーの直後に出たなら、Ctrl+Z を1〜数回押すだけで元の数式がそのまま戻ることがほとんどです。これが最も確実で速い直し方です。
原因:参照先が消える5つのパターン
Ctrl+Z で戻せなかった、あるいは原因を根本から潰したい場合は、次のどれに当てはまるかを確認します。
- 行・列の削除: 数式が参照していた行や列を削除すると、その参照が
#REF!に変わります - コピーで参照が範囲外になった: 相対参照のままコピーして、参照先がシートの外(マイナス方向)にはみ出すと
#REF!になります - VLOOKUP の列番号オーバー:
VLOOKUPの3番目の引数(列番号)が、検索範囲の列数を超えている - INDEX の行・列番号が範囲外:
INDEXで指定した行番号・列番号が、対象範囲の外を指している - 参照先シートの削除: 別シートを参照していて、そのシートを削除した
たとえば検索範囲が3列しかないのに =VLOOKUP(A2, B2:D10, 4, FALSE) のように4列目を取りに行くとします。4列目が存在しないため #REF! になります。この場合は列番号を 3 以内に直します。
直し方:戻すか、参照を入れ直す
【最優先】Ctrl+Z で削除・コピー操作を取り消す
↓ 戻せない場合
数式バーで #REF! になった箇所を、正しいセル番地に手入力で書き直す
例: =SUM(B2:#REF!) → =SUM(B2:D2)
#REF! が数式の中に紛れているときは、数式バーをクリックして #REF! の文字を探し、本来あるべきセル番地に打ち替えます。複数セルに同じ #REF! があるときは、ホームタブの「検索と置換」(Ctrl+H)で #REF! を検索しましょう。壊れた箇所をまとめて洗い出せます。
再発を防ぐ:範囲参照にしておく
予防策として、個別セルを足し合わせる書き方より範囲でまとめて参照する書き方にしておくと、途中の列を消しても #REF! になりにくくなります。
壊れやすい: =SUM(B2,C2,D2) ← C列を消すと #REF! になる
壊れにくい: =SUM(B2:D2) ← C列を消しても自動で =SUM(B2:C2) に縮む
範囲参照(B2:D2)なら、途中の列が削除されても範囲がそのまま縮むだけで、エラーにはなりません。
循環参照:警告が消えないとき
循環参照とは、ある数式が直接または間接的に自分自身のセルを参照してしまっている状態です。たとえばセル D3 に =D1+D2+D3 と入れると、D3 の値を計算するのに D3 の値が必要になり、計算が確定できません。これが「1つまたは複数の循環参照が発生しています」という警告の正体です。
30秒チェック(まずここを見る)
- Excelウィンドウ左下のステータスバーを見る
- 「循環参照」の文字の右にセルアドレス(例: D3)が表示されていればそのセルが犯人
- アドレスが表示されず「循環参照」の文字だけなら、別のシートに犯人がいる
ステータスバーにセル番地が出ていれば話は早く、そのセルの数式から自己参照を外せば解決します。問題は「文字だけで番地が出ない」ケースです。
原因:警告が「消えない・見つからない」理由
警告が消えない・発生セルが見つからない典型的な原因は次の3つです。
- 別のシートに循環参照がある: 現在のシート以外に犯人がいると、ステータスバーにセル番地が表示されません
- 名前付き範囲経由の間接参照: 名前を介して遠回しに自分自身を参照していると、見つけにくくなります
- 反復計算が有効になっている: 反復計算がオンだと警告自体が抑制され、エラーに気づきにくくなります
直し方:発生セルを特定して自己参照を外す
デスクトップ版なら、循環参照の発生セルを次の操作で一覧表示できます。
数式タブ → 「エラーチェック」の横の小さな矢印(▼)
→ 「循環参照」にマウスを合わせる
→ サブメニューに発生セルの一覧が表示される
→ クリックでそのセルにジャンプ
ジャンプしたセルの数式を見て、自分自身(または自分を含む範囲)を参照している箇所を外します。先ほどの =D1+D2+D3 なら、本来足したいのは D1 と D2 だけのはずです。=D1+D2 に直せば解消します。
対応バージョン(重要): この「数式タブ → エラーチェック → 循環参照」の発生セル特定機能と、後述の反復計算設定はデスクトップ版専用です。Excel for the web では循環参照を含むブックを開けますが、発生セルの特定と解消操作にはデスクトップ版が必要です。Web版で行き詰まったら、デスクトップ版で開いて直すのが確実です。
反復計算との関係(誤設定に注意)
住宅ローンの計算など、あえて循環参照を許容したい場面では「反復計算」を有効にします。設定場所は ファイル → オプション → 数式 → 反復計算を有効にする(Mac は Excel → 環境設定 → 計算)で、デフォルトは最大反復回数100回・最大変化量0.001です。
注意したいのは、この反復計算が意図せず有効になっているケースです。反復計算がオンだと循環参照の警告が出なくなるため、「警告は出ないのに計算結果がおかしい」状態になります。意図的に使っていないなら、ここをオフに戻してから発生セルを探すと原因がはっきりします。
反復計算の詳しい設定手順や、循環参照を全シート横断で探す方法は、Excelの循環参照エラーの原因と解消方法で詳しく解説しています。循環参照が消えない場合はあわせて参照してください。
#NAME?エラー:名前が認識されないとき
#NAME? は「Excel が数式の中の名前(関数名や名前付き範囲)を認識できない」というサインです。NAME の通り、名前まわりの綴りや定義に問題があるときに出ます。原因が複数あるため、どれに当てはまるかを順に潰していきます。
30秒チェック(まずここを見る)
- 数式の関数名の綴りが正しいか(
SUMをSUMMなどと打っていないか) - 文字列を
"で囲み忘れていないか - 範囲のコロン
:を打ち忘れていないか(B2B12のように)
入力ミス系はこの3点でほぼ片付きます。ここで見つからなければ、名前付き範囲やバージョンの問題を疑います。
原因:#NAME?が出る7パターン
#NAME? の原因は大きく7つに分かれます。
| # | 原因 | 例 |
|---|---|---|
| 1 | 関数名のスペルミス | =SUMM(A1:A10)(正しくは SUM) |
| 2 | 未定義の名前付き範囲を参照 | =SUM(Profit) で Profit が未定義 |
| 3 | 名前付き範囲を削除したのに参照が残っている | 削除済みの名前を数式が指している |
| 4 | テキストのクォート漏れ | 文字列を " で囲っていない |
| 5 | 範囲参照のコロン漏れ | =SUM(B2B12)(正しくは B2:B12) |
| 6 | アドインが無効 | EUROCONVERT などアドイン依存の関数 |
| 7 | 新関数を古い版で使用 | 古い Excel で XLOOKUP・FILTER 等を使った |
直し方:原因別の対処
入力ミス系(1・4・5) は、数式バーで該当箇所を直すだけです。関数名の綴り、" の付け忘れ、: の打ち忘れを確認します。Excel は関数名を入力すると候補を出してくれるので、手入力ではなく候補から選ぶとスペルミスを防げます。
名前付き範囲系(2・3) は、その名前が実在するかを確認します。デスクトップ版なら 数式タブ → 名前の管理(ショートカット Ctrl+F3)で名前マネージャーを開きます。一覧に目的の名前があるか、参照先が壊れていないかをチェックしましょう。削除済みの名前を使い続けているなら、名前を再定義するか、数式を直接のセル範囲に書き換えます。名前の定義や名前マネージャーの使い方は、Excelの「名前の定義」完全ガイドで詳しく解説しています。
バージョン系(7) は、XLOOKUP・FILTER などの新しい関数を古い Excel で開いたときに起こります。これは綴りの問題ではないため、対応バージョンの Excel(Microsoft 365 など)で開けば正しく動きます。
やってはいけない対処: Microsoft の公式ドキュメントは「
#NAME?をIFERRORなどで覆い隠してはいけない、構文の問題として必ず修正すること」と明記しています。エラーをIFERRORで空白に見せかけても根本原因は残るため、必ず原因そのものを直してください。
コピーで参照がずれる:絶対参照・相対参照の使い分け
#REF! や #NAME? のような明確なエラーは出ないのに、「コピーしたら参照先が1つずつズレて、合計が全部おかしくなった」——これは多くの場合、絶対参照と相対参照の使い分けミスです。エラーではなく「仕様通りにズレている」ため気づきにくいのが厄介です。
30秒チェック(まずここを見る)
- コピー元の数式に
$記号が付いているかを確認する - 常に同じセルを参照したい箇所(税率・単価表など)に
$が付いているか - 付いていなければ、その箇所に
$を付けてコピーし直す
原因:$が付いていないと参照は「ついてくる」
Excel の参照は、$ が付いていないとコピー方向に合わせて自動でズレる仕様です。これ自体は便利な機能ですが、「ここだけは固定したい」セルにも $ を付け忘れると、固定したかった参照まで一緒に動いてしまいます。
$ を「列の前」「行の前」「両方」のどこに付けるかで、固定される部分が変わります。次の早見表で「何が固定され、何がズレるか」を整理します。
絶対参照・相対参照・複合参照の早見表
| 書き方 | 名称 | 列(→方向にコピー) | 行(↓方向にコピー) |
|---|---|---|---|
A1 | 相対参照 | ズレる | ズレる |
$A$1 | 絶対参照 | 固定 | 固定 |
$A1 | 複合参照(列固定) | 固定 | ズレる |
A$1 | 複合参照(行固定) | ズレる | 固定 |
ポイントは「$ のすぐ右にあるものが固定される」と覚えることです。$A なら列A が固定、A$1 なら行1 が固定です。常に同じ単価表を参照したいなら $A$1 のように両方に $ を付けます。
F4キーで一発切り替え
$ を一つずつ手入力するのは面倒なので、F4 キーを使います。数式バーでセル参照(例: A1)を選択した状態で F4 を押すと、次の順番で循環します。
A1 → $A$1 → A$1 → $A1 → A1(元に戻る)
(F4を押すたびに切り替わる)
固定したい参照を選んで F4 を何回か押すだけで、目的のパターンに合わせられます。コピー前にここを整えておけば、貼り付け後のズレはなくなります。
別シート参照が崩れたとき
同じ「参照がズレる・壊れる」でも、別シートを参照していて壊れた場合は原因が違います。別シート参照は シート名!セル参照 という構文で書きます(例: =Sheet2!B2)。
崩れる典型パターンは次の2つです。
- シート名にスペースや数字が含まれている: シート名は
'(シングルクォート)で囲む必要があります。='売上 2024'!B2や='123'!A1のように書きます。クォートが抜けると#NAME?や構文エラーになります - 参照先シートを削除した: シートそのものを削除すると、参照は
#REF!になります。シート名を「変更」した場合は Excel が自動で参照を更新するため通常は壊れませんが、「削除」は自動復元されません
シートを削除して #REF! になった場合、唯一の確実な復元手段は削除直後の Ctrl+Z(元に戻す)です。閉じてしまった後では戻せないため、削除した心当たりがあればまず Ctrl+Z を試してください。
なお、複数シートの同じセルを縦断して合計する「3D集計」は =SUM('1月:3月'!B2) のように書きます。この構文でシート名にスペースがある場合も、同様にクォートで囲みます。
よくある質問(FAQ)
#REF!と循環参照が同時に出たときは、どちらから直すべき?
#REF! から先に直してください。#REF! は参照先が消えている明確な破損なので、放置すると循環参照の調査中も計算結果が狂い続けます。Ctrl+Z や参照の入れ直しで #REF! を片付けてから、ステータスバーを見て循環参照の発生セルを探すと、原因が混ざらず切り分けやすくなります。
Web版(Excel Online)とデスクトップ版で操作場所が違うのはどこ?
参照や数式の挙動そのものは共通ですが、診断・修復のための機能の一部がデスクトップ版専用です。具体的には、循環参照の発生セル特定(数式タブ→エラーチェック→循環参照)、名前マネージャー(Ctrl+F3)、参照元・参照先をたどる追跡矢印、反復計算の設定は、Web版では使えません。Web版でブックを開いて確認はできても、これらの操作で直す必要があるときはデスクトップ版で開くのが確実です。
エラーは出ないのに「計算されない」「集計が合わない」のは参照エラー?
別の原因の可能性が高いです。「計算されない」場合、循環参照で反復計算がオフだと計算が止まることがあります。原因の切り分けはExcel 計算されない原因と直し方を参照してください。一方「集計の数値が合わない」場合は、参照構造ではなくデータ側(空白・全角半角・重複など)が原因のことが多く、Excel集計・検索が合わない原因5つと直し方で診断できます。参照エラー(#REF! 等)が画面に出ていないなら、まずこの2つを疑うのが近道です。
#NAME?をIFERRORで隠してもいい?
いけません。IFERROR で空白や0に見せかけても、関数名のスペルミスや未定義の名前といった根本原因はそのまま残ります。Microsoft の公式ドキュメントも構文の問題として必ず修正するよう求めています。本来計算されるべき値が出なくなるだけなので、原因そのものを直してください。
まとめ
参照・数式構造のエラーは、症状から原因を逆引きできれば怖くありません。最後に要点を整理します。
#REF!: 参照先が消えたサイン。まずCtrl+Z、戻せなければ正しいセル番地に入れ直す。範囲参照(B2:D2)にしておくと再発しにくい- 循環参照: ステータスバー左下を確認。番地が出ればそのセルの自己参照を外す。番地が出なければ別シート・名前付き範囲・反復計算設定を疑う(発生セル特定はデスクトップ版)
#NAME?: 名前の問題。関数名の綴り・クォート・コロンをまず確認し、名前付き範囲は名前マネージャーで存在を確認する。IFERRORで隠さない- コピーずれ: 固定したいセルに
$を付ける。$の右が固定される。F4でA1 → $A$1 → A$1 → $A1 → A1を切り替えられる - 別シート参照崩れ: シート名にスペース・数字があれば
'で囲む。シート削除による#REF!はCtrl+Zだけが復元手段
まずは冒頭の早見表で症状を特定し、各セクションの「30秒チェック」から手を付けるのが最短ルートです。Web版だけで行き詰まったら、診断機能の整っているデスクトップ版で開き直すと、ぐっと直しやすくなります。
