名前だったり住所だったりメールアドレスが含まれる5000人分の個人情報があります。
かなり重複していて、1名1名の情報が完全に同じ形式であるとは限りません。
例えば、同じ人だけど住所が区から始まっている人、東京都から始まっている人。同様に、同じ人だけど郵便番号が3桁の人と7桁の人。
一人一人にあるご案内をするので、重複しないようにデータを整理したいのですが、目で追っていくのはかなりの時間が掛かるというか不可能だと思うので、難儀しています。
良い方法はありませんでしょうか?
貴方のエクセル習熟度がわかりませんが、まったくの素人ではないけどもそれほど詳しい機能はご存知でないという前提で、一番理解しやすそうな方法を説明します。
名簿が縦のデータ(例えばA列が名前でB列が住所のように)になっているとして、データーエリアをドラグで選択し、メニューの「データ(D)」、「フィルタ(F)」、「オートフィルタ(F)」とします。列の最上部にプルダウンのマークが出ますからここをクリックして、(トップテン)を選ぶとダブっている数の多い順にトップテンが出ますので、これで絞込みをしてダブっている部分を消す(各ダブりデータ毎に1行は残さないといけません)、またトップテンで絞る、ということを繰り返していくのが簡単と思います。
住所よりも名前で並べ替えるのが一番効率的ではないでしょうか?
名前だけはどの個人情報にも必ず含まれていると思いますので・・・。
まず名前の列を基準にしてデータを並べ替えて、
同じシート内のどこか邪魔にならない列に、名前のある列を参照しながら
=if(A1=A2,"重複","")
とでも入れ、その5000件の行全部にコピーします。
既にデータを並べ替えてあるので、同じ名前のデータは連続していますから、
このように前後を比較するだけで重複が分かります。
住所で比較したいのなら、まずデータの形式を揃えるために、"東京都"を
置換機能を使って全部消してしまうとか。
http://www.yahoo.co.jp/(ダミーです)
ありがとうございます。
肝心の、「連続10文字以上がかぶっているデータを抽出する」方法はいかがでしょうか。
まず、任意の位置から始まる「連続10文字以上がかぶっているデータを抽出する」簡単な方法はありません。エクセルだろうと、専用のアプリケーションを作ったとしても、膨大な処理時間がかかる作業になります。
そこで、エクセルでできるレベルの代替策を紹介します。
(1)まず作業用のシートに元データを全コピーします。(以降の作業は作業用シートで行います)
(2)住所から都道府県の部分を削除し、先頭10文字分を切り出します。A列(A2,A3,…)に住所が入っているとし、適当な列(例えばB列)に切り出すとすると、B2に以下の式を入れ、全データ分(全行)コピーします。
=IF(ISERROR(FIND(LEFT(A2,3),"北海道青森県岩手県宮城県秋田県山形県福島県茨城県栃木県群馬県埼玉県千葉県東京都新潟県富山県石川県福井県山梨県長野県岐阜県静岡県愛知県三重県滋賀県京都府大阪府兵庫県奈良県鳥取県島根県岡山県広島県山口県徳島県香川県愛媛県高知県福岡県佐賀県長崎県熊本県大分県宮崎県沖縄県")),IF(ISERROR(FIND(LEFT(A2,3),"神奈川県和歌山県鹿児島県")),LEFT(A2,10),MID(A2,5,10)),MID(A2,4,10))
(3)全データ範囲を選択し、メニューから[データ]-[ソート]を選びます。先頭10文字を切り出した列を選んで[OK]を押してください。
(4)全データ範囲を選択したまま、メニューから[データ]-[集計]を選びます。設定画面が表示されますので、「集計の方法」は「データの個数」を選びます。「集計するフィールド」は、先頭10文字を切り出した列を選びます。その他の設定はそのままにして[OK]を押してください。
(5)画面左側にグループ表示を切り替えるツリーと、左上に[1][2][3]のような数字のボタンが表示されます。ボタンを押すと集計結果だけを表示するか、データも表示するかを変更できます。左側の[+][-]ボタンで個別にデータの表示/非表示を切り替えられます。
これで、集計結果(データの個数)が1以上であれば重複していることになります。
URLはダミーです
10文字以上が被っているデータを抽出するという処理を実現するにはプログラムを作るしか方法はありませんが、プログラム作成の労力、処理にも膨大な時間が掛かるので、現実的ではないです。
最終的には手作業になるのですが、下の方法で、大分楽になると思います。
1. 郵便番号を全て7桁化する。(データはここから取れます http://www.post.japanpost.jp/zipcode/download.html)
2. 郵便番号でデータをソートし、同じ郵便番号で、且つ宛名が同じデータを抽出する
3. その内同一宛先と判断できるものを削除
3桁しかない郵便番号データを7桁化するのも、労力が掛かりますが、こちらのプログラム化はそれほど難しくありません。
「エクセルで、連続10文字以上」という回答ではないのでポイントは結構です。
抽出の判断基準がないと、そうとう大変と思います。
456,X市ZZZ町1-1,二宮尊徳兄,aaa@abc.com
456-1111,X市ZZZ町1-1,二宮尊徳兄,zzz@abc.com
456-1111,X市ZZZ町1-1,二宮尊徳弟,zzz@abc.com
上記のようなデータがあったとき、どのフィールドを優先するかで
答えが変わってきます。
(たとえば456-1111で抜けば二宮尊徳兄と二宮尊徳弟はどう判断する?)
妥協案の一つとしてはメールで案内するのであれば、メールが重複しないように、
名前であれば名前で抜き出して案内するというのはどうでしょう?
まずは1つの基準を決めて抜き出してそこから手作業、というのが一番いいのかもしれません。
ありがとうございます。
肝心の、「連続10文字以上がかぶっているデータを抽出する」方法はいかがでしょうか。