プロが教える店舗&オフィスのセキュリティ対策術

 A B
   1 
 2 B2=B1+A2
 3 B3=B2+A3
 4 B4=B3+A4
 5 B5=B4+A5
としたまで続いています
そこで3行目を削除したら、
A B
  1
2 3
4 #REF!
5 #REF!
となってしまいます
削除したら自動的に
A B
  1
2 3 
4 7
5 12
となるようにしたいのです、または、
上の表の3行目と4行目の間に挿入したら
A B
  1
2 3
4 7
  7
5 12
となるようにしたいのです

計算は、ひとつ上の行の数字を下の行の数字を足したいのです

※添付画像が削除されました。

A 回答 (6件)

>削除したら自動的に


>挿入したら

どちらも無理です。
今のところ、そんなに柔軟に対応できるようにはなっていないので、変更を加えたら式を修正して下さい。
    • good
    • 0

削除の場合だけなら、数式が入っているセルに



=INDIRECT("R"&ROW()&"C"&COLUMN()-1,0)+INDIRECT("R"&ROW()-1&"C"&COLUMN(),0)

と入力することで解決しますけど…
    • good
    • 0

=OFFSET(INDIRECT("B"&ROW()),-1,)+OFFSET(INDIRECT("B"&ROW()),,-1)

    • good
    • 0

こんばんは!


参考になるかどうか判りませんが・・・

一つの案としてです。

Sheet1は何も数式を入れずに数値のみ入力するようにします。

そして、Sheet1で行の削除・挿入を行っても希望の表示がSheet2で
できるようにしてみてはどうでしょうか?

↓の画像のSheet2のB1セルに
単純に =Sheet1!B1 としています。

A2セルに
=IF(COUNT(Sheet1!A:A)<ROW(A1),"",INDEX(Sheet1!A:A,ROW()))

B2セルに
=IF(A2="","",B1+A2)

という数式を入れ、A2・B2セルを範囲指定し、
B2セルにフィルハンドルで下へコピーすると
画像のような感じになります。

これでSheet1で色々操作してもそのままSheet2の方に表示されると思います。

以上、参考になれば幸いですが、
他に良い方法があれば読み流してくださいね。m(__)m
「エクセルの表計算について教えてください」の回答画像4
    • good
    • 0
この回答へのお礼

作業用のシートを利用する方法など考えもつきませんでした。
自分一人で考えるよりも相談するほうがいろんな意見が出てくることがわかりました。
ありがとうございます。

お礼日時:2009/10/26 07:45

通常は行の削除では問題を解決することはできますが、挿入となりますと単なる空白の行が挿入されるので、当然、式などのコピーなどはありません。


したがって単なる挿入ではなく、コピーした行を挿入する操作をせざるをえません。
削除だけでしたら次の式をB2セルに入力して下方にオートフィルドラッグすればよいでしょう。
=IF(A2="","",MAX(B$1:B1)+A2)
このような式は残高などの計算によくつかわれますね。
ところでこの式を例えば10行までドラッグしてもA列のデータが空であればB列も空となっています。挿入の場合にはこの空の行、例えば10行目をコピーして4行目を選択して右クリックし、「コピーしたセルの挿入」を選択すれば、この式がコピーされて貼りつきます。しかしA4セルが空白のためB4セルにはデータが表示されません。
この問題を解決するためにはB2セルに次のような式を入力し、下方にオートフィルドラッグすることでしょう。
=IF(ROW()>MATCH(10^10,A:A),"",MAX(B$1:B1)+A2)
この式を例えば10行目までドラッグしておきますと、3行目の削除ではB列にデータが表示されます。単に4行目に行を挿入するだけでは空白のままでB列にデータは表示されませんが、例えば6行目をコピーして、4行目で「コピーしたセルの挿入」を実施すればお示しのような結果が表示されます。
なお、MATCH(10^10,A:A)の式は数値がA列に入力されている場合の最下段の行を検索するために使われる式です。
    • good
    • 0
この回答へのお礼

あきらめかけていたのですが、できるかも?からできる!に気持ちが変わりました。

ありがとうございました。

お礼日時:2009/10/26 07:42

解答No5です。

ご質問ではB2セルへの入力式はNo5の式で十分ですがA列にマイナスなどの数値がある場合には問題です。
次の式をB2セルに入力して下方にオートフィルドラッグするのがよいでしょう。
=IF(ROW()>MATCH(10^10,A:A),"",SUM(A$2:A2)+B$1)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!