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

エクセル2007で、10行毎の小計行の下に累計行、その下に10行毎の小計行、その下に累計行
というように累計をだしていきたいと思っています。
途中の数行(小計行、累計行も含んだ)を削除することが多く、そうすると、数式がエラーになって
計算できなくなってしまいます。
N行おき 小計 累計 という感じで検索して
MOD関数やROW関数を使ってみましたが、途中の行を削除するとうまくできません

途中の行を削除しても数式がエラーになることなく答えがでるようには無理でしょうか...
詳しい方どうか教えてください よろしくお願いします。

B列には項目C列には計算したい数字がはいっています
3行目から12行目までデータがはいっていて、
C列の13行目:3行目から12行目までの小計
C列の14行目:累計 C列の3行目から12行目までの合計
15列目から24行目までデータがはいっていて、
C列の25行目:15行目から24行目までの小計
C列の26行目:累計 C列の14行目+C列の25行目
26行目以降も100行目くらいまでデータと小計、累計のデータがあるのですが

  A、  B、   C
3 NO.1、りんご、10
4 NO.2、みかん、11



12 NO.10、ばなな、10
13 小計       37
14 累計       37
15 NO.1、りんご、3
16 NO.2、みかん、10



24 NO.10、ばなな、10
25 小計       40
26 累計       77




15から26行目を削除するとその次の累計の行がエラーになってしいます
マクロとかそういったものを使わないと無理でしょうか...

もしできたらすごく助かります。同じようなシートが何枚もあるので..

A 回答 (4件)

C13には


=SUBTOTAL(9,C3:C12)
C14には
=SUBTOTAL(9,C$3:C13)
と入れておきます。

C25には
=SUBTOTAL(9,C15:C24)
C26には
=SUBTOTAL(9,C$3:C25)
と入れておきます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

すごくスッキリした式でできてしまうのですね
SUBTOTALで出来ると知らなかったので
勉強になりました。

他の管理するファイルで使ったらきれいに
計算できました。

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

お礼日時:2012/03/20 12:59

》 10行毎の小計行の下に累計行、その下に10行毎の小計行、


》 その下に累計行というように累計をだしていきたいと…

添付図のように、10行毎に別列に小計を、その右列に累計をだしていくのでは駄目ですか?
E3: =IF(B3=MAX(B:B),SUMIF(A:A,A3,D:D),"")
F3: =IF(E3="","",SUM(E$2:E3))

こうしておくと、「途中の行を削除しても数式がエラーになることなく答えがでるようには」なります。
「エクセルで小計の累計」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

小計と累計は、右よりも下にだしたいといわれたので、
すみません・
でも、エクセルで添付していただいて見やすくてわかりやすかったです
勉強になりました。

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

お礼日時:2012/03/20 13:03

作業列としてD列を使用するとしてD3セルには次の式を入力して下方にオートフィルドラッグします。



=IF(A3<>"累計","",COUNTIF(A$3:A3,"累計"))

A列で小計と入っている行でC列の行には次の式を入力します。(C13セルに)

=IF(INDEX(A:A,ROW())="小計",IF(COUNTIF(A$3:INDEX(A:A,ROW()-1),"累計"),SUM(INDEX(C:C,MATCH(MAX(D$3:INDEX(D:D,ROW()-1)),D:D,0)+1):INDEX(C:C,ROW()-1)),SUM(C$3:INDEX(C:C,ROW()-1))),"")

A列で累計と入っているC列の行には次の式を入力します。(C14セルに)

=IF(INDEX(A:A,ROW())="累計",IF(COUNTIF(A$3:INDEX(A:A,ROW()-1),"累計")=0,INDEX(C:C,ROW()-1),INDEX(C:C,MATCH(MAX(D$3:INDEX(D:D,ROW()-1)),D:D,0))+INDEX(C:C,ROW()-1)),"")

例えば上の式をC13,C14セルに入力したのならこの2つのセルを選択してコピーし、C25のセルに貼り付ける。など該当するセルに次々と貼り付けます。

上のようにすれば累計と小計がある限り途中の行が削除されても問題はないでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

わかりにくい説明で申し訳なかったですが、
どのセルに式を入力するのか等詳しく
回答ありがとうざいます。

試してみたら途中の行を削除しても
大丈夫でした。

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

お礼日時:2012/03/20 14:19

こんばんは!


A列には規則正しく、「小計」と「累計」が入っているという前提です。
VBAでの一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i As Long
For i = 13 To Cells(Rows.Count, 1).End(xlUp).Row Step 12
Cells(i, 3) = WorksheetFunction.Sum(Range(Cells(i - 10, 3), Cells(i - 1, 3)))
Cells(i + 1, 3) = WorksheetFunction.SumIf(Range(Cells(3, 1), Cells(i, 1)), "小計", _
Range(Cells(3, 3), Cells(i - 1, 3)))
Next i
End Sub 'この行まで

※ Sheet数が多くあるというコトですが、Sheetの配列が同じであれば
すべてのSheetに対応させるコードも可能です。

お望みの方法でなかったらごめんなさいね。m(_ _)m
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

マクロで作ることが出来るなんですごいですね
コピーして貼り付けてみました。
エラーになりませんでした
勉強になりました。

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

お礼日時:2012/03/20 13:49

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