解決済みの質問
エクセルのセル(横並び)に数値が入っていて、引き算での集計値を求めたいのですが、何かよい関数はありませんか?
(SUMのマイナス版と言ったところでしょうか)
例:
A1 | B1 | C1 | D1 | E1
1000| 500| 200| 100|=(A1-B1-C1-D1)
見たいなかんじで、全てを引き算したいです
(E1には200が入ります)
後から列を挿入すると式にも追加をしなければならないので、それを解消する方法でもいいのですが
よろしくお願いします
投稿日時 - 2002-11-10 00:26:05
#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列の前に挿入)した場合には、対応していません。
投稿日時 - 2002-11-11 01:27:34
お礼
ありがとうございます
わかりやすい説明で助かります
すごくわかりました
これで無事解決できそうです
ほかのお返事くださった皆様もありがとうございました
投稿日時 - 2002-11-11 02:17:33
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(5件中 1~5件目)
みなさん こんにちは
OFFSET()での数式が出ると INDIRECT()の方法も(^^;
どの列にて挿入作業をしても
(B列)~(式の入る手前の列)までの値をA列の値から
引く式をお望みなら
=A1-SUM(INDIRECT("B"&ROW()&":"&CHAR(63+COLUMN())&ROW()))
AとBの間で列を挿入することがないのであれば
=A1-SUM(B1:INDIRECT(CHAR(63+COLUMN())&ROW()))
でも可能です。
投稿日時 - 2002-11-10 12:23:56
お礼
ありがとうございます
INDIRECT()
またまた難しい関数が・・・
今回私には使いこなせそうにないです
勉強します
投稿日時 - 2002-11-11 02:15:22
#3のご回答の一部に対する疑問です。
>D列とE列の間に列を挿入すると算式を修正する必要がある。
例えばA1に=sum(b1:c1)といれ、C列を指定して列挿入すると、=SUM(B1:E1)となり、変化してくれましたが。
対象セルが増えるのが困るのでしょうか。
>質問の「後から列を挿入すると式にも追加をしなければならないので、それを解消する方法でもいい」
対象セルが増えて欲しいと受け取れますが。
投稿日時 - 2002-11-10 08:02:47
お礼
ありがとうございます
対象のセルは増えていきます
nishi6さんの言いたかったのは、多分cafedemochaさんの返事でのつなぎだと思います
投稿日時 - 2002-11-11 02:13:40
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です)
投稿日時 - 2002-11-10 01:42:55
お礼
ありがとうございます
OFFSET関数、知らなかったです
勉強になりました
助かりました
投稿日時 - 2002-11-11 02:07:39
OKWaveのオススメ
おすすめリンク