【エクセルマクロ】重複データから最大値を抽出:作業効率アップ

エクセルマクロ_重複データから最大値を抽出_アイキャッチ ExcelVBA

エクセルマクロで、重複データから最大値を抽出するVBAコードをご紹介します。

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

重複データから最大値を抽出

以下のExcelVBAを実行すると、重複しているデータの中から1番大きい数値を抽出します。


Sub 重複データから一番大きい数値を取り出す()

Dim DicName, DicCount, myKey As Variant
Dim i, j As Long
Dim Cnt, Ten As Long
Dim GetName As String

    '連想配列
    Set DicName = CreateObject("Scripting.Dictionary")
    Set DicCount = CreateObject("Scripting.Dictionary")

    '2~最終行までループ
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

        '値を変数へ
        GetName = Cells(i, 1)

        '重複しないリストを連想配列へ
        If Not DicName.Exists(GetName) Then
            DicName.Add GetName, GetName
        Else
            '重複しているリストを連想配列へ
            If Not DicCount.Exists(GetName) Then
                 DicCount.Add GetName, GetName
            End If
        End If
    Next i

    myKey = DicCount.keys
    Cnt = 2

    '重複しているリストをループ
    For i = 0 To UBound(DicCount.items)

        Ten = 0

        For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row
            If Cells(j, 1) = myKey(i) Then

                '数値を比較
                If Ten < Cells(j, 2) Then
                    Ten = Cells(j, 2)
                End If
            End If
        Next j

        '最大値を転記
        Cells(Cnt, 4) = myKey(i)
        Cells(Cnt, 5) = Ten
        Cnt = Cnt + 1
    Next i

End Sub

 
A列に重複データがある時、
B列の中で一番大きい数値を抽出して転記します。


 
 

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

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

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説