重複したデータから、最新の1行だけ残す/合計して1行にまとめる
同じ注文番号や顧客IDが何行もあるとき、ただ重複を消すと、どの行が残るかで結果が変わります。「最新の行を残したい」のか「金額を合計してまとめたい」のかで、使う方法は別です。Microsoftのサポート記事(2026年10月17日確認)と、当サイトの重複削除ツールを実際に操作して確かめた動きをもとにまとめました。
公開:2026年10月17日 最終更新:2026年10月17日 執筆:板野 克基(株式会社ブライトアセット) 編集方針
要点
- エクセルの「重複の削除」には、どの行を残すかを選ぶ設定がありません。Microsoftのサポートページにも、どの行が残るかは書かれていません(2026年10月17日確認)。
- 最新の1行を残すなら、日付の新しい順に並べ替えてから重複を削除し、残った行の日付を確かめます。元データを消したくないなら、MAXIFSやXLOOKUPで最新の行を取り出します。
- 金額を合計して1行にするなら、重複の削除は使いません。UNIQUE+SUMIFSか、ピボットテーブルで集計します。
- 当サイトの重複削除ツールは、重複のうち上にある最初の1行を残します。並べ替えは重複を消したあとに行われるので、最新を残すには2回に分けて操作します。合計はできません。
先に決めること:残すのか、まとめるのか
| やりたいこと | 方法 |
|---|---|
| 同じ注文の、更新日がいちばん新しい行だけ残す | 並べ替え→重複の削除、またはMAXIFS・XLOOKUP |
| 同じ顧客の購入金額を合計して1行にする | UNIQUE+SUMIFS、またはピボットテーブル |
| まったく同じ行(二重登録)だけ消す | すべての列で重複の削除 |
例として、次のような注文データを使います。注文1001は3回、1002は2回出てきます。
| 注文番号 | 更新日 | 金額 |
|---|---|---|
| 1001 | 2026/09/30 | 1500 |
| 1002 | 2026/10/01 | 800 |
| 1001 | 2026/10/05 | 1800 |
| 1001 | 2026/10/12 | 2000 |
| 1002 | 2026/9/2 | 700 |
最新の行を残すと「1001・2026/10/12・2000」と「1002・2026/10/01・800」の2行になります。合計でまとめると、1001は5,300、1002は1,500です。
エクセルで最新の1行を残す(重複の削除)
- 元の表を別のシートにコピーしておきます。Microsoftは、データは完全に削除されるため、事前に元の範囲を別のシートやブックへコピーするよう勧めています。
- 表を選び、更新日の列で新しい順(降順)に並べ替えます。
- [データ]タブの[重複の削除]を開き、注文番号の列だけにチェックを入れて実行します。
- 残った行の更新日が、その注文の最新の日付になっているかを数件確かめます。
注意点として、重複かどうかはセルに表示されている値で決まります(Microsoftの説明)。並べ替えの前に、更新日の列に日付と文字が混ざっていないかも確かめます。
元データを消さずに最新の行を取り出す(関数)
MAXIFSで「最新の行か」に印を付ける
A列が注文番号、B列が更新日のとき、空いている列の2行目に次の式を入れて下までコピーします。
=B2=MAXIFS($B:$B,$A:$A,A2)
同じ注文番号の中でいちばん新しい日付の行だけTRUEになります。フィルターでTRUEだけを表示して、別のシートにコピーします。MAXIFSは、Excel for Microsoft 365・Excel 2021・Excel 2024・Excel 2019などで使えます。同じ注文で同じ日付が2行あると、両方がTRUEになります。
XLOOKUPで下から探す
データが古い順に下へ追加されていく表なら、XLOOKUPの検索モードに-1(末尾から逆方向に検索)を指定すると、いちばん下の=最新の行の値を返します。E2に注文番号があるとき、金額(C列)を取り出す式です。
=XLOOKUP(E2,$A:$A,$C:$C,,0,-1)
XLOOKUPはExcel 2016とExcel 2019では使えません。表が日付順に並んでいない場合は、MAXIFSのほうを使います。
キーの全角・半角や空白のゆれを先にそろえる住所・電話の表記ゆれ統一(無料・登録不要)→合計して1行にまとめる
重複の削除で1行にすると、残った行の金額しか数えないので、合計は小さくなります。合計したいときは、元のデータを残したまま集計します。
UNIQUE+SUMIFS
- 空いている列(E2)に
=UNIQUE(A2:A6)と入れると、注文番号が1つずつ下に並びます。 - F2に
=SUMIFS($C$2:$C$6,$A$2:$A$6,E2)と入れて、注文番号の数だけ下へコピーします。
SUMIFSは、合計する範囲が1番目の引数です(SUMIFでは3番目)。UNIQUEはExcel for Microsoft 365・Excel 2024・Excel 2021などで使えます。範囲は実際のデータの行数に合わせてください。
ピボットテーブル
表のセルを1つ選び、[挿入]→[ピボットテーブル]を選びます。注文番号を「行」に、金額を「値」に入れると、注文番号ごとの合計が出ます。Microsoftの説明では、値の領域に置いたフィールドは既定でSUM(合計)として表示されます。
重複削除ツールでできること・できないこと
Excel・CSVの重複削除を、上の例のデータで操作して確かめた動きです(2026年10月17日)。
| 項目 | 動き |
|---|---|
| 残る行 | 判定する列が同じ行のうち、上にある最初の1行 |
| 並べ替えとの順番 | 重複を消したあとに並べ替える。同じ操作で「降順」を選んでも、残るのは元の表で上にあった行 |
| 判定する列 | 1列だけ、またはすべての列(0) |
| 空白 | 前後の空白は無視して比べる(チェックを外すと区別) |
| 大文字と小文字 | 別の値として扱う(xとXは重複にならない) |
| 日付の書き方 | 「2026/9/2」と「2026/09/30」のような0の有無が混ざっていても日付の順に並ぶ |
最新の1行を残す手順(2回に分ける)
- CSVを貼り付け、「重複を判定する列」を0、「並べ替える列」を更新日の列番号、「並べ替えの順番」を降順にします。
- 「加工後のCSVをコピー」を押し、入力欄に貼り直します。
- 「重複を判定する列」を注文番号の列番号に、「並べ替える列」を0にします。
上の例では「5行 → 2行(3行を削除)」になり、1001は2026/10/12の行、1002は2026/10/01の行が残りました。1回目で判定列を0にするのは、まったく同じ行だけを消して、日付の違う行を残すためです。
ツールではできないこと
- 合計・件数の集計:金額を足して1行にすることはできません。上のSUMIFSかピボットテーブルを使います。
- 下の行を残す指定:残るのは常に上の行です。最新を残すには、上の2回の手順で並べ替えてから消します。
- 2つの列の組み合わせでの判定:「注文番号と商品コードの両方が同じ行」のような判定はできません。エクセルで
=A2&"|"&B2のようにつないだ列を作り、その列を判定に使います。 - 全角と半角のゆれ:「A001」と「A001」は別の値です。先に表記ゆれの統一でそろえます。
日付は年まで入った書き方にそろえてください。「10/5」のように年がないと、年をまたいだデータの順番が正しくなりません。
まとめ
最新の1行を残すなら「新しい順に並べ替えてから重複を消す」か「MAXIFSで最新の行に印を付ける」、合計するなら「重複は消さずにSUMIFSかピボットテーブルで集計する」です。どちらの場合も、元のデータは別に残してから作業します。
出典:Microsoft サポート「一意の値をフィルター処理する、または重複する値を削除する」、「MAXIFS 関数」、「XLOOKUP 関数」、「SUMIFS 関数」、「UNIQUE 関数」、「ピボットテーブルを作成してワークシート データを分析する」(いずれも2026年10月17日確認)。
エクセル・CSVの表を貼り付けるだけで重複行を削除し、何行が重複だったかも表示。判定する列を選べ、並べ替えや列の抜き出しも可能。関数やマクロは不要。BOM付きUTF-8で保存し、データは外部に送信しません。
Excel・CSVの重複削除を使う(無料・登録不要)公開中のツール 41本・解説ガイド 33本。入力した数字はブラウザの中だけで計算し、サーバーには送りません。