Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10160 / 13644 ツリー ←次へ | 前へ→

【23354】月ごとの集計方法について furuya 05/3/19(土) 10:29 質問[未読]
【23358】Re:月ごとの集計方法について G-Luck 05/3/19(土) 11:59 発言[未読]
【23361】Re:月ごとの集計方法について furuya 05/3/19(土) 14:36 質問[未読]
【23362】Re:月ごとの集計方法について G-Luck 05/3/19(土) 14:50 発言[未読]
【23385】Re:月ごとの集計方法について furuya 05/3/20(日) 17:06 お礼[未読]

【23354】月ごとの集計方法について
質問  furuya  - 05/3/19(土) 10:29 -

引用なし
パスワード
   いつもお世話になっております。
たとえば時系列に入力された売上票
(シート名:売上票、A列からD列の名前を tbl売上 と定義)があるとします。

(A列) (B列) (C列) (D列)
一連番号    年月日    担当者名    商品区分
1    2005/1/5    鈴木    01
2    2005/1/18    佐藤    02
3    2005/2/1    鈴木    03
4    2005/2/14    高橋    03
5    2005/2/16    佐藤    02
6    2005/2/28    山田    01
7    2005/3/3    山田    02
8    2005/3/14    佐藤    01
9    2005/3/15    高橋    03
10    2005/3/18    鈴木    01

上記表を別シート(シート名:月集計)に月ごとに集計(個数)したいのですが。

(たとえば下記のような様式で集計)
    1月    2月    3月
01            
02            
03            

月集計シートのA1:B2に、条件として

月    商品区分
TRUE    01

とします。( A2の条件式は、=MONTH(売上票!B2)=1 )

1月分の商品区分01をカウントする場合、

Sub syukei()
Dim kosuu As Long
kosuu = Application.WorksheetFunction _
.DCountA(Range("tbl売上"), 1, Worksheets("月集計").Range("A1:B2"))
msgbox kosuu
End Sub

とすればカウントされます。
ここで質問は、DCountAの3番目の引数の条件に、セル番地
(Worksheets("月集計").Range("A1:B2"))
ではなく、値や式を入れ指定することはできるのでしょうか。
何度がやってもうまくいきませんでした。
他に月ごとに集計する方法でベターなやり方があれば教えて下さい。
(>=2005/01/01 and <=2005/01/31 のような日付の指定だと煩雑になってしまうので、あくまでも =MONTH(売上票!B2)=1 のような条件式で月集計をしたいのです。)

【23358】Re:月ごとの集計方法について
発言  G-Luck  - 05/3/19(土) 11:59 -

引用なし
パスワード
   ▼furuya さん:
Excelのピボットテーブルを使ってみてはどうですか?

データ>ピボットテーブルとピボットグラフ レポート
にあります。

【23361】Re:月ごとの集計方法について
質問  furuya  - 05/3/19(土) 14:36 -

引用なし
パスワード
   ▼G-Luck さん:
ご回答ありがとうございます。
私としては、条件をVBAのコード内で指定したいのですが。
また、ピボットテーブルで1月、2月、3月・・・と集計できるやり方があれば教えて下さい。よろしくお願いします。

【23362】Re:月ごとの集計方法について
発言  G-Luck  - 05/3/19(土) 14:50 -

引用なし
パスワード
   ▼furuya さん:
ピボットテーブルについて
ピボットテーブルの年月日の部分を選択して、右クリック
グループと詳細の表示>グループ化
で月を選択して、OK

数式でやるなら
配列数式を利用して、
B1:B3に月が(書式:G/標準"月")
A2:A4に商品区分が入っているとして、B2に下記式、他はコピーしてください。
{=SUM(IF((年月日>=1)*(MONTH(年月日)=B$1)*(商品区分=$A2),1,0))}

VBAでやるなら、地道に数を数えるしかないように思いますが

【23385】Re:月ごとの集計方法について
お礼  furuya  - 05/3/20(日) 17:06 -

引用なし
パスワード
   ▼G-Luck さん:
VBAにこだわることなく、ピボットテーブルでやることがベターですね。
ありがとうございました。またよろしくお願いします。

10160 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free