- 締切済み
途中で増加量を変化させるにはどうしたらいいですか?
途中で増加量を変化させるにはどうしたらいいですか? ゲームの収入の計算に用いています。 増加量 500 1月 1000 2月 1500 3月 2000 4月 2500 ここで5月からの増加量を800にして 5月 3200 6月 4000 7月 4800 としていきたいのですが.. 増加量の部分を途中で800に変えると 1月 1000 2月 1800 3月 2600 4月 3400 5月 4200 6月 5000 7月 5800 8月 6600 のようになってしまいます。 ゲームの計算に用いているので収入の増加量が変化します。表を作りたいわけではなく変化後の5月の値(3200)さえ分かればいいので1~4月の値はどうなってもいいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
結果が下記のようになるようにします。 A,B,C列について (便宜的に、ーは空白セルを表しています)。 B列の入力は変化したセルだけ入力で済むようにします。変化しない間は空白セルにします。 元データA 増加量B A+B=C列 200 400 600 300 ー 700 500 600 1100 800 ー 1400 900 40 940 1000 ー 1040 800 60 860 1100 - 1160 1200 - 1260 ーーーー ユーザー定義関数aaaを作っておいて C列の式はC列C2で =A2+aaa(B2) と入れる。 そして、下方向に式を複写します。結果は上記C列です。 ーーー ユーザー定義関数aaaの作り方は、 シート面でALTキーを押しながら、F11キーを押す。 VBE画面になり、挿入ー標準モジュール Module1に Function aaa(c As Range) If c <> "" Then aaa = c Else aaa = c.End(xlUp) End If End Function を貼り付ける。 意味はB列の指定セルが空白でないなら、そのセルの値を、空白ならEND+↑矢印の操作で指定されるセルの値をとる、というものです。
- bunjii
- ベストアンサー率43% (3589/8249)
>4月 2500 >ここで5月からの増加量を800にして >5月 3200 >6月 4000 計算が合いませんね。 4月の2500に800を加算すると3300です。 5月の3200に800を加算すると4000です。 どう言う論法でしょうか? >増加量の部分を途中で800に変えると >1月 1000 >2月 1800 >3月 2600 初期値の1月はキーボードから入力で2月以降は前月に増加量のセルに入力された値を加算してますよね?、途中で加算用のセルの値を変えるとすべてのセルが再計算されて元の値を書き換えます。 増加量を途中で変化させるとき変化前の値を残して変化時点の値は常に保つ必要があります。 貼付画像のB3には次の数式を入力しています。 =B2+INDEX(C:C,MAX(INDEX((C$2:C3<>"")*ROW(C$2:C3),0))) 下へ必要数コピーすれば目的に合うと思います。
- watabe007
- ベストアンサー率62% (476/760)