Shikata Ga Nai

Private? There is no such things.

第26回:重複データを発見・除去しよう

Hello there, ('ω')ノ

データ分析を始める前に避けて通れないのが、「データの掃除(クレンジング)」です。 その中でも非常に多いトラブルの一つが「重複データ(ダブり)」。

たとえば顧客名簿に同じ人が2回登録されていたり、売上データに同じ取引が重複していたりすると、 集計結果がズレてしまい、間違った意思決定につながってしまうこともあります。


✅ なぜ重複が起こるのか?

重複データが発生する原因はさまざまです:

原因 内容
人的ミス 同じ情報を複数回登録してしまう
システム連携の不備 同じデータが複数の経路から取り込まれる
手作業でのコピー&ペースト コピー時にミスが起きることも
顧客名の表記ゆれ 例:「山田太郎」「山田 太郎」「ヤマダタロウ」など

▶ データの正確性を保つためにも、早めに気づいて修正することが重要です。


🔍 SQLで重複データを見つける

① 特定のカラムで重複しているデータを抽出

SELECT name, COUNT(*)
FROM customers
GROUP BY name
HAVING COUNT(*) > 1;

→ これは「nameが2回以上出てくる人」を一覧にしてくれます。


② すべてのカラムが同じデータを除外して一覧にする

SELECT DISTINCT * FROM customers;

DISTINCT を使えば、完全に同じ行を1件にまとめて表示できます。


③ 重複を削除する(1件だけ残す)

DELETE FROM customers
WHERE rowid NOT IN (
  SELECT MIN(rowid)
  FROM customers
  GROUP BY name
);

※ 実際に削除を行う前に、必ずバックアップを取りましょう!


📊 Excelで重複を見つけて消す方法

① 重複の確認だけしたいとき

  1. 対象の列(たとえば「名前」)を選択
  2. 「条件付き書式」→「セルの強調表示ルール」→「重複する値」
  3. 同じ値が色付きで表示されます

② 重複データを削除したいとき

  1. 対象の範囲を選択(表全体など)
  2. 「データ」タブ →「重複の削除」
  3. チェックボックスで「どの列を基準にするか」を選ぶ
  4. OKを押すと、同じ値を持つ行が削除され、1件だけ残ります

▶ 「すべての列が同じ」ものだけを削除することも可能です。


🧠 表記ゆれ(似てるけど違う)に注意!

SQLやExcelでは文字列が完全一致でなければ別物と判断されるため、次のような表記ゆれには注意が必要です:

見た目 コンピュータの判定
山田太郎
山田 太郎(スペースあり) ×
ヤマダタロウ(カタカナ) ×
yamada taro(ローマ字) ×

🔸 対策方法:

  • スペースを削除する:TRIM() 関数や Excelの置換機能
  • 小文字→大文字変換:UPPER()関数
  • よく似た名前は「あいまい検索」や「正規化」処理が必要(中級編で紹介予定)

✅ 重複データがあると、こんなリスクが…

リスク 影響例
集計値が多くなる 売上が二重にカウントされる
顧客数が水増しされる 実際より多いように見えてしまう
同じ人に何通も連絡 メールやDMが何回も届いてしまう(信頼低下)
分析結果がブレる 精度の低い判断材料になる可能性も

✨ まとめ:重複除去は“きれいなデータ”の第一歩!

ポイント 内容
重複は必ず発生する前提で考える 手作業・自動連携どちらでも起こり得る
SQLやExcelで手軽に確認できる COUNT()DISTINCT・「重複の削除」など活用しよう
完全一致だけじゃ足りないことも 表記ゆれへの対応も視野に入れる
定期チェックが大切 月次でのデータ点検など、習慣にしよう!

Best regards, (^^ゞ