人に聞けない痔の悩み、これでスッキリ >>

すっごく困っているのでよろしくお願いします。
sheet1・・・Aの情報 
sheet2・・・Bの情報
sheet3・・・二つの照合結果
A・Bはそれぞれ入力件数、並び順(行・列)もまったく違います。
例)
sheet1・sheet2
 A列・・・都道府県
 B列・・・市区
 C列・・・町
件数は同じ東京都○○区でもC列の町名が違った場合は、複数件になります。

A 回答 (4件)

例)の内容でしか作れませんが、ちょっと作ってみました。


前提)
1.Sheet3に#2で書かれた例)を用意して下さい。
  1行目には支社名(A1)、住所(B1)と見出しを入れて(別に支社名、住所でなくても良いですが、見出し行を用意して下さい)A列に支社名、B列に住所を入れて下さい。
2.Sheet4を作成し、A1にA支社、B1にB支社と入れて下さい。

[マクロの作成]
[ツール]-[マクロ]-[Visual Basic Editor]を開き、VB側のメニューから[挿入]-[標準モジュール]を開きます。そうすると、Module1(コード)と書かれた白紙のウィンドウが開きます。
そこに以下のコードをコピー&ペーストして下さい。

Sub Furiwake()

Dim low1 As Integer
Dim low2 As Integer

low1 = 2
low2 = 2

Do Until Worksheets("Sheet3").Cells(low1, 1) = ""
If Worksheets("Sheet3").Cells(low1, 1) = "A支社" Then
If Worksheets("Sheet4").Cells(low2, 2) <> "" Then
low2 = low2 + 1
Else
If Worksheets("Sheet4").Cells(low2, 1) <> "" Then
low2 = low2 + 1
End If
End If
Worksheets("Sheet4").Select
Worksheets("Sheet4").Cells(low2, 1) = Worksheets("Sheet3").Cells(low1, 2)
Else
If Worksheets("Sheet4").Cells(low2, 1) <> Worksheets("sheet3").Cells(low1, 2) Then
low2 = low2 + 1
End If
Worksheets("Sheet4").Cells(low2, 2) = Worksheets("Sheet3").Cells(low1, 2)
End If
low1 = low1 + 1
Loop

End Sub

ペーストが完了したら、F5を押して見て下さい。
急いで作ったのでバグはあるかも知れません。
ただ、本物のマクロを作る為には実際のレイアウトを見なければ出来ませんので、ここでの回答はこれ以上は不可能です。
後はVBAの書籍等を購入して勉強して下さい。
覚えると結構楽しいですよ。
    • good
    • 0

>sheet4に


>A支社 セルA~H
>B支社 セルO~AA
>sheet3で照合結果が出た、*付の重複しているものを
>sheet4でA支社・B支社ごとにわけたい。
つまり、
A支社              |B支社
------------+------------
東京都中央区新川町一丁目|東京都中央区新川町一丁目
------------+------------
東京都中央区新川町二丁目|東京都中央区新川町二丁目
------------+------------
東京都足立区保木間五丁目|東京都足立区保木間五丁目
------------+------------
東京都足立区保木間五丁目|
------------+------------
こうしたいという事ですね。
すいません。いろいろ考えて見ましたが、マクロじゃないと出来ないと思います。
どなたか良い案をお持ちの方、お知恵を貸して下さい。お願いします。

この回答への補足

こんなイメージのデータをつくりたいのですが、、、
マクロだとどのようにしてやるのでしょうか?
教えてください。

補足日時:2003/05/21 14:32
    • good
    • 0

sheet3の照合結果とはどういったものをお考えですか?


質問の内容から勝手に解釈して、「sheet1とsheet2の内容を重複しないようにsheet3にまとめたい」と言う事でしたら、

1.sheet1とsheet2の列の並びを統一する。
2.sheet1の行をsheet3にコピー&ペーストする。
3.sheet2の行をsheet3に(2で貼り付けた行の下に)コピー&ペーストする。
4.sheet3をチェックしたい内容で並べ替える。
5.チェックしたい項目を全て結合する。
Rika92さんの例で言うと
=CONCATENATE(A1,B1,C1) と関数をD列に入れます。
そうするとD1には東京都○○区○○町とA,B,C列か結合されます。(CONCATENATE関数でなくても良いです)
6.5.で入れた関数を全行にコピー&ペーストする。
7.E列に=IF(D1=D2,"*","")と関数を入れる。
8.7.で入れた関数を全行にコピー&ペーストする。
これで、下の行と同じ内容の行のE列に"*"が表示されます。
9.E列にオートフィルターを設定して、"*"列のみ選択して、表示された行を削除すれば、重複は無くなります。

以上
検討違いだったらごめんなさい。

この回答への補足

ここまでは完璧でした。ありがとうございます。
sheet1 A支社
sheet2 B支社
sheet3 A支社とB支社の照合結果
sheet4 A支社とB支社の比較

例)sheet3
A支社 東京都中央区新川町一丁目 *
B支社 東京都中央区新川町一丁目
A支社 東京都中央区新川町二丁目 *
B支社 東京都中央区新川町二丁目
A支社 東京都足立区保木間五丁目 *
A支社 東京都足立区保木間五丁目 *
B支社 東京都足立区保木間五丁目

sheet4に
A支社 セルA~H
B支社 セルO~AA
sheet3で照合結果が出た、*付の重複しているものを
sheet4でA支社・B支社ごとにわけたい。
どんな関数をつかえばいいでしょうか・・・
ど素人なのであまり難しい関数はわかりません
よろしくお願いします。

補足日時:2003/05/20 13:30
    • good
    • 0

Sheet3のA1セルに



=IF(Sheet1!A1=Sheet2!A1,"等しい","等しくない")

のようにSheet名から記述すれば比較できますよ。
また、Sheet3のA1セルをコピーしてSheet3上の別のセルにペーストすることで他のセルに対しても同じ計算ができます。

とんちんかんな回答でしたら、申し訳ありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング