Excelで重複をチェックする方法|削除せず確認する3つの手順とCOUNTIFS
顧客一覧や請求明細を統合したら、同じコードが何行も出てきた。「重複があるから、まとめて削除しておいて」と言われても、すぐには削除しない方が安全です。
なぜなら、同じ取引先コードが複数行あっても、別の契約や別の請求であれば正しいデータだからです。Excelの「重複チェック」で最初に決めるべきなのは、関数でも操作方法でもなく「何が同じなら重複と呼ぶか」です。
取引先コードだけで重複判定すると間違える
以下は、取引先ごとの契約一覧を想定した架空データです。
| Excelの行 | A:取引先コード | B:契約番号 | C:契約内容 |
|---|---|---|---|
| 2 | C001 | K001 | 保守A |
| 3 | C001 | K002 | 保守B |
| 4 | C002 | K003 | 点検 |
| 5 | C002 | K003 | 点検 |
「取引先コードの重複」であればC001もC002も該当します。しかし「同じ契約が2回登録された」という意味であれば、4行目と5行目だけが重複候補です。C001の2行は契約番号が異なります。
図:「1列が同じ」と「業務上のキーが同じ」は違います。図中のデータは架空の例で、Excelの実画面ではありません。
先に、確認したい単位を次のように決めます。
| 確認したいこと | 比較に使う列(例) |
|---|---|
| 同じ取引先コードがいくつあるか | 取引先コードのみ |
| 同一契約が複数行登録されていないか | 取引先コード+契約番号 |
| 同一請求が重複していないか | 取引先コード+請求番号、必要に応じて対象年月など |
方法1:条件付き書式で重複セルに色を付ける
最も手軽なのが、Excelの条件付き書式です。まずは取引先コードが複数回出てくる行を目視したい場合に使います。
A2:A5の取引先コード列を選択します。- [ホーム]→[条件付き書式]→[セルの強調表示ルール]→[重複する値]を選びます。
- 色を設定して確定します。
この例では、C001とC002の両方に色が付きます。ただし、色が付いたことは「削除してよい」という判定ではありません。 条件付き書式は、選んだセル範囲内の同一値を強調しているだけです。
さらに、前後のスペース、全角・半角、見えない文字、数値と文字列の違いがあると、人間には同じに見えても判定が期待と異なる場合があります。
方法2:COUNTIFで重複件数を数える
値が何回登場するか数えたいなら、COUNTIF を使います。
上の表でD列を「取引先コード件数」とし、D2に次の式を入れてD5までコピーします。
=COUNTIF($A$2:$A$5,A2)
結果はすべて「2」です。つまり、C001もC002も同じ取引先コードが2行ずつあると分かります。
2件以上を抽出したい場合は、D列で2以上の行にフィルターをかけます。元データを削除せずに、候補だけ確認できます。
方法3:COUNTIFSで「複数列の組み合わせ」を確認する
「取引先コードと契約番号が両方同じ」ものだけを判定したいなら、COUNTIFS を使います。
E列を「契約キー件数」とし、E2に次の式を入れてE5までコピーしてください。
=COUNTIFS($A$2:$A$5,A2,$B$2:$B$5,B2)
この式は、A列が同じ、かつB列も同じという条件を満たす行数を数えます。
| 行 | 取引先コード | 契約番号 | COUNTIFS結果 | 解釈 |
|---|---|---|---|---|
| 2 | C001 | K001 | 1 | 重複なし |
| 3 | C001 | K002 | 1 | 重複なし |
| 4 | C002 | K003 | 2 | 重複候補 |
| 5 | C002 | K003 | 2 | 重複候補 |
「2回目以降の出現だけ」を見つけたい場合は、次のように比較範囲の終点を現在行までにする方法があります。F2に入れて下へコピーします。
=COUNTIFS($A$2:A2,A2,$B$2:B2,B2)>1
この場合、4行目は FALSE、5行目は TRUE です。ただし「最初の行が正しく、後の行が不要」という意味ではありません。どちらの記録が正しいかは、原票や更新日時などの別の情報で判断してください。
「重複の削除」は最後に行う
Excelには[データ]→[重複の削除]が用意されています。しかし、この機能は選択列の組み合わせに基づいて行を削除します。選択列を間違えると、本来必要な行まで失う可能性があります。
実務では次の順番を勧めます。
- 元ファイルを別名でコピーし、確認対象と行数を記録する。
- どの列を合わせたら重複とするか、業務ルールを決める。
- 条件付き書式や
COUNTIFSで候補を可視化する。 - 重複候補に違いがないか、元票・契約番号・日付・金額などで照合する。
- 不要と確定した場合に限り、コピー側で削除し、行数や集計値を再確認する。
請求書や売上明細では、見かけ上の重複が訂正・取消・再計上を意味する場合があります。重複候補=削除対象ではありません。
大量のCSVやマスタを毎月点検する場合
単発の数十行ならExcelの関数で十分です。一方、毎月複数のCSVを受け取る部署では、重複だけでなく、空欄・数値の形式・コードの存在チェックなどを同じルールで繰り返すことがあります。
その場合は、「判定する列」「許容する例外」「エラー行をどう一覧化するか」を先に定義しておくと、担当者ごとの差を減らせます。SWLではこうした業務課題向けに Excel・CSVのデータ品質チェック も紹介しています。少量のデータの確認なら、この記事のExcel標準機能だけで始められます。
よくある質問
Q. COUNTIFとCOUNTIFSはどう使い分けますか
COUNTIFは1条件、COUNTIFSは複数条件を同時に満たす行数を数えます。取引先コードと契約番号の組み合わせのような判定にはCOUNTIFSが向きます。
Q. 何件以上を重複としますか
定義した比較キーが2件以上あれば「同じキーが複数件存在する」状態です。ただし、その状態が業務上の誤りかどうかは別に判断します。
Q. 「重複の削除」を押せば元に戻せますか
作業直後に取り消せる場合もありますが、後からの復旧を保証できません。処理前のファイルを別名保存し、コピーで操作する方が確実です。
まとめ
Excelの重複チェックは、条件付き書式で目立たせる、COUNTIFで数える、COUNTIFSで業務上のキーを照合する、という順番で考えると分かりやすくなります。
とくに顧客・契約・請求データでは、削除する前に「何をもって同一レコードとするか」を確定することが最も重要です。
