エクセルマクロで、複数列の重複データを削除し合計を合算するマクロコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
複数列の重複データを削除し合計を合算
以下のマクロを実行すると、複数の列の重複データを削除し合計を合算します。
Sub 複数列の重複データを削除し合計を合算()
Dim myDic As Object
Dim myKey As Variant
Dim myItem As Variant
Dim i As Long
Dim Target As String
Dim tmp As Variant
Set myDic = CreateObject("Scripting.Dictionary")
'連想配列にデータを格納
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
'セルを結合した値を変数格納
Target = Cells(i, 1) & "_" & Cells(i, 2) & "_" & Cells(i, 3)
'すでに変数格納した値か確認
If Not myDic.exists(Target) Then
'重複しない値と個数を取得
myDic.Add Key:=Target, Item:=Cells(i, 4)
Else
'個数を合算
myDic(Target) = myDic(Target) + Cells(i, 4)
End If
Next
'重複していないリストを格納
myKey = myDic.keys
'合算した合計を格納
myItem = myDic.items
Application.ScreenUpdating = False
'取得したデータを出力
For i = 0 To UBound(myKey)
'商品名、カテゴリ、産地を出力
tmp = Split(myKey(i), "_")
Cells(i + 1, 6) = tmp(0)
Cells(i + 1, 7) = tmp(1)
Cells(i + 1, 8) = tmp(2)
'合計した個数を出力
Cells(i + 1, 9).Value = myItem(i)
Next
Application.ScreenUpdating = True
'開放
Set myDic = Nothing
End Sub
マクロ実行後
A列、B列、C列が全て同じデータの場合、D列の個数を合算します。
取得結果を、F列以降に出力します。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】重複データを自動処理する使用例まとめ
【エクセルマクロ】重複データを自動操作:超便利13選
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク