エクセルマクロ 重複データが3つ以上の値を抽出:自動化

エクセルマクロ_重複データが3つ以上の値を抽出_アイキャッチ ExcelVBA

エクセルマクロで、重複データが3つ以上の値を抽出するVBAコードをご紹介します。

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

重複データが3つ以上の値を抽出

以下のExcelVBAを実行すると、重複データが3つ以上あるデータを抽出します。


Sub 重複データが3つ以上存在する場合に値を抽出()

Dim DicName As Variant
Dim DicCount As Variant
Dim i As Long
Dim j As Long
Dim GetName As String
Dim myKey As Variant
Dim myItem As Variant

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

    '配列をループ
    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, 2
             Else
                 '重複件数を数える
                 DicCount(GetName) = DicCount(GetName) + 1
            End If
        End If
    Next i

    myKey = DicCount.keys
    myItem = DicCount.items
    j = 2

    '3つ以上重複しているデータをC列に転記
    For i = 0 To UBound(DicCount.items)
        If myItem(i) >= 3 Then
            Cells(j, 3) = myKey(i)
            j = j + 1
        End If
    Next i

    Set DicName = Nothing
    Set DicCount = Nothing

End Sub

 

マクロ実行後

A列の中で3つ以上重複しているデータを、C列に転記します。


 

補足

[If myItem(i) >= 3 Then] の 「3」→「5」に変更すると、
5つ以上重複している値のみ抽出することができます。
 

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

【エクセルマクロ】重複データを自動操作:超便利13選
エクセルマクロで、重複データを自動操作するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!

 

[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう

ChatGPTと対話しながら身につける、新しいVBA入門

Excelマクロ・VBAをAIと一緒にラクに習得したいなら、まず読んでおきたい一冊です!


★★★★★ 4.6 ※ Amazonカスタマーレビューより
マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
変数・条件分岐・ループなどVBAの基礎もしっかり解説されている