Excel VBA質問箱 IV

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

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


3777 / 13645 ツリー ←次へ | 前へ→

【60253】データ集計について ふくじ 09/2/6(金) 0:01 質問[未読]
【60254】Re:データ集計について kanabun 09/2/6(金) 0:20 発言[未読]
【60258】Re:データ集計について ふくじ 09/2/6(金) 9:37 お礼[未読]

【60253】データ集計について
質問  ふくじ  - 09/2/6(金) 0:01 -

引用なし
パスワード
   データの集計についてわからないことがあります。

品名|data1|data2|data3
あああ| 1| 2| 3
あああ| 1| 2| 3
いいい| 4| 5| 6
ううう| 7| 8| 9
いいい| 4| 5| 6

このようなデータを、

品名|合計|データ数
あああ|12| 6
いいい|30| 6
ううう|24| 3

というようにまとめたいモジュールを書いたのですが・・・

Sub test()
  
  Dim rng As Range
  Dim v
  Dim ss As String
  Dim i As Long
  Dim dic As Object
 
  Set dic = CreateObject("Scripting.Dictionary")
  Set rng = Worksheets(1).Range("A2", Cells(Rows.Count, 1).End(xlUp))
  
  v = rng.Resize(, 3).Value
  For i = 1 To UBound(v)
    ss = v(i, 1)
    dic(ss) = dic(ss) + 1 + v(i, 7) + v(i, 8) + v(i, 9)
  Next

'集計結果を新しいシートに書き出す
Worksheets(2).Range("A2").Resize(dic.Count, 3).Value = Application.Transpose(Array(dic.keys, dic.items, dic.items))

End Sub

合計、データ数の計算がわからず悩んでいます。
どなたかご教授願います。

【60254】Re:データ集計について
発言  kanabun  - 09/2/6(金) 0:20 -

引用なし
パスワード
   ▼ふくじ さん:
こんばんは。

>合計、データ数の計算がわからず悩んでいます。

Dictionaryをもうひとつ追加して、
  dic は合計用、
  dic2 は データ数用
としたら、どうですか?

Sub Try1()
  Dim rng As Range
  Dim v
  Dim ss As String
  Dim i As Long, j As Long
  Dim dic As Object
  Dim dic2 As Object
  
  With Worksheets(1)
    v = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 4).Value
  End With
  Set dic = CreateObject("Scripting.Dictionary")
  Set dic2 = CreateObject("Scripting.Dictionary")
  dic("品名") = "合計"
  dic2("品名") = "データ数"
  For i = 1 To UBound(v)
    ss = v(i, 1)
    For j = 2 To 4
      If IsEmpty(v(i, j)) Then Exit For
      dic(ss) = dic(ss) + v(i, j)
      dic2(ss) = dic2(ss) + 1
    Next
  Next

  '集計結果を新しいシートに書き出す
  Worksheets(2).Range("A1").Resize(dic.Count, 3).Value = _
    Application.Transpose(Array(dic.Keys, dic.Items, dic2.Items))
 
  Set dic = Nothing
  Set dic2 = Nothing

End Sub

【60258】Re:データ集計について
お礼  ふくじ  - 09/2/6(金) 9:37 -

引用なし
パスワード
   kanabun さん

おはようございます。

うまくいきました!ありがとうございます!!
とても勉強になりました。

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