人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルについて教えてください。
同じbook内のsheet1,sheet2のデーター(アルファベット、数字、ハイフンの組み合わせ)を
列単位(例 sheet1のA列データとsheet2のA列データ)でコンペアさせ、コンペア結果、重複データがある場合は、重複データをsheet3のA列へリストとして表示させる方法を教えてください。
有償無償にかかわらず他ソフト(ツール)は用いず、一般の
エクセルの機能(マクロ、関数含む)で実現することとします。

●質問者: dongwu
●カテゴリ:コンピュータ インターネット
✍キーワード:book アルファベット エクセル ソフト データ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pooh_san
●27ポイント

sheet3のA列に

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A1,"")

ではダメでしょうか?


的外れだったら無視してください。

◎質問者からの返答

ありがとうございまいた。


2 ● SALINGER
●120ポイント ベストアンサー

VBAで

Sub Macro()
 Dim obj1 As Object
 Dim obj2 As Object
 Dim i As Long
 Dim j As Long
 i = 1
 j = 1
 With Worksheets("Sheet1")
 While .Cells(i, 1).Value <> ""
 Set obj1 = Worksheets("Sheet2").Range("A:A").Find(.Cells(i, 1).Value)
 If Not obj1 Is Nothing Then
 If j = 1 Then
 Worksheets("Sheet3").Cells(j, 1).Value = .Cells(i, 1).Value
 j = j + 1
 Else
 Set obj2 = Worksheets("Sheet3").Range("A1:A" & j - 1).Find(.Cells(i, 1).Value)
 If obj2 Is Nothing Then
 Worksheets("Sheet3").Cells(j, 1).Value = .Cells(i, 1).Value
 j = j + 1
 End If
 End If
 End If
 i = i + 1
 Wend
 End With
End Sub
◎質問者からの返答

ありがとうございました。

理屈はわからないけど解決できました。

助かりました。


3 ● haruo-31
●40ポイント

上の方と被ってますが・・・

Sub module1()
 ' 重複検索マクロ
 ' Sheet1のA1,Sheet2のA1から検索をはじめ、
 ' 重複したデータはSheet3のA1から上詰めで出力されます。
 ' 尚、比較対照になるシートはそれぞれ、正順でソート(並び替え)されている必要があります。
 ' シートは3ページ必要で、シート名は適宜修正して使用してください。
 Dim objRngA As Range, objRngB As Range
 Dim objRngDest As Range
 
 ' Sheet1のセルA1(比較対象)
 Set objRngA = Sheets("Sheet1").Range("A1")
 ' Sheet2のセルA1(比較対象)
 Set objRngB = Sheets("Sheet2").Range("A1")
 ' Sheet3のセルA1(結果)
 Set objRngDest = Sheets("Sheet3").Range("A1")
 
 ' Sheet1、Sheet2いずれかのセルが空白になるまで続ける
 While objRngA.Value <> "" And objRngB.Value <> ""
 If objRngA.Value < objRngB.Value Then
 ' Sheet1の方がSheet2の比較対象より小さい場合
 Set objRngA = objRngA.Cells(2)
 ElseIf objRngA.Value = objRngB.Value Then
 ' 重複セル発見
 objRngDest.Value = objRngA.Value
 Set objRngA = objRngA.Cells(2)
 Set objRngB = objRngB.Cells(2)
 Set objRngDest = objRngDest.Cells(2)
 Else
 ' Sheet2の方がSheet1の比較対象より小さい場合
 Set objRngB = objRngB.Cells(2)
 End If
 Wend
 
End Sub

◎質問者からの返答

ありがとうございました。

マクロってすごいですね!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ