【エクセルマクロ】重複データに連番をふる:作業効率アップ

エクセルマクロ_重複データに連番をふる_アイキャッチ ExcelVBA

エクセルマクロで、重複データに連番をふるVBAコードをご紹介します。

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

重複データに連番をふる

以下のExcelVBAを実行すると、重複しているセルに連番を振ります。


Sub 重複データに連番を入力する()
  
Dim DicName As Variant
Dim DicCount As Variant
Dim i As Long
Dim j As Long
Dim Cnt As Long
Dim LastRow As Long
Dim GetName As String
Dim myKey As Variant
 
    '連想配列
    Set DicName = CreateObject("Scripting.Dictionary")
    Set DicCount = CreateObject("Scripting.Dictionary")
     
    '最終行
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
 
    '列をループ
    For i = 2 To LastRow
 
        '値を変数へ
        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 = 1

  Application.ScreenUpdating = False
        
    '重複しているリスト分ループ
    For i = 0 To UBound(DicCount.items)
    
        For j = 1 To LastRow
            If Cells(j, 1) = myKey(i) Then
            
                '通し番号を振る
                 Cells(j, 2) = Cnt
                 Cnt = Cnt + 1
                 
            End If
        Next j
        
        Cnt = 1
        
    Next i

  Application.ScreenUpdating = True
      
    Set DicName = Nothing
    Set DicCount = Nothing
      
End Sub

 
重複している値に連番を入力しました。

下図を例にすると、「ブドウ」 は重複データが計4つあり、連番「1~4」振られています。
重複していないデータには、連番は入力されません。


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

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

 

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