【エクセルマクロ】重複データを1行にまとめる:動画あり

vba-重複を1行にまとめる-アイキャッチ ExcelVBA

エクセルマクロで、重複データを1行にまとめるVBAコードをご紹介します。

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

重複データを1行にまとめる

以下のマクロを実行すると、重複している隣のデータを1つにまとめて転記します。


Sub 重複データをまとめる()

Dim i As Long
Dim j As Long
Dim LastRow As Long
Dim Buf As String

    '最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    '転記開始行
    j = 1

    Application.ScreenUpdating = False

    '1から最終行までループ
    For i = 1 To LastRow

        'B列の値を格納
        Buf = Buf & Cells(i, 2) & ","

        '現在の行と、次の行の値を比較
        If Cells(i, 1) <> Cells(i + 1, 1) Then

            'D列に転記
            Cells(j, 4) = Cells(i, 1)

            'E列に転記
            Cells(j, 5) = Left(Buf, Len(Buf) - 1)

            '次のループ前に事前処理
            Buf = ""
            j = j + 1
        End If
    Next i

    Application.ScreenUpdating = True

End Sub

マクロ実行前

A列を基準に、データを並べ替えておきます。

マクロ実行後

A列が重複していたらB列を結合し、1行にまとめて出力します。


 

重複データを1行にまとめる(応用)

以下のマクロを実行すると、重複データを結合して1行にまとめます。


Sub 重複データをまとめる()

Dim i As Long
Dim j As Long
Dim LastRow As Long
Dim Buf As String

    '最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    '転記開始行
    j = 1

    '1から最終行までループ
    For i = 1 To LastRow

        'B列の値を格納
        Buf = Buf & Cells(i, 3) & ","

        '現在の行と、次の行の値を比較
        If Cells(i, 1) & Cells(i, 2) <> Cells(i + 1, 1) & Cells(i + 1, 2) Then

            'E列・F列に転記
            Cells(j, 5) = Cells(i, 1)
            Cells(j, 6) = Cells(i, 2)

            'G列に転記
            Cells(j, 7) = Left(Buf, Len(Buf) - 1)

            '次のループ前に事前処理
            Buf = ""
            j = j + 1
        End If
    Next i

End Sub

マクロ実行前

A列とB列を基準に、データを並べ替えておきます。


 

マクロ実行後

A列とB列が重複していたら、C列を結合します。


 
 
この記事がお役に立ちますと幸いです。
 

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

 

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