エクセルマクロで、重複データに連番をふる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秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク