EXCELでマクロを使って、小計、合計の出し方
1.部の中にそれぞれ、営業1課、営業2課、…があり、社員と売上金額が表示されている下記のようなデータがあります。
部、課、社員の数は、実際はもっとたくさんあり、それぞれの件数は、毎月変化します。
マクロを使って、課毎計、部毎計、総合計を出す方法を教えて下さい。
試しに作りましたら、下記のような結果になり、うまくいきません。
元データ
部 課 社員 金額
A 営業1課 a 10
A 営業1課 b 20
A 営業1課 c 30
A 営業2課 d 40
A 営業2課 e 50
A 営業2課 f 60
B 営業1課 g 70
B 営業1課 h 80
B 営業1課 I 90
B 営業2課 j 100
B 営業2課 k 110
B 営業2課 l 120
実行結果
× 正解
部 課 社員 金額 金額
A 営業1課 a 10 10
A 営業1課 b 20 20
A 営業1課 c 30 30
営業1課 計 60 60
A 営業2課 d 40 40
A 営業2課 e 50 50
A 営業2課 f 60 60
営業2課 計 210 150
A 合計 110 210
B 営業1課 g 70 70
B 営業1課 h 80 80
B 営業1課 I 90 90
営業1課 計 240 240
B 営業2課 j 100 100
B 営業2課 k 110 110
B 営業2課 l 120 120
営業2課 計 570 330
B 合計 230 570
総合計 780 780
Sub 合計計算()
Sheets("元").Select
Sheets("元").Copy Before:=Sheets(2)
Dim GYO1 As Long '部 グループの先頭行
Dim GYO2 As Long '部 グループの最終行
Dim GYO3 As Long '課グループの先頭行
Dim GYO4 As Long '課グループの最終行
Dim GYO As Long '小計、合計行
Dim strFORMULA As String
GYO = 2
'空白でない間、次の作業を繰り返す
Do While Cells(GYO, 1).Value <> ""
GYO1 = GYO
GYO = GYO + 1
'部が同じ間、次の作業を繰り返す
Do While Cells(GYO, 1).Value = Cells(GYO1, 1).Value
GYO = GYO + 1
'課が同じ間、次の作業を繰り返す
GYO3 = GYO
Do While Cells(GYO, 2).Value = Cells(GYO3, 2).Value
GYO = GYO + 1
Loop
'課計
GYO2 = GYO - 1
Rows(GYO).Insert
Cells(GYO, 2).Value = Cells(GYO3, 2).Value & " 計"
Cells(GYO, 4).FormulaR1C1 = "=SUBTOTAL(9,R" & GYO1 & "C:R" & GYO2 & "C)"
GYO = GYO + 1
Loop
'部計
GYO4 = GYO - 1
Rows(GYO).Insert
Cells(GYO, 1).Value = Cells(GYO1, 1).Value & " 合計"
Cells(GYO, 4).FormulaR1C1 = "=SUBTOTAL(9,R" & GYO3 & "C:R" & GYO4 & "C)"
GYO = GYO + 1
Loop
' 総合計
Cells(GYO, 1).Value = "総合計"
Cells(GYO, 4).FormulaR1C1 = "=SUBTOTAL(9,R1C:R" & GYO2 & "C)"
Range("A1").Select
End Sub
2.尚、この質問のように表形式のデータを間隔をあけて原稿を作成しても確認画面になると、間隔が詰まります。間隔が詰まらない方法も教えて下さい。
お礼
有難うございます。 時間掛かりましたが、エラーが出ない答えが出てきました。 助かりました!