重複削除で一番危険なのは、「似ている行」まで同じものとして消すことです。完全一致だけを消したい場合は、削除条件を先に固定し、削除前後の件数を必ず照合します。

この記事では、完全一致の条件を先に決め、削除前後の件数を照合しながら重複行だけを消す手順を、Excelの操作例つきで整理します。

先に結論

  • 「どの列がすべて同じなら重複とみなすか」を最初に決めて、メモに残す。
  • いきなり削除せず、補助列で重複候補に印を付けて目視で確認する。
  • 削除後に「元の行数 − 削除件数 = 残った行数」と、金額などの合計値の差分を確認する。

作業前の準備:原本を残し、CSVを正しく開く

  1. 元のCSVをコピーし、売上_原本.csv のような名前で別フォルダーに保管する。作業はコピー側で行う。
  2. CSVをダブルクリックで開くと、先頭の0が消える(例:00123 → 123)、長い数字が指数表示になる、日付の形式が変わる、といった変換が起きることがあります。0始まりのコードやIDがある場合は、[データ]→[テキストまたはCSVから]で読み込み、該当列のデータ型を「テキスト」にしてから読み込みます(メニュー名はExcelのバージョンにより異なる場合があります)。
  3. 削除前の総行数を記録する。A列に必ず値が入る表なら、空いているセルに =COUNTA(A:A)-1(見出し行を除く)と入力して数えます。

手順1:重複判定に使う列を決める

判定方法 使う場面 注意点
全列一致 同じ行が二重に取り込まれた 1列でも値が違えば別の行として残る
特定列一致(例:取引ID) その列の値が一意であると保証されている 一意でない運用だと、正しい行まで消える

迷ったら全列一致を選びます。特定列一致は「その列が同じなら、他の列も必ず同じ」と言い切れる場合に限ります。

手順2:補助列で重複候補に印を付ける

A〜F列にデータがあり、1行目が見出しの表を例にします。

  1. G1に 判定キー と入力し、G2に次の式を入れて最終行までコピーします。
   =A2&"|"&B2&"|"&C2&"|"&D2&"|"&E2&"|"&F2

特定列一致の場合は、その列だけをつなぎます(1列だけでも =A2&"|" のように区切り記号を付けます)。| を挟むのは、「AB」+「C」と「A」+「BC」が同じキーにならないようにするためと、数字だけのIDが数値として比較されるのを避けるためです。

  1. H1に 出現回数 と入力し、H2に次の式を入れて最終行までコピーします。
   =COUNTIF($G$2:G2,G2)

上から数えて何回目の出現かが表示されます。1が最初の行、2以上が削除候補です。

  1. [データ]→[フィルター]でH列を「1」以外に絞り込み、候補行を目視確認します。注文日や金額が違うのに候補になっている行があれば、判定キーの作り方を見直します。
  2. 候補件数を =COUNTIF(H:H,">1") で数えて記録します。

COUNTIFは * ? ~ をワイルドカードとして扱い、255文字を超える検索値ではエラーになります。判定キーにこれらの記号が含まれる場合やキーが長い場合は、H2の式を =SUMPRODUCT(--($G$2:G2=G2)) に置き換えます(行数が多いと計算が遅くなります)。

手順3:削除を実行する

次のどちらかで削除します。

  • 補助列を使う:H列を「1」以外に絞り込んだ状態で、表示された行の行番号を選択し、右クリック→[行の削除]。その後フィルターを解除します。
  • [重複の削除]を使う:表内のセルを選択し、[データ]→[重複の削除]を開いて、手順1で決めた列だけにチェックを入れて実行します。最初に出てきた行が残り、2件目以降が削除されます。

[重複の削除]では完了時に削除件数と残った件数が表示されるので、手順2で数えた候補件数と一致するか見比べます。

手順4:削除前後を照合する

削除前に、金額列(例:F列)の合計 =SUM(F:F) と、候補行だけの合計 =SUMIF(H:H,">1",F:F) も記録しておきます。

確認項目 計算 合わない場合
行数 元の行数 − 削除件数 = 残った行数 判定列や空白行の扱いを見直す
件数 手順2の候補件数 = 実際の削除件数 判定キーと[重複の削除]でチェックした列がずれていないか確認する
金額合計 元の合計 − 候補行の合計 = 削除後の合計 消すべきでない行が消えていないか確認する

すべて一致したら補助列(G・H列)を削除し、原本とは別の名前で保存します。CSVで保存する場合は、保存前に0始まりのコードが数値に変わっていないか確認します。

よくある失敗

  • 顧客IDだけを判定列にする:顧客IDが同じでも注文日が違えば別取引です。正しい取引まで消えてしまいます。
  • 空白行の扱いを決めていない:判定列がすべて空の行同士は重複とみなされます。空行を消してよいかは別に判断します。
  • 前後の空白を見落とす:東京 と 東京 は完全一致ではないため残ります。完全一致の削除としては正しい動作で、まとめたい場合は名寄せの作業になります。
  • 大文字と小文字:COUNTIFも[重複の削除]も大文字・小文字を区別しません。ABC と abc を別の値として扱う必要がある場合は、H2の式を =SUMPRODUCT(--EXACT($G$2:G2,G2)) にします。

このページでは扱わないこと

「株式会社青空商事」と「㈱青空商事」のような表記ゆれの統合は扱いません。表記ゆれは推測を含む作業なので、完全一致の削除とは手順を分けます。

次に確認するページ

  • 表記ゆれのある会社名をまとめたい:会社名の表記ゆれを名寄せする方法|完全一致では拾えない重複候補
  • 複数のCSVを結合したあとに二重取込を確認したい:同じ形式のCSVを複数まとめて1つに結合する方法

参考

  • Microsoft: Filter for unique values or remove duplicate values

確認日: 2026-09-28

おすすめの記事