Google Sheetsの「循環依存性が検出されました」エラーは、ほぼすべての式を使用する場合に発生する可能性のある非常に一般的なエラーです。 Googleスプレッドシートにcircular dependency detectedエラーが表示された場合、これは数式が数式自体を含む範囲を参照していること、つまり数式入力が出力に依存していることを意味します。
googleスプレッドシートで循環依存性が検出されたエラーを修正するには、スプレッドシートに次のいずれかの変更を加えます:
- 数式が参照する範囲内に含まれていない別のセルに数式を移動する
- または、数式自体を含む範囲を参照しないように数式内の参照を調整します
)。 単一の数式の入力が、それ自身の出力によって決定されるデータに依存することができないのと同じように、2つの数式を同時に互いの出力に依存 これは、1つの間違った数式が2つの数式エラーを引き起こす混乱した状況を引き起こす可能性があります。
この記事では、google Sheetsでこの循環依存性が検出されたエラーが発生する可能性のあるいくつかの異なる例を説明し、それぞれの状況でエラーを修正す
スプレッドシートで循環依存性エラーが発生すると、数式エラーを含むセルにはセルの右上隅に小さな赤い三角形が表示され、セルのテキストには”#REF!”.
このエラーがあるセルの上にカーソルを置くと、下の図に示すように、次のメッセージが表示されるボックスがポップアップします。
“循環依存性が検出されました。 反復計算で解決するには、ファイル>スプレッドシートの設定を参照してください。”
通常、このエラーを修正するためにスプレッドシートの設定を実際に調整する必要はありません。
数式が参照している範囲内にある場合、これは数式入力が出力に「依存」していることを意味し、計算することはできず、エラーが発生します。
ここでは、エラーを説明するのに役立つ類推があります。 これは、あなたが次の数学の問題を与えられた場合のようなものです:
質問1:質問1の答えで10を割ります。
問題が実際に解決される前に出力/回答を知ることができないため、これを解決することは不可能です。
または、お互いの出力/位置を参照する2つの式の場合、ここでは別の類推があります。 これは、次の2つの数学の問題を与えられているようなものです:
質問1:質問2への答えは何ですか?
問2: 質問1への答えは何ですか?
ここでも、これは解決できません。 それぞれの質問に対する答えは、あなたの心を円で走らせる他のものに依存しています…したがって、”循環依存”というフレーズがあります。
これはあなたが混乱を感じさせないようにしてください。 あなたが知る必要があるのは、なぜそれが起こるのか、そしてそれを修正する方法だけです。
では、Googleスプレッドシートでこの”循環依存性が検出されました”エラーを解決する実際の例をいくつか見てみましょう。
循環依存性が検出されたエラーを修正する方法
循環依存性が検出されたエラーの最も簡単な例を見てみましょう。
下の画像は、単純に単一のセルを参照する式を示しています。 ただし、問題は、数式が参照しているセルが、数式が入力されているセルであることです(セルA1の数式は、セルA1を参照しています)。
ご覧のように、これは循環依存エラーを引き起こしています。
次の数式は、セルA1に入力するとエラーが発生します:
=
エラーを修正するには、数式を別のセルに移動するか、数式内の参照を変更して別のセルを参照するようにします。
この場合、セル参照をセルB1に変更します。
下の画像でわかるように、この調整により循環依存エラーが修正されました。
次の式が調整され、エラーが解決されました。
=B1
これで、セルA1にはセルB1にあるテキストが表示されます。
集計時の循環依存関係の修正
“循環依存関係が検出されました”エラーが発生する可能性がある一般的な状況は、Googleシートで集計しているときです。 これは、SUM数式が参照するのと同じ列にある場合、および数式参照が列全体をキャプチャする場合に最も頻繁に発生します。
下の画像は、セルA1からA5の数値を合計しようとする単純な合計式を示しています。
しかし、あなたが見ることができるように、合計式は列全体(A)を参照します。 SUM数式は列A(A6)内のセルに入力されるため、循環依存性が検出されたエラーが発生します。
次の数式は、列Aの任意の場所に入力するとエラーが発生します。
=SUM(A1:A)
このエラーを修正するには、数式の参照を調整して、その上のセルの値のみを合計するようにします。したがって、列全体を合計しようとするのではなく、参照内の終了行(合計式の上にある行)を指定します。
これを行うには、単に合計範囲をA1:A5に変更します。
これにより、下の画像に示すように、循環依存エラーが修正されます。
次の式が調整され、エラーが解決されました。
=SUM(A1:A5)
上の画像のSUM式は、セルA1からA5の合計に成功しました。 (1+2+3+4+5=15)
フィルタリング時の循環依存関係の修正
最後の例では、循環依存関係エラーを修正するために数式参照の行を調整する必要がありましたが、エラーを解
この例では、スプレッドシートに学用品とその価格のリストが入力されていて、1ドルを超える品目のリストが表示されるように数式でデータをフィ
下の画像でわかるように、フィルタ式には”循環依存性が検出されました”エラーがあります。 これは、ソース範囲への参照が原因であり、1つの列が広すぎます(フィルター式が配置されている場所を考慮して)。
数式が列Dを含む範囲A2:Dを参照する場合、数式を列Dに配置することはできません。
次の数式は、セルD2に入力するとエラーが発生します。
=FILTER(A2:D,C2:C>1)
上の画像に示すエラーを修正するには、ソースデータを参照する範囲をA2:DからA2:Cに変更します。
この調整を行うと、エラーが修正され、フィルタ式が正常に動作します。
次の式が調整され、エラーが解決されました。
=FILTER(A2:C,C2:C>1)
今、学用品はfiltered1以上の費用がかかる項目のリストを表示するためにフィルタリングされています。
このコンテンツは、もともとによって作成され、書かれましたSpreadsheetClass.com
if/thenステートメントを使用した循環依存関係の修正
さて、スプレッドシートで数式を使用する人に起こる可能性のある、より複雑な例を見てみましょう。 この例では、相互作用している2つの異なる式があり、そのうちの1つが正しく設定されていないため、それぞれが互いに参照している(依存している)
(なぜこれが起こるのかについての詳細な説明は、この記事のトップを参照してください)
下の画像に示すようなエラーが発生した場合、二重エラーが起こ 任意のトラブルシューティングシナリオのように…行うための最善のことは、最初から開始し、あなたが間違いを見つけるまで、データ/システムを介してあ
この例のシナリオは次のとおりです。列Aは1と0のタスクの完了を示します。列Bの数式は、列Aのデータを参照し、列Aの各セルに番号1または番号0があるかどうかに応じて、”Yes”または”No”というテキストを表示することを意図していました。 次に、列Cは列Bのセルを参照し、列Bの各セルがyesまたはnoと表示されるかどうかに応じて、「Complete」または「Not Complete」という単語を表示します。つまり、セルA3に数値1が含まれている場合、セルB3は「はい」、セルC3は「完了」と表示する必要があります。しかし、問題は、セルB3の式…列Aの1と0を参照する代わりに、シートの作成者が間違いを犯し、列Cを参照したことです(これは順番に参照しています)。 これにより、技術的にはいずれかの式のみが正しく設定されていたにもかかわらず、両方の式で循環依存エラーが発生します。
このタイプのミックスアップは、シートに多くの数式を使用する場合、特に一日中作成して疲れている場合に一般的です。
循環依存エラーの両方を修正するこの式を修正するには、画像の下に記載されている手順に従ってください。
次の数式は、セルB3を参照するセルC3の別の数式が原因で、セルB3に入力されたときにエラーが発生します:
=IF(C3=”Complete”,”Yes”,”No”)”)
この場合、エラーを修正するには、数式全体が誤って誤って書かれていたため、数式内の参照を変更するだけではありません。 そのため、列Bの数式は、列Aの隣接するセルに番号1がある場合は各行/セルに「はい」という単語を表示する必要があります(隣接するセルに0がある場合は「いいえ」という単語も表示されることに注意してください)。
セルB3の数式の修正されたロジックは、次のとおりです。セルA3が1の場合は”Yes”という単語を表示し、そうでない場合は”No”という単語を表示します。
次の式が調整され、エラーが解決されました:
=IF(A3=1,”Yes”,”No”)”)
これで、両方の式が正常に機能し、1つの式を修正することによって、両方の循環依存エラーが同時に修正されました。
ここで、列Bは列Aを参照し、列Bは列Cを参照します。 数式は、お互いの出力に同時に依存しなくなりました。
別のタブを参照するときに循環依存関係エラーを修正
“循環依存関係が検出されました”エラーに遭遇するもう一つの非常に一般的な方法は、式で別のタブを参照していて、参照にタブ名を含めることを忘れたときです。
以下のデータは、スプレッドシートに記載されている衣料品とそのサイズのリストを示しています。 別のタブの数式を使用してデータをフィルタリングし、サイズが「中」のアイテムのみを表示します。
下の図は、上記のソースデータを保持するタブとは別のタブにあるセルA2に入力されたフィルター式を示しています。
問題は、数式を入力したときにタブ名が省略されていたことです。
ソース範囲はA2:Bで、数式はセルA2にあるため、数式がそれ自身を参照していることを意味します。 つまり、数式が入力されたセルは、数式が参照する範囲内にあります。 これにより、循環依存性エラーが発生します。
次の数式は、セルA2に入力するとエラーが発生します。
=filter(A2:B,B2:B=”Medium”)”)
このエラーを修正するには、フィルター式の参照にタブ名を追加するだけです。
ソース範囲への参照は’Another Tab’になります!A2:B(タブ名にスペースがある場合は、タブ名参照の前後にアポストロフィを追加する必要があります)。
次の式が調整され、エラーが解決されました。
=filter(‘Another Tab’!A2:B、”別のタブ”!B2:B=”中”)