hirax.net::inside out::2009年07月25日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2009年6月 を読む << 2009年7月 を読む >> 2009年8月 を読む

2009-07-25[n年前へ]

エクセルにおける循環参照時の計算順序 

 表計算ソフトのエクセルを使えるようになりたいと考えた。そこで、(これまで近づかないようにしていた)エクセルを使ってみることにした。まずは、エクセルの計算順序について調べてみた。もう少し具体的に書くと、計算の順番が「セル配置」に依存するのはどのような場合かを調べてみた。

 まず、最初にわかったのは「循環参照がない場合」には、(各セルの)計算順序は「セル配置」に依存しないということである(エクセルの計算プロセスの詳細)。また、「手動計算」や「反復計算」を行うようなオプション設定にしていたとしても、循環参照さえなければ(各セルの)計算順序は「セル配置」に依存しなかった。

 その一方で、循環参照があると、(各セルの)計算順序は「セル配置」に依存するようになる。具体的には、左上から横1行を計算したあと、その下の1行を計算し、さらにその下の1行を計算する…という具合である。

 だから、「反復計算」を1回だけ「手動計算」で行うような設定にし、
B1に2
A1に=B2
C1も=B2
B2は=B1
B1にA1-C1
という風に入力し、F9を押して手動計算させると、次々と値が変わり、6回周期の動きを示す。しかもA1とC1はいつも同じ値だが、その差分をとっているはずのB1は、ゼロになる瞬間もあるが、2とか-2とかゼロでない値にもなる。

 これは、循環参照が行われている場合に、反復計算オプションを付けた際の「各セルの計算順序」が前述のようだからである。当たり前の話のようだが、少し面白い。