#概要
仕事してて、重複したデータを削除しなければならない局面って結構あると思います。
時間もない、データ削除機能も信じられないそんな時に毎回「あーこれどうやってやるんだっけ」ってなってググる時間を減らすための記事です。
##前提
前回同様、主にスプシ(Google Spreadsheet)を使ってピボットテーブルのやり方についてまとめます。
そして前回、
スプシとExcelは、基本的な操作に大きな違いはありません。
と抜かしたばかりですが、重複データの操作については、仕様が大きく異なっており、スプシでしか使えない関数なども出てきます。
なので今回は、Excelで同じ技は使えないと思っていてください。
##定義
本記事における重複したデータをどうにかしたい時とは、こういう↓ユーザー情報とかを扱う時です(データはサンプルです1)。
サイト登録やフォーム記入などは、間違えて2回送信するなどのユーザーが出てきやすく、
このようにデータが重複する場合が多々あります。
この程度の数なら視認できるかもしれませんが、データの母数が大きくなればなるほど誤差も出やすくしんどいので、小技を使った方が楽です。
中の人がよく使うものをいくつか紹介していきます。
また、結局は正確なデータを得るという目的が遂げられることが大切なので、ここで紹介しない方法を使ってももちろん良いし、ご自身で「こっちの方が圧倒的に楽だろ」という方法をお持ちならそちらを採用してください。
#重複したデータを抽出する
##COUNTIF関数を実行する
選択範囲内にそのデータがいくつ存在するかをカウントします。
1と出れば、そのデータは範囲内に1つだけ = 重複していないことがわかります。
1以外の数字が出れば、範囲内にその数だけ同じデータが存在していることになります。
=COUNTIF($A$2:$A$21,A2)
※データの選択範囲に絶対参照をかけ忘れると、選択範囲がずれるので気を付ける
####余談
関数を複数のデータに対して一気に実行したい場合、
この右下の青い四角形にカーソルを合わせてダブルクリックすると早いです。
#重複したデータを削除する
##UNIQUE関数を使う
UNIQUE関数とは、2
エクセルにはない関数なのですが、指定したセルの範囲について重複をカットし、文字どおりユニークなデータをリアルタイムで表示してくれる関数です。
というわけで、重複していたデータが削除され、ユニークなデータだけが残りまs…
エッ??????
I列とJ列が残念な感じになってしまいました。キレそう。
これは、
- 同じ生年月日のユーザーがいる
- 重複している上に住所の書式が違うユーザーがいる
ことが原因でした。
UNIQUE関数について書いて終了するつもりだったのに、こういう事案もあることを身をもって知ってしまった…。
C列とD列についてはUNIQUE関数では処理できないようなので、VLOOKUP関数を使っていきます。
=VLOOKUP(H2,$B$2:$D$21,2,0)
VLOOKUP関数は、選択範囲内のデータに検索をかけて、検索値に対応するデータを出力してくれるものです。
検索値は、出力する値の検索基準になる値です。
ここでは、フリガナ(H2)を検索値として置き、「フリガナの隣の列に入ってる情報を取得する」みたいなことをやっています。
検索値が1列目に当たるように範囲選択をし、選択した範囲の何列目のデータを取得したいのか記述します。選択範囲内だと誕生日は2列目になるので、2とします。最後の0は、完全一致を指定するものです。これを1にすると、類似のデータを取得します。
こうすれば、誕生日が同じでも、ユーザーに紐づいた誕生日が削除されることなく出力されます。
住所でも同様の作業を行います(選択範囲内だと住所は3列目になるので、3とする)。
#まとめ
いろんな関数を駆使してデータと仲良くやっていきたk