Dictionaryを使用して重複のないユニークなリスト作成以外にも、データ集計としても使用する事が可能です。
その場合、itemの要素を更新する必要があります。
(例) ・仕入先単位で在庫数や在庫金額を計算したい。
・商品分類単位で売上累計額や、売上個数を知りたい。
・DM反響を調べるために、DM持参者から地域を判別したい。
・商品分類単位で売上累計額や、売上個数を知りたい。
・DM反響を調べるために、DM持参者から地域を判別したい。
Dictionaryのキーの要素を変更・更新するサンプルコード

'参照設定 Microsoft Scripting Runtime
Public Sub sample()
Dim dic As Dictionary
Set dic = New Dictionary
Dim i As Long
Dim dItem As String
Dim dSale As Long
'■売上ログデータから商品分類集計を行う
For i = 2 To 7
dItem = Cells(i, 2).Value
dSale = Cells(i, 5).Value
If dic.Exists(dItem) = True Then
'■既にキーが存在していれば、値を足す
dic(dItem) = dic(dItem) + dSale
Else
'■キーが存在していなければ、値を新規作成
dic.Add (dItem), dSale
End If
Next i
Debug.Print dic.Keys(0) & "/" & dic.Items(0) '化粧品/2500
Debug.Print dic.Keys(1) & "/" & dic.Items(1) '日用品/2400
Debug.Print dic.Keys(2) & "/" & dic.Items(2) 'ベビー用品/5200
End Sub
注意点
- 配列と異なり、Loopで検索する必要がなくExistsメソッドで対応する為、シンプルなコードになります。
- 今回のサンプルでは売上合計の集計データ作成ですが、itemに配列を持たす事で keys 化粧品 items売上個数4 売上金額2,500といった管理も可能です。



コメント