[[20140915161857]] 『別シートの2列を比較して重複してないデータを最』(to) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『別シートの2列を比較して重複してないデータを最終行に追加する』(to)

sheet1とSheet2のA・B列を比較して重複していない行をsheet1に追加したいです。
マクロでなんとかしたいと思ったのですが全くの初心者です。

sheet1
  A   B  C   D・・・・・・P
1 区分 番号 金額  年度
2 あ  15  200   18
3 い  10  150   24
4 あ  22  250   16
5 う  10  230   18

sheet2
   A   B  C   D・・・・・・P
1 区分 番号 金額  年度
2 あ  15  200   18
3 い  10  150   24
4 あ  22  250   16
5 う  14  200   19

両シートの区分と番号を比較して両方重複していないデータ上記でいうと
sheet2の5行目をsheet1の6行目に追加していきたいのです。
分かりづらい説明で申し訳ありませんがどうかご教授をお願いします。  

< 使用 Excel:Excel2010、使用 OS:WindowsVista >


 >両シートの区分と番号を比較して両方重複していないデータ上記でいうと 
                                 ~~~~~~~~
 結果からいえば、下線の「両方」は「シート1とシート2」になると思いますが
 シート2の5行目と同じデータが、シート2のたとえば10行目にあるかもしれない
 という意味で「両方重複していない」という表現なのでしょうか??
(稲葉) 2014/09/16(火) 07:34

返信ありがとうございます。説明不足ですみません。
両シートの区分と番号を比較して両方重複していないデータ上記でいうと
                              ~~~~~~~~
の「両方」は「区分と番号」の事を指します。つまり sheet2の区分&番号がSheet1の区分&番号に
存在するか?と事です。 sheet1に存在しないsheet2の区分番号の行をsheet1の最終行に追加したいのです。

この説明でイメージできるでしょうか。本当に説明がヘタで申し訳ないです。

(to) 2014/09/16(火) 08:08


Sheet1のマクロとして貼り付け。

 Sub test()
    Dim i As Long
    Dim j As Long
    Dim iMax As Long
    Dim jMax As Long
    Dim iFlag As Long

    With Sheets("Sheet2")
        iMax = .Cells(.Rows.Count, "A").End(xlUp).Row
        For i = 2 To iMax
            iFlag = 0
            jMax = Cells(Rows.Count, "A").End(xlUp).Row
            For j = 2 To jMax
                If Cells(j, "A").Value = .Cells(i, "A").Value And _
                   Cells(j, "B").Value = .Cells(i, "B").Value Then
                   iFlag = j
                   Exit For
                End If
            Next j
            If iFlag = 0 Then
                .Rows(i).Copy Cells(jMax + 1, "A")
            End If
        Next i
    End With
End Sub
(???) 2014/09/16(火) 09:51

コメントありがとうございます!
つたない説明で理解していただき恐縮です。
無事解決できました。嬉しいです!

(to) 2014/09/16(火) 10:31


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.