下記データをB列の種別ごとに集計できる関数またはマクロをお願いします。
答え
B列 G列 H列 I列 J列
AAAAAA 0000-00-00 00:00:00 0 0
AAAAAA 2011/4/27 19:12:00 0 0 DoCoMo
AAAAAA 0000-00-00 00:00:00 1 1
AAAAAA 0000-00-00 00:00:00 0 0 KDDI
AAAAAA 2011/4/30 19:12:00 0 0
AAAAAA 2 5 4 2
BBBBBB 2011/4/29 19:12:00 0 1 DoCoMo
BBBBBB 0000-00-00 00:00:00 1 0
BBBBBB 0000-00-00 00:00:00 0 1 KDDI
BBBBBB 2011/4/28 19:12:00 0 0
BBBBBB 2 4 2 2
B列のコードの最後に同じコード名を1行足して表示し
その行に各列の集計をする。
G列は0以外の日付の入った件数
H列は全件数
I列は0の件数
J列は表示文字の件数
よろしくお願いします。
B列は同じ値が連続するとして作成しています。
連続していない場合はB列でソートすればいいです。
また、G列の日付以外の文字列は"0000-00-00 00:00:00"としています。
過去の質問の"0000/00/00 00:00:00"を使っている場合はコード中のその部分を変更してください。
先頭行は1行目からにしていますが、2行目からの場合は10行目の
stRow = 1
を
stRow = 2
にしてください。
Sub Macro() Dim i As Long Dim lastRow As Long Dim stRow As Long Dim myG As Long Dim myH As Long Dim myI As Long Dim myJ As Long Dim c As Long stRow = 1 lastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = stRow To lastRow If Cells(i + c, "G").Text <> "0000-00-00 00:00:00" And Cells(i + c, "G").Value > 0 Then myG = myG + 1 End If myH = myH + 1 If Cells(i + c, "I").Value = 0 Then myI = myI + 1 End If If Cells(i + c, "J").Value <> "" Then myJ = myJ + 1 End If If Cells(i + c, "B").Value <> Cells(i + c + 1, "B").Value Then Rows(i + c + 1).Insert c = c + 1 Cells(i + c, "B").Value = Cells(i + c - 1, "B").Value Cells(i + c, "G").NumberFormatLocal = "G/標準" Cells(i + c, "G").Value = myG Cells(i + c, "H").Value = myH Cells(i + c, "I").Value = myI Cells(i + c, "J").Value = myJ myG = 0 myH = 0 myI = 0 myJ = 0 End If Next i End Sub
早速ありがとうございます。
上手くゆきました。
ありがとうございました。