• ベストアンサー

エクセルでマイナス合計?

エクセルのセル(横並び)に数値が入っていて、引き算での集計値を求めたいのですが、何かよい関数はありませんか? (SUMのマイナス版と言ったところでしょうか) 例: A1 | B1 | C1 | D1 | E1 1000| 500| 200| 100|=(A1-B1-C1-D1) 見たいなかんじで、全てを引き算したいです (E1には200が入ります) 後から列を挿入すると式にも追加をしなければならないので、それを解消する方法でもいいのですが よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

#3さんの回答とほぼ同じですが、 OFFSETを使って A1の1つ右セルからE1(合計表示のセル)の1つ左のセルまでを合計し、A1から引けばいいと思います。 --------------------------------------- =A1-SUM(OFFSET(A1,0,1):OFFSET(E1,0,-1)) --------------------------------------- この式は=A1-SUM(B1:D1)と同じ事ですが、 例えば =A1-SUM(B1:D1)とした時に、C列や、D列の上で挿入した場合には =A1-SUM(B1:E1)と式が変化しますが、 B列の上で挿入(A列とB列の間に挿入)した場合=A1-SUM(C1:E1)となり、 E列の上で挿入(D列とE列の間に挿入)した場合には変化しません。 上記の式は、それに対応した式になっています。 ただし、A列の上で挿入(A列の前に挿入)した場合には、対応していません。

ikethinn
質問者

お礼

ありがとうございます わかりやすい説明で助かります すごくわかりました これで無事解決できそうです ほかのお返事くださった皆様もありがとうございました

その他の回答 (5)

  • comv
  • ベストアンサー率52% (322/612)
回答No.5

みなさん こんにちは OFFSET()での数式が出ると INDIRECT()の方法も(^^; どの列にて挿入作業をしても (B列)~(式の入る手前の列)までの値をA列の値から 引く式をお望みなら =A1-SUM(INDIRECT("B"&ROW()&":"&CHAR(63+COLUMN())&ROW())) AとBの間で列を挿入することがないのであれば =A1-SUM(B1:INDIRECT(CHAR(63+COLUMN())&ROW())) でも可能です。

ikethinn
質問者

お礼

ありがとうございます INDIRECT() またまた難しい関数が・・・ 今回私には使いこなせそうにないです 勉強します

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3のご回答の一部に対する疑問です。 >D列とE列の間に列を挿入すると算式を修正する必要がある。 例えばA1に=sum(b1:c1)といれ、C列を指定して列挿入すると、=SUM(B1:E1)となり、変化してくれましたが。 対象セルが増えるのが困るのでしょうか。 >質問の「後から列を挿入すると式にも追加をしなければならないので、それを解消する方法でもいい」 対象セルが増えて欲しいと受け取れますが。

ikethinn
質問者

お礼

ありがとうございます 対象のセルは増えていきます nishi6さんの言いたかったのは、多分cafedemochaさんの返事でのつなぎだと思います

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

 A1| B1| C1| D1| E1 1000| 500| 200| 100| 式 のE1に、例えば、  =A1-SUM(B1:D1) とすれば、計算はできるが、D列とE列の間に列を挿入すると算式を修正する必要がある。 ということでしょうか。(A列とB列の間の挿入もダメでしょう) 1行目の計算は、上の状態で、E1に  =$A1-SUM(OFFSET($A1,0,1):OFFSET($A1,0,COLUMN($E:$E)-2)) とすれば、D列とE列の間(またはA列とB列の間)に列を挿入しても算式を修正する必要はありません。 下方向にコピー可能です。 1行目の場合、A1の右のセルから集計する列の左のセルまでの集計値をA1から引いています。 なお、この式はC列から使うことができます。(Excel2000です)

ikethinn
質問者

お礼

ありがとうございます OFFSET関数、知らなかったです 勉強になりました 助かりました

回答No.2

へ?これじゃぁ、まずいのかなぁ? =A1-SUM(B1:E1) 列を追加する時は、E列とB列の間にすれば、勝手に範囲に入れてくれるけど・・・ ()で括れば、中はただの和でしょ?、これじゃぁ不都合あるんですか?

ikethinn
質問者

お礼

ありがとうございます D列とE列の間もカバーしたいですが、これだとできないですよね

  • anc_anc
  • ベストアンサー率33% (17/51)
回答No.1

A1-Σ(Bi+Ci+Di+Ei)ではどうでしょうか? 後から列の挿入はFi+Gi+・・・と加えていけば良いです。

ikethinn
質問者

お礼

ありがとうございます Σ(Bi+Ci+Di+Ei) というのがちょっとわかりません けれど、それだと列の追加をしたときには 手動で追加しないといけないような感じですね

関連するQ&A