こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの住所録を一まとめにするには?マクロ?

Excel2007で住所録が2つあるのですが、これを一まとめにするにはどうすればいいのでしょうか?
同じ人の住所録は一つにしたいのです。

別々のエクセルファイルに住所録1と住所録2があり、それぞれのデータ形式は標準で、同じ構成になっています。
住所録は家族ごとにソートされており、1行につき1家族分の住所、氏名、他家族の名前が入っています。
1と2は同じ住所の同じ家族が複数あります。1と2はSheet1という名前のシートに住所録が有り、他にシートはありません。

A列:代表者カタカナで読み仮名(半角カタカナで姓と名の間に半角スペース有)
B列:代表者姓半角カタカナ
C列:代表者名半角カタカナ
D列:代表者漢字氏名(姓と名の間に半角スペース有)
E列:代表者漢字苗字
F列:代表者漢字名前
G・H・I・J列:連名(漢字名前)
K列:郵便番号(半角数字、真ん中ハイフン有)
L列:住所(数字はすべて半角)

これを単純に重複の行を削除で削除できないのは連名があるからです。
(例えば、1住所録には1行に加藤家の父・母・息子があり、2住所録には1行に父・娘がある、など、連名のあるなし、被っている人、1と2の代表者も違う、などバラバラ)

・1を2にコピーして家族単位に住所でソート(1のデータを2のシートにコピペして家族単位でソートでも可)
・同じ行の中でFGHIJ列で同一名は削除
・筆頭者が誰になるかは不定(オリジナルデータの名前の順による。)
・1に無い連名は2の連名欄G~Jに転記
・1に全くない住所氏名は2に新しく行を追加してコピペ
・同一住所の筆頭者以外の行は削除

ということをしたいのですが、マクロを書いていただくか、数式を教えていただくか、やり方を教えていただけないでしょうか?(因みに、マクロはコピペで使うことはできても、自分では全く書けません)

因みに、住所録2と同じデータ(構成違い)の住所録3が別のエクセルファイルで有り、違いは3は連名無しで家族ごとにソートされておらず、1人1行で作られていて
A列:カタカナで読み仮名(半角カタカナで姓と名の間に半角スペース有)
B列:姓半角カタカナ
C列:名半角カタカナ
D列:漢字氏名(姓と名の間に半角スペース有)
E列:漢字苗字
F列:漢字名前
G列:郵便番号(半角数字、真ん中ハイフン有)
H列:住所(数字はすべて半角)
となっています。

同じ結果(同じく1にひとまとめで一家族ごとに名簿をつくる)にできるのであれば、1に3を住所でソートでも構いません。

データは1と2と合わせると10000件近くある為、地道なやり方では間に合いません。
どうかご指導宜しくお願いします。

投稿日時 - 2010-12-08 19:21:05

QNo.6371592

すぐに回答ほしいです

質問者が選んだベストアンサー

1と2をひとつのシートにまとめる
別シートにて「データ」「フィルタ」「フィルタオプションの設定」

抽出先を「指定範囲」にする。
「リスト範囲」にまとめた住所録のシートを範囲設定
「抽出範囲」に現在のシートのA1を指定
「重複するレコードは無視する」にチェック
「OK」で実行

投稿日時 - 2010-12-08 20:47:06

補足

とってもわかりにくいこと書いてすみません。
単純に重複するレコードを削除すると、住所録1にはなくて住所録2にある連名が消えてしまうのではと思ったので…

それから、こちらを実行いたしましたら
「このワークシートの数式に1つまたは複数の無効な参照が含まれています。有効なパス、ブック、範囲名およびセル参照が数式に含まれていることを確認してください。」
と出てしまいました。
ちなみに、すべてのセルはセルの書式設定で標準にしてあります。

投稿日時 - 2010-12-10 11:07:39

お礼

ご回答いただきありがとうございます。
お礼が遅くなってしまいすみません(会社でしかパソコンが使えなくて…)

教えていただいたやり方ですと、一家族ずつ(1行ずつ)しなければいけないような気がするのですが…
例えば、A家の花子さんが重複しているのでA家の花子さんだけ消したいけれど、B家にも花子さんがいると、B家の花子さんも消えてしまう…など。

私の解釈が間違っていたらすみません;;

1行単位で重複するレコードを消す、なんてことはできないんでしょうか…?

投稿日時 - 2010-12-10 10:02:14

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No.1です。
>私の解釈が間違っていたらすみません;;
>1行単位で重複するレコードを消す、なんてことはできないんでしょうか…?
フィルタオプションの設定の重複はセル単位でなく行単位です。
リスト範囲に選んだすべての列が同じでない場合は消されませんし、
元のデータはそのまま(抽出先が選択範囲内の場合は行が非表示の状態)なので問題ありません。

投稿日時 - 2010-12-10 21:07:50

お礼

お礼が遅くなり申し訳ございません。

なるほど・・・
ありがとうございました!
やってみます。

投稿日時 - 2010-12-20 09:56:04

ANo.2

マクロ作成してみました。
もしまだ解決していないようでしたら、自己責任にて、試してみてください。

下記URLにてダウンロードできます。
http://itvoyage.blog.shinobi.jp/

1週間以内に削除しますので、ダウンロードする場合は、お早めに。

投稿日時 - 2010-12-09 01:07:15

お礼

お礼が遅くなってしまい申し訳ございません。
先ほど出社し、教えていただいたマクロを実行いたしました。
大変助かります。
ありがとうございました!

質問なのですが、Sheet2が最終的にまとめられたデータなのですよね?
それから、重複の削除ですが、全列完全一致のものは削除したのですが、まだいくつか同じ住所のものが残っていました。
こちらを削除しようと思っており、Excel機能の「重複の削除」では、行番号が後ろのデータの方が削除されるのですが、つくっていただいたマクロでは、連名が多く入っている方が前の行になっているのでしょうか?
(例えば、
1行目 G:花子、H:優子、I:太郎、J:次郎
8行目 G:花子、H:優子、I:空白、J:空白
という風に連名が全部入っている方が上になっていますか?)

もしそうであれば、そのまま住所列で重複かどうか判別して削除したいと思っております。
もし、こうなっていないのであれば、このように行の並べ方を並び変えたいので、やり方を教えていただけないでしょうか?

こんな素晴らしいマクロをつくっていただいたのに、あつかましくすみません。
宜しくお願いします。

投稿日時 - 2010-12-10 10:52:34

あなたにオススメの質問