Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50057 / 76732 ←次へ | 前へ→

【31571】Re:データマッチングについて
発言  ichinose  - 05/11/25(金) 18:08 -

引用なし
パスワード
   ▼マッチ さん:
こんばんは。

>はじめまして。どうにも出来ずに悩んでいます。
マッチングというのは、色々な方法が考えられますから、
楽しみながらやりましょう!!


>お願いします。下記、Aセルに社員番号、Bセルに
>シーケンス番号があります。AセルとBセルを
>マッチさせ、Aセルのみの社員番号※1とBセルのみ
>シーケンス番号のみ※2出したいのですが。
>
>  A   B
>1 1001 1002
>2 1002 1003
>3 1003 1004
>4 1004 1005
>5 1006 1006
>6 1007 1008
>
>--------------------
>
>  ※1  ※2
>  1001 1008
  1007 1005 ←これもそうですよね?


アクティブシートのA列、B列の一行目からデータがあるとします。

結果はD列、E列に表示します。
'==========================================================
Sub main()
  Dim idx as long
  Dim 列(1 To 2) As Range
  Dim crng As Range
  Dim unmatch As Range
  Set 列(1) = Range("a1", Cells(Rows.Count, 1).End(xlUp))
  Set 列(2) = Range("b1", Cells(Rows.Count, 2).End(xlUp))
  For idx = 1 To 2
    Set unmatch = Nothing
    For Each crng In 列(idx)
     If IsError(Application.Match(crng, 列(IIf(idx = 1, 2, 1)), 0)) Then
       If unmatch Is Nothing Then
        Set unmatch = crng
       Else
        Set unmatch = Union(unmatch, crng)
        End If
       End If
     Next
    If Not unmatch Is Nothing Then
     unmatch.Copy Cells(1, idx + 3)
     End If
    Next
End Sub

試してみてください。

1 hits

【31567】データマッチングについて マッチ 05/11/25(金) 17:00 質問
【31571】Re:データマッチングについて ichinose 05/11/25(金) 18:08 発言
【31575】Re:データマッチングについて だるま 05/11/25(金) 18:58 発言
【31586】Re:データマッチングについて Kein 05/11/25(金) 21:07 回答
【31590】Re:データマッチングについて Hirofumi 05/11/25(金) 22:55 回答

50057 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free