dポイントプレゼントキャンペーン実施中!

Excel2003を使用しています。
例えば、B列に数値が入力されてあり、
5行ごとに小計を出してあるとします。
この場合、通常にオートSUMをすると小計以外の全ての数値が合計されてしまいますが、小計のみの合計を出す方法を教えていただきたいと願います。
行数が、かなり多いので手入力の式を作成するには時間がかかりすぎてしまいます。
よろしくお願いいたします。

A 回答 (4件)

こんにちは。

maruru01です。

小計が必ずあるなら、

=SUM(B1:B100)/2

と、半分にすればいいのでは?
あと、小計の数式が、

=SUM(B1:B5)

とすると、これを、SUBTOTALを使用して、

=SUBTOTAL(9,B1:B5)

に変更します。
すると、総合計を、

=SUBTOTAL(9,B1:B100)

とすると、小計以外の合計になります。
したがって、小計のみの合計は、

=SUM(B1:B100)-SUBTOTAL(9,B1:B100)

になります。

なお、小計の数式をSUBTOTALのものに変更するには、B列の範囲を選択して、
メニューの[編集]→[置換]で、
[検索する文字列]:「SUM(」
[置換後の文字列]:「SUBTOTAL(9,」
で[全て置換]すれば、一発で出来ます。
    • good
    • 0
この回答へのお礼

ありがとうございました。早速、書かれたとおりにやってみましたら、ばっちり出来ました!関数の利用に関しては、SUMばかりを多用することが多く、SUBTOTALの使い方、そしてまとめて置換する方法など、とてもわかりやすく書いてくださり勉強になりました。助かりました!

お礼日時:2004/11/21 23:29

既に答えはでていますが


subtotalを使う場合の、Sumとの関連が
判りにくいと思って補記します。
(例)B列に下記データがあるとします(a1等は印だけ)
1
2
 a1
3
4
3
 a2
1
6
2
3
3
1
 a3
 b1
とあった場合に
a1には=SUBTOTAL(9,B1:B2)で3
a2には=SUBTOTAL(9,B4:B6)で10
a3には=SUBTOTAL(9,B8:B13)で16
b1には=SUBTOTAL(9,B1:B14)で29
B1:B14と指定できるところに注意。
=SUM(B1:B14)では58(2倍)になってしまう。
=SUM(B1:B13)でも上手く行かない。
と入れるということです。Sumは使わない。
自動的に指定列の(小計のために空けてある)1空白行にsubtotal関数を埋め込む、マクロを作ってみました(ご参考)。
Sub aaa()
c = "B" 'B列の例
d = Range(c & "65536").End(xlUp).Row
t = d
For i = d To 1 Step -1
If Cells(i, c) = "" Then
f = "=subtotal(9," & c & i + 1 & ":" & c & t & ")"
Cells(t + 1, "B").Formula = f
t = i - 1
End If
Next i
f = "=subtotal(9," & c & i + 1 & ":" & c & t & ")"
Cells(t + 1, "B").Formula = f
End Sub
    • good
    • 0
この回答へのお礼

補記してくださった細やかな説明、さらに参考になりました。これから勉強していきたいと思います。ありがとうございました。

お礼日時:2004/11/21 23:35

A列に「小計」など識別できる文字が入っていれば、SUMIF関数で必要なB列のデータだけを拾えると思います。

あるいは、逆に小計セルだけをsubtotal関数で除くのはだめでしょうか?

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/shiki/sub0 …
    • good
    • 0
この回答へのお礼

確かに「計」という文字を入れてあります。SUMIFでも可能なのですね!本当に勉強になりました。

お礼日時:2004/11/21 23:33

小計の位置をB列、


数値の列をC列とすると

入力場所に
  =sumif(B:B,"小計",C:C)

でいけると思いますが
    • good
    • 0
この回答へのお礼

早速教えてくださりありがとうございました!

お礼日時:2004/11/21 23:30

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