Excel で重複を安全に見つけて削除する方法
Excel の「重複の削除」ボタンは高速ですが、取り消せず、意図しない行を残します。数式または AI への指示ひとつで、数えて、確認して、それから削除する安全な手順を解説します。
データ → 重複の削除 はワンクリックで済みます。そして、それこそが問題です。行は即座に削除され、各重複グループの最初の行が確認なしに残され、報告されるのは削除した行数だけ——どの行かは教えてくれません。顧客リストや注文データのエクスポートでこれをやるのは、賭けです。
安全なワークフローはこうです。数える → 確認する → どの行を残すか決める → それから削除する。各ステップを見ていきましょう。
ステップ 1:何かに触る前に重複を数える
キーが 1 列の場合(たとえば B 列のメールアドレス):
=COUNTIF($B$2:$B$5000, B2)
1 を超える値は重複グループの印です。複数列の組み合わせで定義される重複(同じ顧客かつ同じ日付かつ同じ金額)の場合:
=COUNTIFS($A$2:$A$5000,A2, $C$2:$C$5000,C2, $D$2:$D$5000,D2)
これを Copies という名前の作業列として追加し、>1 でフィルターすれば、影響を受ける行を一度に確認できます。
ハイライトで見たい場合は、範囲を選択 → ホーム → 条件付き書式 → セルの強調表示ルール → 重複する値 です。ただしこの方法で確認できるのは単一列の重複だけです。
ステップ 2:「重複」の定義を決める
重複削除の仕事に潜む厄介なバグは、削除そのものではなく、定義にあります。
- 大文字小文字と空白。
ACME Corpとacme corpは、TRIM/LOWERで正規化しない限りCOUNTIFにとって別の文字列です。数える前にクリーニングしましょう(クリーニングの完全チェックリスト)。 - 同じキー、異なるデータ。 メールアドレスは同じで電話番号が違う 2 行は、重複ではありません。それは競合であり、削除ではなくマージが必要です。
- 正当な繰り返し。 取引シートで同じ顧客が 2 回現れるのは正常です。重複判定のキーには、本物の二重登録を特定できるだけの列を含める必要があります。
ステップ 3:どの行を残すか選ぶ
Excel の組み込みツールは常に最初の出現行——一番上の行——を残します。最新のレコードを残したい場合は、重複の削除を実行する前に日付列で降順に並べ替え、各グループの先頭に最新の行が来るようにしてください。
数式で残す行をマークする方法もあります(最初の出現を残す場合):
=IF(COUNTIF($B$2:B2, B2)=1, "keep", "remove")
拡張参照 $B$2:B2 は現在の行までの出現回数だけを数えるため、最初の行には "keep"、以降の行には "remove" が付きます。"remove" の行をフィルターして削除します——もちろん確認してから。
ステップ 4:削除して、件数を検証する
どの方法で削除するにしても、必ず検証してください。削除前の行数 − 削除後の行数が "remove" フラグの数と一致するはずです。一致しなければ、手を止めて確認しましょう。
指示ひとつで済ませる方法
AI for Excel なら、正規化・カウント・確認・残す行の選択・削除・検証というワークフロー全体が、言葉で伝えるだけの作業になります。
「メールアドレスで重複行を探して。大文字小文字と余分なスペースは無視。電話番号が食い違う重複は削除せずフラグを付けて。それ以外は Updated 列で最新の行を残して。確定前にサマリーを見せて。」
アドインは書き込みの前にブックのスナップショットを取り、削除した行を正確に報告するため、重複削除がレビュー可能かつ取り消し可能になります。組み込みボタンに欠けている 2 つの性質です。安全設計の仕組みをご覧いただくか、無料ダウンロードから始めてください。
よくある質問
重複を削除しつつ最新のエントリを残すには?
まず日付列で降順に並べ替えます。重複の削除は各グループの最初の行を残すため、並べ替え後は最新の行が残ります。または作業列の数式で最新以外にフラグを付け、確認してから削除する方法もあります。
なぜ Excel は見た目の違う値を重複として検出するのですか?
実際には逆のケースがほとんどです。末尾のスペース、大文字小文字、文字列として保存された数値のせいで、ほぼ同一の値がマッチしないのです。重複を数える前に、TRIM と型の統一で正規化してください。
Excel は重複として削除した行を表示できますか?
組み込みツールでは無理です。報告されるのは件数だけです。監査証跡が必要なら、作業列を使う方法か、削除した各行をログに残すアシスタントを使ってください。