- ベストアンサー
Excelで 循環参照とでないようにするにはどうしたらよいですか?
在庫表を作ったのですが A B C残 D E残 F 1入庫 1 0 3 2 2 2出庫 1 1 上記の表を作成しました C1=A1+B1-B2 E1=C1+D1-D2 F1=E1 のように 数式を入れ F1に数字がはいったとき F1の数字をA1=F1に数式を入れると 循環参照のエラーがでてしまいます このような時 自動でF1の数字をA1に入れることができますか? 関数での式は 可能ですか? 教えて下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
例の在庫表と数式が見づらく良く分かりづらい。 それ以前にどの様な処理がしたいのかちょっと分からないですね。 1)A1には予めご自分で入力した数値を入れるのでしょうか? ※入れるのであれば、既にA1に値が入っているので関数等でやる事は循環以前に不可能です。 関数で処理する場合はこれは、まだ発生していない値で処理する為に循環参照になるのは当然です。 従って、関数であろうと不可能です。 マクロでやる場合は別です。出したF1の値をA1に貼り付ける様なマクロを組めば良い訳ですから… 2)A2の値はどうでも良いのでしょうか? ※どうでも良いなら(-)とかして頂かないと分かりづらいです。 3)D1やD2の値は何処にあるのですか? ※ないならE1の値は成り立ちません。この場合例題なら(0)と入れるべきです。 確かに空白でも数式的には正解ですが… そうでないと第3者には分かりません。 4)F1と言うのは推測するに最終的な在庫数なのでしょうか? ※最終的な在庫数で次回は手打ちでA1(入庫)部分で入力したくないと言う理由でA1=F1としたいのであれば、これは明らかにマクロで処理した方が良いと思います。 アドバイスとしてcommand buttonを作ってそのボタンを押すとF1の値をA1にコピペする様なマクロを作った方が簡単です。 Range("F1").Copy Range("A1").PasteSpecial Paste:=xlPasteValues こんな感じで良いかと思いますが。。。
その他の回答 (4)
- mshr1962
- ベストアンサー率39% (7417/18945)
計算の流れでみるならF1=E1とはせずに、集計後にE1の結果をF1に値として貼り付ける作業にすればいいのでは? 別段、手入力でもかまいませんが... 手動がいやなら、マクロを組んで上記を行うようにするしかありません。
- toshi_2000
- ベストアンサー率30% (306/1002)
なぜ、そういう動作をさせたいのかが分かりませんが、関数を使用する限り循環参照が出てしまいます。 F1に何か数字が入った時にその数字をA1に入力したいのならマクロを使用するしかないでしょう。
正に循環参照なので出来ません。 F1の数値はA1に値がないと計算できません。 ですから、A1=F1ってことはありえないのです。 そういうのを「循環」というのです。 なにがやりたいのかを整理すれば、循環には、ならないですよ。
- 6dou_rinne
- ベストアンサー率25% (1361/5264)
A1が確定しないとF1がきまりませんし、F1が確定しないとA1がきまりませんのでこのような数式は成り立ちませんので循環参照エラーとなります。 関数でも同じです。