Google Sheetsの「Circular dependency detected」エラーを修正する

beginner📗 Google Sheets2026-03-23| Google Sheets(ウェブブラウザ、OS不問)— Google Workspace / 個人用 Google アカウント

Error Message

Circular dependency detected. To resolve with iterative calculation, see File > Settings.
#google-sheets#循環依存#数式#反復計算

何が起きているか

数式を編集したところ、Google スプレッドシートが即座に次のエラーを表示しました:

Circular dependency detected. To resolve with iterative calculation, see File > Settings.

このエラーは、数式が直接、またはセルの連鎖を通じて自分自身を参照していることを意味します。最も単純な例は、A1 の中に =A1+1 を記述するケースです。あるいは、より長い連鎖として、A1B1 を参照し、B1A1 を参照するケースも同様です。どちらの場合も、スプレッドシートは無限にループすることなく値を解決できません。

Google スプレッドシートはデフォルトでこれらをブロックします。ほとんどの場合、範囲指定のタイプミスが原因です。累計計算やローン計算ツールは典型的な例外で、無限に繰り返す代わりに数式を一定回数再実行する反復計算が必要です。

ステップ 1 — 循環参照を見つける

設定を変更する前に、そのループが意図的なものか、数式のミスかを確認しましょう。いきなり反復計算を有効にすることは、実際のバグを隠してしまう一般的な原因となります。

問題のあるセルをクリックし、数式バーで参照を追跡してください。複雑なシートの場合は、連鎖を手動でたどります:

  • エラーが表示されているセルをクリックします。
  • 数式バーで数式を確認します。
  • 参照されている各セルを開き、そのセルが何を参照しているか確認します。
  • 数ステップ以内にループを発見できるまで追跡を続けます。

よく見られる2つのパターンがあります:

-- 数式のセルが自身の範囲に含まれている
A1: =SUM(A1:A10)   ← A1 は A1:A10 の一部

-- 2つのセルが互いを参照している
B2: =C2 * 1.1
C2: =B2 - 5        ← B2 → C2 → B2

原因を特定できましたか?設定変更は不要です。範囲または参照を直接修正してください。

ステップ 2 — 意図しない循環参照を修正する

ほとんどの場合、ループは単に範囲が1行広すぎることが原因です。以下のパターンに注意してください:

数式のセル自体が範囲に含まれている

-- 問題: A11 が集計対象の範囲に含まれている
A11: =SUM(A1:A11)

-- 修正: 範囲を1行上で終わらせる
A11: =SUM(A1:A10)

複数セルを経由した間接的なループ

-- 問題
D2: =E2 + F2
F2: =D2 * 0.9      ← D2 に戻るループ

-- 修正: ループしている参照を定数入力セルに置き換える
F2: =InputValue * 0.9   ← InputValue は数式ではなく単純な数値を保持

INDIRECT や名前付き範囲が自身を参照している

INDIRECT() を使用していますか?構築している文字列をよく確認してください。特定の行や列の条件によっては、そのセル自身を静かに参照してしまうことがあります。

ステップ 3 — 反復計算を有効にする(意図的な場合)

循環参照が意図的な場合もあります。複利計算の数式、自身に折り畳まれる累計、ローン償却モデルなど、これらは前回の結果を読み取る反復計算が本当に必要です。それが反復計算の目的です。

  • ファイル → 設定(または ファイル → スプレッドシートの設定)に移動します。
  • 計算 タブをクリックします。
  • 反復計算を有効にする にチェックを入れます。
  • 最大反復回数 を設定します。デフォルトの 50 がほとんどのケースで適切です。
  • しきい値 を設定します。どの程度の変化を「収束」とみなすかを指定します(デフォルト 0.05)。低い値ほど精度が高くなります。
  • 設定を保存 をクリックします。

有効にすると、スプレッドシートは 最大反復回数 に達するまで再計算を繰り返します。または、結果の変化がしきい値を下回った時点で早期に停止します。どちらか先に達した条件が適用されます。

注意点: この設定は1つの数式ではなく、スプレッドシート全体に適用されます。どの数式になぜ必要なのかを正確に理解している場合にのみ有効にしてください。

ステップ 4 — 反復計算の数式を安全に構成する

注意しないと、反復計算の数式は際限なく積み重なってしまいます。シートを読み込むたびや無関係な編集のたびに、新たな累積がトリガーされる可能性があります。シンプルなガードセルでこれを防ぎます:

-- 必要なときだけ累積する累計計算
-- A1(トリガーセル): 追加したいときは TRUE、それ以外は FALSE に設定
-- B1(アキュムレーター):
=IF(A1=TRUE, B1 + C1, B1)

-- A1 が TRUE のときのみ B1 に C1 を加算する
-- 累積後は A1 を FALSE に戻す

専用のトリガーセルを使用することで、数式は意図したときだけ実行されます。誰かがシートをクリックしたり、無関係なセルが再計算されるたびに勝手に加算されることがなくなります。

確認

完了とする前に簡単なサニティチェックを行います:

  • セルにはエラーバナーではなく数値が表示されているはずです。
  • セルをクリックすると、数式バーに数式がきれいに表示され、警告インジケーターがないことを確認します。
  • 無関係なセルを編集して再計算をトリガーします。修正したセルはエラーが再発することなく正しく更新されるはずです。
  • 反復計算が有効になっている場合、結果が安定することを確認してください。F5 を押すたびやシートを操作するたびに値が変わり続けないことを確認します。

学んだこと

  • SUM の範囲が最大の原因です。 SUM や AVERAGE の範囲が、数式が存在する行の手前で終わっていることを必ず確認してください。
  • 反復計算は応急処置ではありません。 ループの理由を理解せずに有効にすると、後になって問題を引き起こす実際のロジックエラーを隠してしまうことが多くなります。
  • この設定はセッションではなくスプレッドシート単位です。 ファイルを開くすべての人が共有します。設定が有効になっていることを知らないコラボレーターも含まれます。
  • 共有シートでは、反復計算が意図的に有効になっていることを説明するコメントや専用のメモセルを残しておきましょう。将来のチームメンバーに感謝されるはずです。

Related Error Notes