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といった管理も可能です。
コメント