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, (^^ゞ