【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
注目・最新の記事一覧
そのセル自身を参照すると循環参照が起こる
Excelで数式を入力したとき、以下のような「循環参照」のエラーメッセージが表示されることがあります。
このエラーメッセージの全文を書き起こすと、以下のようになります。
1つ以上の循環参照が発生しています。循環参照とは、数式が直接的または間接的に自身のセルを参照している状態を指します。これにより、計算が正しく行われない可能性があります。
循環参照を削除するか、数式を別のセルに移動してください。
循環参照は、「数式が直接的または間接的に自身のセルを参照している状態」にあるときに起こります。セル参照がループ(循環)している状態を表すため、循環参照と呼ぶわけですね。
このエラーメッセージの[OK]ボタンをクリックするとメッセージが閉じますが、それでは循環参照を許可したことになり、どこがエラーだったのかが分からなくなります。入力した数式は消去されずに残りますが、循環参照の修正は必須です。すぐに対処したほうがいいでしょう。
循環参照のエラーが発生した場所が分からなくなっても、後からチェックする方法があるので安心してください。【エクセル時短】第121回では、循環参照が起こる4つの原因と解決法について見ていきます。
数式中の自己参照
入力中の数式で、そのセル自身を参照してしまう「自己参照」は、循環参照のエラーが起こる典型例です。試しにセルA1に「1」、セルB1に「=A1+B1」と入力してください。
セルA1に「1」、セルB1に「=A1+B1」と入力したところ。数式を確定すると、循環参照のエラーが表示されます。
「セルA1の値とセルB1の値を足す」数式を、セルB1に入力するのはおかしいですよね。よって、循環参照になります。
関数式中の自己参照
関数式、つまり関数の引数における自己参照もよくある例です。以下はセルA1~A5に「1」「2」「3」「4」「5」、セルA6に「=SUM(A1:A6)」と入力しています。
SUM関数の引数に、そのSUM関数が入力されているセルが含まれています。
こうしたミスは、ドラッグ操作で引数を指定したときに起こりがちです。
数式の相互参照
「相互参照」とは、数式の結果を表示するセルの数式中で、そのセル自身が参照されている状態です。以下の例は、セルA1に「=A2+1」、セルA2に「=A1」と入力してあります。分かりやすいようにB列に数式を表示しています。
セルA2に「1」を足した結果をセルA1に表示したいのに、セルA2には「=A1」と入力されているため、計算がループしてしまいます。
セルA1に「=A2+1」、セルA2に「=A1」と入力した例。セルA1とA2が相互に参照することにより、エラーになります。
見積書などの明細行が複数あるファイルで、複数のセルを参照して集計するようなケースで起こりがちです。
条件式の相互参照
IF関数の条件式に、相互参照が含まれている場合もあります。以下の例は、セルA2に「=A3」、セルA3に「=IF(A1>=1000,A2*1.2)」と入力されています。本来は「=IF(A1>=1000,A1*1.2)」とすべきところを間違えてしまった例です。
セルA2に「=A3」、セルA3に「=IF(A1>=1000,A2*1.2)」と入力しています。
この関数式では「セルA1の値が1000以上かどうか」を判定しています。上の画面ではセルA1に「1000」と入力してあるので、結果は真(TRUE)となり、真の値である「1000」がセルA3に表示されます。よって、エラーは起こりません。
しかし、セルA1の値を「900」に変更すると、以下のようになります。
今度は循環参照のエラーが起こりました。
セルA1の値が「900」になると、セルA3の関数式の結果は偽(FALSE)となり、偽の値である「A2*1.2」を計算しようとします。しかし、セルA2ではセルA3を参照しているため相互参照が起こり、エラーとなるわけです。
循環参照をあらためてチェックする
循環参照のエラーが起こる原因は理解できたでしょうか。しかし、前述のように循環参照のエラーメッセージを閉じると、エラーが発生している場所が分からなくなります。
そのような場合は、[数式]タブの[エラーのチェック]ボタンを使って循環参照をチェックしましょう。自動的にエラーを起こしているセルに移動するので、[参照元のトレース]ボタンをクリックして、参照するセルと数式を比較していきます。
1循環参照のエラーのあるセルを表示する
[数式]タブの[エラーのチェック]ボタンにある[▼]をクリックして、[循環参照]にマウスポインターを合わせます。エラーに該当するセル番号が表示されるので、これをクリックします。
2参照元のセルを確認する
該当のセルに移動しました。[参照元のトレース]ボタンをクリックすると、数式の参照しているセルから矢印が表示されます。数式の内容をよく確認して、循環参照を修正してください。
以上、循環参照のエラーが起こる原因と解決法について解説しました。
自己参照や相互参照のミスは、関数の引数をドラッグで指定したり、オートフィルで数式をコピーしたりしたときに起こりがちです。気を付けているつもりでも無意識にやってしまうものなので、確認する習慣をつけましょう。不安なときには、[数式]タブの[エラーのチェック]ボタンからチェックすればOKです。