サイトアイコン HIBISEI Blog

エクセルのデータ整形で重複した行を削除する方法

あなたはエクセルのデータを整形するときに、重複した行を一気に削除できたら便利なのにと思ったことはありませんか?

エクセルのマクロを使えば、ボタン一つで重複した行を一気に削除できます。

今回は「エクセルのデータ整形で重複した行を削除する方法」を紹介します。

エクセルのデータ整形で重複した行を削除する方法

エクセルのデータ整形で重複した行を削除する方法です。

下の赤枠、緑枠が重複になっていますので、これを消していきます。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.「新規作成」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

選択範囲の行の重複をチェックして、重複していたら行を削除する、という意味です。

赤枠部のコードです。

   Dim 対象範囲 As Range
    Dim 行 As Range
    Dim チェック範囲 As Range
    Dim 対象行 As String
    Dim 重複 As Boolean
    
    ' 選択範囲を取得
    Set 対象範囲 = Selection
    
    ' 選択範囲が空でない場合のみ実行
    If Not 対象範囲 Is Nothing Then
        ' 各行ごとに重複をチェック
        For Each 行 In 対象範囲.Rows
            対象行 = ""
            重複 = False
            
            ' 行の各セルの値を連結
            For Each チェック範囲 In 行.Columns
                対象行 = 対象行 & CStr(チェック範囲.Value)
            Next チェック範囲
            
            ' 同じ行が既に出現していたら重複と判定
            For Each チェック行 In 対象範囲.Rows
                If 行.Address <> チェック行.Address Then
                    チェック行値 = ""
                    For Each チェック範囲 In チェック行.Columns
                        チェック行値 = チェック行値 & CStr(チェック範囲.Value)
                    Next チェック範囲
                    If 対象行 = チェック行値 Then
                        重複 = True
                        Exit For
                    End If
                End If
            Next チェック行
            
            ' 重複があれば行を削除
            If 重複 Then
                行.Delete
            End If
        Next 行
    End If

コードを入力したら、コードの入力画面を閉じて下さい。

5.ボタンができた →範囲を選択 →ボタンをクリック

ボタンができました。

範囲を選択して、ボタンをクリックします。

赤枠と緑枠の行は重複だったのですが、これが消えて、一行だけ残りました。

これなら重複チェックが簡単です。

これなら重複チェックと行の削除が一気にできて、ラクですよね!

まとめ

エクセルのデータ整形で重複した行を削除する方法のまとめです。

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.新規作成をクリック

3.コードを入れる画面が出る

4.コードを入力

5.ボタンができた →範囲を選択 →ボタンをクリック

6.重複した行が削除される

これでデータの整形が楽になりますね!

エクセルのマクロを使うと、2つの表の比較もやりやすくなります。

比較や重複確認、突合を速くしたい方は、下のリンク先も参考にしてみて下さい。

→エクセルの表でA列とB列を比較して重複確認や突合する方法

モバイルバージョンを終了