Excel一覧 Excel操作 検索・抽出 重複データの処理と可視化

【Excel】重複の削除を“行単位”で行う方法|1行全体の重複チェックと削除手順を徹底解説

Excelで重複の削除といえば、特定の列(たとえば「名前」や「ID」など)をキーに処理することが一般的ですが、「行ごとにまったく同じ内容のデータが重複している場合、それを1件だけ残して削除したい」というニーズも非常に多くあります。

たとえば以下のようなケースです:

氏名生年月日所属部署
山田1990/01/01経理部
山田1990/01/01経理部
佐藤1992/04/10営業部

上記では「山田・1990/01/01・経理部」の行が完全に一致して2回出現しており、これを「1件だけ残して削除」したい、あるいは「すべて削除」したいという要望に応じた処理方法を解説していきます。

行単位で重複削除とは?

判定方法対象
セル単位特定の列(氏名、IDなど)
行単位すべての列の値が一致した行

本記事では、「すべての列の値が一致している行=重複行」として扱い、それを削除する方法を複数紹介します。

【Excel】重複削除を正しく行う方法|関数・フィルター・Power Queryを使いこなす実践ガイド

Excelの「重複の削除」機能で行単位の重複を削除する方法

もっとも簡単に行単位の重複を削除できるのは、Excelの標準機能「重複の削除」です。

操作手順:

  1. データ範囲全体(例:A1:C100)を選択

  2. 「データ」タブ →「重複の削除」

  3. 「すべて選択」にチェックが入っていることを確認

  4. 「OK」をクリック

これにより、列のすべての値が完全に一致する行だけが重複と見なされ、1件を残して他の同一行が削除されます。

特徴:

  • 非常に簡単・高速

  • 1行のすべての値を基準に自動で重複判定

  • 元のデータが変更されるため、事前にコピー推奨

【Excel】重複を色付けして視覚的にわかりやすくする方法|条件付き書式・関数・応用設定まで徹底解説

COUNTIFS関数を使って完全一致行を特定して削除する方法

削除前に「本当に重複しているか確認したい」場合や、「重複がある行を色分けしたい」場合には、COUNTIFS関数を使った判定がおすすめです。

手順:

  1. 判定列(たとえばD列)に以下の式を入力:

    =COUNTIFS($A$2:$A$100, A2, $B$2:$B$100, B2, $C$2:$C$100, C2)

  2. =2以上なら重複行と判断可能

  3. フィルターや条件付き書式を使って強調表示・削除が可能

応用:

  • =1 の行だけを残す

  • >1 の行を削除

  • =2 のみ削除(2回だけ出現)など細かい条件設定が可能

【Excel】重複データを抽出し件数をカウントする方法|関数・ピボット・Power Queryを活用した集計テクニック

Power Queryで完全一致の行を削除する方法

Power Queryでは、行単位の重複判定もすべての列を一括で指定するだけで簡単に行えます。

手順:

  1. データを選択 →「データ」タブ →「テーブルまたは範囲から」

  2. Power Queryエディタが起動

  3. すべての列を選択(Ctrl+クリック)

  4. 「ホーム」→「行の削除」→「重複の削除」

  5. 「閉じて読み込む」で新しいシートに出力

メリット:

  • 元データを壊さず、安全に処理できる

  • データ追加後も「更新」だけで再処理可能

  • 複数列が存在する大規模データにも対応

VBAで1行すべての値が一致している重複行を削除する方法(高速処理向け)

大量データや定期処理には、VBAを使った自動化が便利です。

サンプルコード:

Sub 完全一致行を削除()

Dim ws As Worksheet
Dim dict As Object
Dim lastRow As Long, i As Long
Dim rowKey As String

Set ws = ActiveSheet
Set dict = CreateObject("Scripting.Dictionary")

lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

For i = lastRow To 2 Step -1

rowKey = ws.Cells(i, 1).Value & "|" & ws.Cells(i, 2).Value & "|" & ws.Cells(i, 3).Value
If dict.exists(rowKey) Then

ws.Rows(i).Delete

Else

dict.Add rowKey, 1

End If

Next i

MsgBox "完全一致した行の削除が完了しました。"

End Sub

ポイント:

  • rowKey に行のすべてのセル値を連結して1つの判定キーを生成

  • 重複があれば削除。最初の1行のみを残す仕様

  • データ量が多くても高速

重複行を1件も残さずすべて削除したい場合

上記のVBAを少し変更すれば、「完全に一致した行はすべて削除(1件も残さない)」という処理にも対応可能です。

' 出現回数を先にカウントし、2回以上出現した行をすべて削除

このような処理は重複チェック用データベースのクレンジングなどで活躍します。

・注意点とトラブル対策

トラブル内容原因解決方法
一見同じに見えるのに削除されない空白やスペース、データ型の違いがある場合TRIMCLEAN・数値型統一などの前処理を実施
重複判定が不正確比較対象となる列が一部抜けている列すべてを範囲に含めて指定すること
データが上書きされてしまった元のデータで直接削除を実行してしまった必ず「コピーシート」で検証 → 本番データへ反映
Power Queryで順序が保持されない並び順がリセットされることがある必要に応じて「インデックス列」を作成して並び順を保持

・まとめ:行ごとの完全一致を見極めて、正確な重複削除を実現しよう

方法特徴
重複の削除機能最も手軽。すべての列を指定することで行単位の削除が可能
COUNTIFS関数削除前に確認でき、柔軟な条件指定が可能
Power Query更新対応・非破壊処理に最適
VBAマクロ大量データの処理や定型業務の自動化に最適

行単位での重複判定と削除を正確に行うことは、データ品質の向上と処理精度に直結します。目的に応じて最適な方法を選び、効率よくデータ整理を進めましょう。

    -Excel一覧, Excel操作, 検索・抽出, 重複データの処理と可視化