エクセルで行を挿入して小計合計を出したい
質問ですが,以下の参考としたマクロについて,データが1支店1件しかない場合は行を挿入せずにこのままとしたい場合はどのように修正すれば良いか教えていただけませんでしょうか。
1支店2件以上のデータがある場合は,以下の参考としたマクロのとおり行を挿入して小計を計算表示する。
支店コード1001 20000円 200円 ← 行挿入不要 小計無し
1002 30000円 200円
1002 45000円 300円
小計 75000円 500円
参考にした質問・アドレス
A列に支店コード(4桁の数値)、J列に金額、K列に手数料があります。
支店は5箇所でデータは1支店あたり100~500行ほどあります。全支店のデータが連続しています。
1.支店コードの最終行の下に1行挿入し、J列,K列の小計を計算する。
2.最後の支店の小計の下に一行あけてJ列,K列の合計をしたい。
Sub test01()
d = Range("a2").CurrentRegion.Rows.Count
' MsgBox d
Cells(d + 1, 1) = "END"
Dim st1, gt1, st2, gt2 As Long
st1 = 0: gt1 = 0: st2 = 0: gt2 = 0
mk = Cells(2, 1)
'==========
For i = 2 To 10000
If Cells(i, 1) = "END" Then Exit For '最終行判定
If Cells(i, 1) = mk Then '前行とコード同じか
'------今回行分加算
st1 = st1 + Cells(i, 2)
st2 = st2 + Cells(i, 3)
Else
mk = Cells(i, 1)
'--------小計
Cells(i, 1).EntireRow.Insert
Cells(i, 1) = "小計"
Cells(i, 2) = st1
gt1 = gt1 + st1
st1 = 0
Cells(i, 3) = st2
gt2 = gt2 + st2
st2 = 0
'-----今回行分加算
i = i + 1
st1 = st1 + Cells(i, 2)
st2 = st2 + Cells(i, 3)
End If
Next i
'============終了
'-------小計
Cells(i, 1) = "小計"
MsgBox st1
Cells(i, 2) = st1: gt1 = gt1 + st1: st1 = 0
Cells(i, 3) = st2: gt2 = gt2 + st2: st2 = 0
'-------合計
Cells(i + 1, 1) = "合計"
Cells(i + 1, 2) = gt1
Cells(i + 1, 3) = gt2
End Sub
アドレス http://okwave.jp/qa/q414647.html
お礼
mtaka2様、御教示ありがとうございます。 その後ネットでパイプライン・インターロック(ハザード検出ユニット)の具体的な構成(論理回路)を見つけて、御説明の内容をイメージできるようになりました(つもりです)。 どうもありがとうございました。