エクセルマクロ 重複データを削除し合計を合算する(動画あり)

エクセルマクロ 重複しない地域名リストと売上合計を算出アイキャッチ ExcelVBA

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

このページのマクロコードは、コピペで使えます。
動画で動作確認ができます👇

重複データを削除し合計を合算する

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


Sub 重複データを削除し合計を合算()

Dim myDic As Object
Dim myKey As Variant
Dim myItem As Variant
Dim myList As Variant
Dim i As Long
    
    Set myDic = CreateObject("Scripting.Dictionary")
    
    'A列,B列のデータを配列に格納
    myList = Range("A2", Range("A" & Rows.Count). _
                     End(xlUp)).Resize(, 2).Value
     
    '連想配列にデータを格納
    For i = 1 To UBound(myList, 1)
    
        '地域名が空欄かチェック
        If Not myList(i, 1) = Empty Then
            If Not myDic.exists(myList(i, 1)) Then
            
                '重複しない地域名を取得
                myDic.Add Key:=myList(i, 1), Item:=myList(i, 2)
            Else
           
                '売上金額を加算
                myDic(myList(i, 1)) = myDic(myList(i, 1)) + myList(i, 2)
            End If
        End If
    Next
        
    '[地域名] 重複していないリストを格納
    myKey = myDic.keys
    
    '[売上]   地域名の合計を格納
    myItem = myDic.items
    
    'リストを出力
    For i = 0 To UBound(myKey)
        Cells(i + 2, 5).Value = myKey(i)
        Cells(i + 2, 6).Value = myItem(i)
    Next

    '開放
    Set myDic = Nothing

End Sub

 

マクロ実行後


 

配列について

下記の1行のコードを使用するだけで、

A列とB列のすべての値を、配列として取得することができるので便利です。

[myList = Range(“A2”, Range(“A” & Rows.Count).End(xlUp)).Resize(, 2).Value]


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】重複データを自動処理する使用例まとめ
 

【エクセルマクロ】重複データを自動操作:超便利13選
...

 

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