アプリに戻る

Excelで重複行を検出・削除する方法

最終更新:2026-05-22 · 作成:xlstools チーム

重複は無数の経路でスプレッドシートに紛れ込みます:DB エクスポートの再実行、CRM システムの統合、コピペミス、二重インポート。本ガイドでは2つの重複削除モード、適切なキー列の選び方、削除前のデータ検証方法を解説します。


重複検出の2つの方法

最重要の判断は「重複」がデータにとって何を意味するか。

1. 全行マッチ

両行ですべてのセルが一致する場合のみ重複。最も厳格 — 1列の余分な空白でも別行扱い。

用途:完全なバイト単位コピーのみ削除したい場合。同じ行を含むエクスポートの連結後によく使用。

2. キー列マッチ

「キー」列を1つ以上選択;これらの列値が一致する行は他のフィールドに関わらず重複扱い。

用途:論理主キー(emailorder_idemployee_id)があり、他列に多少の差異(更新タイムスタンプ違い、書式バリエーション)があってもキーごとに1行にしたい場合。


ステップバイステップ

ステップ1 — Excelファイルをアップロード

.xlsx または .xls。ツールはブラウザ内で読み込み列リストを表示。

ステップ2 — 重複削除モードを選択

全行マッチキー列マッチを切り替え。キー列モードを選んだらキー列も選択。

ステップ3 — どの重複を残すか選択

重複発見時、1行残し他を削除。あなたが決定:

  • 最初の出現を残す(デフォルト)— 元の順序で最早の行を保持
  • 最後の出現を残す— 最新行を保持(後行に完全データがある時に有用)

ステップ4 — プレビューを確認

ツールが重複行をハイライト表示、進行決定前に閲覧。確認:本当に重複に見えるか?それともキーが狭すぎたか?

ステップ5 — ダウンロード

1回の実行で2ファイル生成:

  1. ユニーク行 — 重複削除済み結果(あなたのクリーンデータセット)
  2. 重複行 — 削除されたもの(監査用に保存)

適切なキー列の選び方

ここで重複削除の大半が失敗。

キー列選択 結果
email ✅ 強 — メールは通常人ごとにユニーク
order_id ✅ 強 — 注文IDは定義上ユニーク
employee_id + date ✅ 時系列に良(社員ごと日ごと1行)
first_name + last_name ⚠️ 弱 — 2人の異なる「John Smith」が1行に潰される
phone_number ⚠️ 弱 — 書式漂流(+1-555-1234 vs 5551234)で偽陰性
timestamp_ms ❌ 無用 — 粒度細かすぎ、重複が永遠に検出されない

経験則:気にするエンティティを一意に識別する列を選び、単に「埋まっている」列ではない。


大文字小文字の区別

文字列比較はデフォルトで区別"[email protected]""[email protected]"。区別しない重複削除には:

  1. まずクリーナーで空白トリム(真犯人のことも多い)
  2. それでもケースが異なる場合、ソースでキー列を小文字化(Excel: =LOWER(A2))後に重複削除

主な利用シーン

複数ソース顧客リストの整理

CRM、メールマーケティングツール、課金システムから顧客をインポート、各々に同じ顧客がわずかなバリエーション。email(小文字化後)で重複削除で人ごとに統一連絡先1件。

重複取引の削除

銀行エクスポートが重複日付範囲を再取得すると同じ取引を2度含むことがある。日付 + 金額 + 摘要で重複削除でクリーン台帳。

ダブル打刻タイムシートの発見

時給社員は時々2度打刻。給与計算期間のタイムシートを 社員ID + 日付で重複削除、廃棄前に「重複行」出力を確認 — 不正と honest mistake の両方を捕捉。


落とし穴と対処法

問題 原因 対処
「重複」検出されたが行が違って見える キー列に空白や大文字小文字の差 先にクリーナー;キーの小文字化を検討
真の重複が検出されない 細かすぎるキー(タイムスタンプ含むなど) キーからタイムスタンプを外す;または比較で差異を理解
間違った行が残された 「最初を残す」と「最後を残す」の選択ミス 別設定で再実行 — 重複行ファイルが別ケースでどう残るかを示す
ファイルが大きくて重複削除不可 遅いブラウザで50万行超 Firefox/Chrome に切替;他タブを閉じる。SheetJS 重複削除は O(n)、最終ダウンロードシリアライズがボトルネック

廃棄前に必ず確認

二ファイル出力(ユニーク + 重複)は廃棄前監査のためにあります。ワークフロー:

  1. 重複削除実行
  2. 「重複行」ファイルを開く
  3. ランダムに10行をスポットチェック — 「ユニーク行」のどれかの真の重複に見えるか?
  4. はい → 「重複行」を安全に廃棄;いいえ → キー列が間違っている

プライバシーとセキュリティ

検出もエクスポートも全てブラウザ内で SheetJS により実行。PII(メール、社員ID、取引データ)はサーバーに到達しません。


関連ツール