- ベストアンサー
循環参照させずに計算したい
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
ご質問で C6・C2とあるのはB列のことを言いたかったという事ですか? それでB6の合計値をB2に反映して、常に合計を0にしたいと。 その考えをそのまま式にしてしまうと、循環参照になります。 しかし、こう考えれば良いです。「B2に入っている数値は無視できる」。 B3からB5までを合計した数値の、プラマイ逆の数値がB2に入っていれば、常にB2~B5の合計値は0となります。 この考えを式にすると、次のようになります。 B2 =-SUM(B3:B5) B6 =SUM(B2:B5) これならば循環参照になりません。 …こういう話で、良いんでしょうか?
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17069)
例データ A2:B6 A 50 B -40 C -60 D 40 合計 -10 B6の式 =SUM(B2:B5) D2の式 =IF(AND(SUM($B$2:$B$5)<0,ROW()=2),SUM($B$2:$B$5,B2),B2) 下方向に式を複写。 意味は、$B$2:$B$5の和が負で、行が2行目に限り、B6値を加え、その他の行ではB列の値をそのまま。 結果A2:D6 A列 B列 D列 A 50 40 B -40 -40 C -60 -60 D 40 40 合計 -10 ーー もし、勘違いしてる場合は済みません。 何でこんな特殊なことをするか、現実のケースを想像出来なくて。
- f272
- ベストアンサー率46% (8467/18126)
D列の合計は0と書いてあるけど,実際には-20です。D2を本当に40にしたいのですか?
- sgey
- ベストアンサー率28% (92/321)
- kkkkkm
- ベストアンサー率66% (1719/2589)
B2を書き替えるのでしたら自分自身を自分自身をもとにした計算で書き替えるのですから循環参照しかないと思いますよ。 質問の画像のようにD列にでも書き出すしかないのではないでしょうか。 ちなみにそのままではD6は0にはなりませんが D2を60にするとかでしょうか 加算するというイメージを残した式だと D2を =IF(B6<0,B2+ABS(B6),B2) とかでしょうか。
- sgey
- ベストアンサー率28% (92/321)
失礼した、添付ファイルを間違った E列にD列の式を表示しました
- sgey
- ベストアンサー率28% (92/321)
循環参照にはなりません C6、C2などと書いて有るのはB6、B2ですね
お礼