顧客名簿や案件管理表を更新していると、同じ顧客IDの行が複数できることがあります。
古い行を消して最新の行だけ残したい場合は、先に更新日を新しい順へ並べ替え、その後に「重複の削除」を実行するのが簡単です。
本記事では、図解を交えながら分かりやすく手順を説明していきます。
Excelで重複データから最新の行だけ残す方法
Excelには、関数を使わなくても重複したデータを削除することができます。
今回は以下の表を使い、重複している[顧客ID]の最新行だけを残してみます。

重複しているデータから最新の行だけを残したい場合、以下2ステップで実行することが可能です。
■重複しているデータから最新行のみ残す方法
1.更新日を新しい順に並べ替える
↓
2.顧客IDを基準に、「重複の削除」を実行する
サンプルでは8行のデータに顧客IDが5種類あり、C001・C002・C003が重複しています。
処理後は、各顧客IDの最新レコードだけが残り、5行になります。
操作前に重複の判定基準と更新日を確認する
最初に、対象の表全体と、重複を判断する列を決めます。
今回は「顧客ID」が同じなら同一顧客と判断し、「更新日」が最も新しい行を残します。
その際、更新日が日付として認識されているか確認してください。
文字列の日付が混ざっていると、並べ替えの順序が期待どおりになりません。
セルを選択し、「ホーム」タブの表示形式や数式バーで値を確認します。
また、実際には元データを編集してはいけないことも多いと思います。
その時は、作業前にシート見出しを右クリックし、「移動またはコピー」から複製しておくと安心です。
「重複の削除」は行そのものを削除する機能のため、直後ならCtrl+Zで戻せますが、別の操作を続けたり、保存して閉じたりした後の復旧は難しくなります。
更新日を新しい順に並べ替える
データの確認を行ったら、次はデータの並べ替えを行います。
表内のセルを1つ選択し、[データ]タブの[並べ替え]をクリックします。
表の途中に空白行や空白列がある場合は、表全体をドラッグして選択してから操作してください。

「並べ替え」ダイアログが出てきたら、
・列に「更新日」
・順序に「新しい順」
を指定してください。
「選択範囲を拡張する」と表示された場合は、表全体を一緒に動かすため[選択範囲を拡張する]を選びます。

なぜ並べ替えするかというと、「重複の削除」は最初に現れる行を保持するため、最新の行を上に並べ替える必要があるからです。
同じ日付が複数ある場合は、更新日時や連番など第2の並べ替え条件も追加し、残す行を明確にすることが必要です。
これで、最新日付から順番に並べ替えることができました。

顧客IDを基準に重複を削除する
データの並べ替えが完了したら、いよいよ重複したデータを削除します。
表内のセルを選択し、「データ」タブの「重複の削除」をクリックします。

「重複の削除」ダイアログが出てきたら、次のように設定します。
1.「先頭行をデータの見出しとして使用する」をオンにし、「すべて選択解除」をクリックする

2.[顧客ID]のみオンにし、「OK」をクリックする

顧客IDが同じ行は重複と判断され、上にある最新行が残ります。
完了メッセージに削除件数と残った件数が表示されるので、想定どおりか確認しましょう。
今回の例では3行が削除され、5件の一意な顧客IDが残ります。
件数だけでなく、C001・C002・C003の更新日が最新になっていることも確認できます。

複数列を基準に重複を削除する場合
「顧客IDと担当者が同じときだけ重複」と判断したい場合は、[重複の削除]で両方の列をオンにします。選択した列の組み合わせが完全に同じ行だけが削除対象です。

複数条件でのデータ削除が必要な場合は、項目をしっかり確認しましょう。
重複削除でよくある失敗
古い行が残る
更新日の降順並べ替えを行わず、「重複の削除」を先に実行した可能性があります。
元に戻し、更新日の新しい行が上にあることを確認してから再実行します。
行の対応関係が崩れた
更新日列だけを選択して並べ替えると、顧客IDや担当者との組み合わせが崩れます。
並べ替え時は「選択範囲を拡張する」を選び、表全体を動かしてください。
表をCtrl+Tでテーブル化しておく方法も有効です。
同じに見える値が重複として扱われない
前後の空白、全角・半角の違い、表示形式やデータ型の不統一があると、期待どおりに重複と判断されないことがあります。
半角スペースはTRIM関数、全角スペースはSUBSTITUTE関数などで除去し、表記を統一してから処理してください。
見出し行まで消えそうになる
「重複の削除」ダイアログで、先頭行を見出しとして扱う設定を確認します。
自動判定が正しいとは限らないため、列名が表示されているかも確認してください。
元データを残したい場合の代替方法
削除せずに重複を確認するだけなら、
「ホーム」→「条件付き書式」→「セルの強調表示ルール」→「重複する値」
を使います。
UNIQUE関数は一意な値の一覧作成に便利ですが、関連する担当者や更新日を含む「行全体の最新レコード」をそのまま選ぶ用途には追加の数式が必要です。
👉UNIQUE関数についてはこちらの記事で詳しく解説していますので、チェックしてみてください。
大量データを繰り返し処理するならPower Queryも候補です。
ただし、元データを直接変更せず更新できる反面、手順設計が複雑になります。
1回限りの作業なら、本記事の並べ替えと重複削除が分かりやすいでしょう。
複数の表を縦にまとめること自体が目的なら、VSTACK関数で複数範囲を結合する方法も参考になります。結合後に本記事の手順で重複を整理できます。
👉VSTACK関数で複数範囲を結合する方法は以下記事にまとめています。
ぜひチェックしてみてください。
よくある質問
Q1.重複の削除では、どの行が残りますか?

対象範囲の上側に最初に現れる行が残ります。
最新の行を残すには、更新日を新しい順へ並べ替えてから実行してください。
Q2.フィルターで非表示の行も削除されますか?

はい。フィルターで非表示になっている行も、対象範囲に含まれていれば重複削除の対象になります。
表示されている行だけを処理したつもりでも、非表示行が削除される可能性があるため、事前にフィルターを解除してから実行するのが安全です。
Q3.削除後に元へ戻せますか?

直後ならCtrl+Zで元に戻せます。
ただし、確実なのは作業前にシートまたはファイルをコピーすることです。
Q4.更新日が同じ行はどちらが残りますか?

表の上側にある行が残ります。
更新日時、受付番号、連番などを第2条件として並べ替え、優先順位を決めてください。
まとめ
Excelで重複データから最新の行だけを残すには、更新日を新しい順に並べ替えてから、識別列を基準に[重複の削除]を実行します。
先に並べ替える理由は、Excelが最初に現れる行を残すためです。
作業前に元シートをコピーし、削除後は件数と更新日を確認してください。
この2点を守れば、顧客名簿や案件一覧を安全かつ短時間で整理できます。
この記事が作業効率アップにつながれば幸いです。



コメント