|
▼kanabun さん:
>さて、話が「グループ別集計作業」に戻りますが、
>グループ別に集計するには Dictioanryオブジェクト
>というものを使うといいです。
>
>いま、以下のようなテーブルがあったとします。
>'---------------
> A B
>'コード 数量
>'123 10
>'456 10
>'123 10
>'789 10
>'123 10
>
>Sub Try_Dic()
> Dim ColA As Range
> Dim v
> Dim ss As String
> Dim i As Long
> Dim dic As Object
>
> Set dic = CreateObject("Scripting.Dictionary")
> Set ColA = Range("A2", Cells(Rows.Count, 1).End(xlUp))
> v = ColA.Resize(, 2).Value 'A,B列のデータ
> For i = 1 To UBound(v)
> ss = v(i, 1) '同じKey(コード)に Item(数量)を加えていく
> dic(ss) = dic(ss) + v(i, 2)
> Next
>
> '集計結果を新しいシートに書き出す
> With Worksheets.Add(After:=ActiveSheet)
> .Range("A2").Resize(dic.Count, 2).Value = _
> Application.Transpose(Array(dic.Keys, dic.Items))
> End With
>
>End Sub
>
>' ------------ 結果はこうなります
>'123 30
>'456 10
>'789 10
>
>
>キー(グループ名)がはじめから分かっているばあい、
>キー別集計作業は 上のように Dictionaryを使うと簡単にできます。
ありがとうございました。
あまりにレベルが高すぎて(質問した私のレベルが低いのがいけないのですが)
もう一度じっくり考え直してひとつずつ質問していきたいと思います
|
|