【エクセルマクロ】複数列の重複データを削除し合計を合算する

vba-複数列の重複データを削除し合計を合算-アイキャッチ ExcelVBA

エクセルマクロで、複数列の重複データを削除し合計を合算するマクロコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

複数列の重複データを削除し合計を合算

以下のマクロを実行すると、複数の列の重複データを削除し合計を合算します。


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自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!