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で重複を見つけて消す方法
① 重複の確認だけしたいとき
- 対象の列(たとえば「名前」)を選択
- 「条件付き書式」→「セルの強調表示ルール」→「重複する値」
- 同じ値が色付きで表示されます
② 重複データを削除したいとき
- 対象の範囲を選択(表全体など)
- 「データ」タブ →「重複の削除」
- チェックボックスで「どの列を基準にするか」を選ぶ
- OKを押すと、同じ値を持つ行が削除され、1件だけ残ります
▶ 「すべての列が同じ」ものだけを削除することも可能です。
🧠 表記ゆれ(似てるけど違う)に注意!
SQLやExcelでは文字列が完全一致でなければ別物と判断されるため、次のような表記ゆれには注意が必要です:
| 見た目 | コンピュータの判定 |
|---|---|
| 山田太郎 | ○ |
| 山田 太郎(スペースあり) | × |
| ヤマダタロウ(カタカナ) | × |
| yamada taro(ローマ字) | × |
🔸 対策方法:
- スペースを削除する:
TRIM()関数や Excelの置換機能 - 小文字→大文字変換:
UPPER()関数 - よく似た名前は「あいまい検索」や「正規化」処理が必要(中級編で紹介予定)
✅ 重複データがあると、こんなリスクが…
| リスク | 影響例 |
|---|---|
| 集計値が多くなる | 売上が二重にカウントされる |
| 顧客数が水増しされる | 実際より多いように見えてしまう |
| 同じ人に何通も連絡 | メールやDMが何回も届いてしまう(信頼低下) |
| 分析結果がブレる | 精度の低い判断材料になる可能性も |
✨ まとめ:重複除去は“きれいなデータ”の第一歩!
| ポイント | 内容 |
|---|---|
| 重複は必ず発生する前提で考える | 手作業・自動連携どちらでも起こり得る |
| SQLやExcelで手軽に確認できる | COUNT()・DISTINCT・「重複の削除」など活用しよう |
| 完全一致だけじゃ足りないことも | 表記ゆれへの対応も視野に入れる |
| 定期チェックが大切 | 月次でのデータ点検など、習慣にしよう! |
Best regards, (^^ゞ