|
条件を満たすデータのカウントをしたいのですが、途中まで考えたところでどうすればいいのかわからなくなってしまい投稿しました。
データには日付と分類番号があります。
他にも列がありますが、今回はあえて記述していません。
番号 分類番号 日付
1 1 2006/06/01
2 1 2006/06/01
3 2 2006/06/01
4 3 2006/06/01
5 5 2006/06/01
6 3 2006/06/02
7 4 2006/06/02
6 3 2006/06/03
7 4 2006/06/03
8 5 2006/06/03
9 1 2006/06/04
10 3 2006/06/05
・
・
・
上記のデータより例えば6/2から6/4までで、分類番号ごとのデータの数をカウントする場合「COUNTIF」関数を使用すればいいと思い、
(B1セルに6/2とD1セルに6/4というデータが入っています)
COUNTIF(C:C,">="&B1)-COUNTIF(C:C,">"&D1)
とりあえず6/2から6/4までのデータ数をカウントする方法を考えましたが、それから分類番号ごとで絞り込むところがわかりません。。。
ワークシートのセルに数式を入れていくと処理が遅くなるようなのでVBAで以下のように書いてみましたが、これは初期の段階のもので分類番号のみのカウントをしています。
Dim hai() As Variant
Dim j As Integer
Dim Dai As Integer
Dim cnt As Integer
For j = 1 To 5
Dai = WorksheetFunction.CountIf(ws.Range("C2:C65535"), j)
hai(j) = Dai
Next
For cnt = 1 To j
Worksheets("Sheet1").Cells(cnt, 2).Value = hai(cnt)
Next cnt
最初に書いた日付指定の式を上記に組み込めればいいのですが、ちょっとわかりません。
C2より以降にデータが入っているのですが、何行あるかはわからないので最終行までカウントする方法をとっています。
いいアドバイスをお願いします。
|
|