Excel VBA質問箱 IV

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

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


7787 / 13645 ツリー ←次へ | 前へ→

【36865】アンマッチの一覧表作成 YBA 06/4/17(月) 9:28 質問[未読]
【36867】Re:アンマッチの一覧表作成 Statis 06/4/17(月) 9:38 発言[未読]
【36868】Re:アンマッチの一覧表作成 YBA 06/4/17(月) 9:58 質問[未読]
【36871】Re:アンマッチの一覧表作成 Statis 06/4/17(月) 10:46 回答[未読]
【36878】Re:アンマッチの一覧表作成 Kein 06/4/17(月) 11:42 回答[未読]
【36885】Re:アンマッチの一覧表作成 だるま 06/4/17(月) 13:38 発言[未読]
【36892】Re:アンマッチの一覧表作成 YBA 06/4/17(月) 15:32 お礼[未読]

【36865】アンマッチの一覧表作成
質問  YBA  - 06/4/17(月) 9:28 -

引用なし
パスワード
   今回もどうぞよろしくお願い致します
只今、ある一覧表から違う一覧表をマッチングしていった時
(それぞれの表の検索文字はランダムに並んでいる)
マッチングの一覧表は作成できたのですが
アンマッチの一覧表は作成する事が出来ませんでした

現在
ループを使用しているのですが、
一回目のループでアンマッチな文字などがずらずらと並んでしまっております
やりたいのは
全てのループを(検索)を終了してアンマッチな時に
一覧表に表示させたいのですがぁ・・・

どのようにすればアンマッチのみを表示する事が出来ますでしょうか??

どうぞご指導よろしくお願い致します!!

【36867】Re:アンマッチの一覧表作成
発言  Statis  - 06/4/17(月) 9:38 -

引用なし
パスワード
   ▼YBA さん:
>今回もどうぞよろしくお願い致します
>只今、ある一覧表から違う一覧表をマッチングしていった時
>(それぞれの表の検索文字はランダムに並んでいる)
>マッチングの一覧表は作成できたのですが
どのようなコードですか?
>アンマッチの一覧表は作成する事が出来ませんでした

>現在
>ループを使用しているのですが、
>一回目のループでアンマッチな文字などがずらずらと並んでしまっております
アンマッチの一覧が出来たのではないのですか?
あとは整理するだけでは?
また、どのようなコードで?

>やりたいのは
>全てのループを(検索)を終了してアンマッチな時に
>一覧表に表示させたいのですがぁ・・・

どのようなデータをどのように一覧にするのでしょうか?
もっと具体的に記載して下さい。(シートレイアウトなどを)

【36868】Re:アンマッチの一覧表作成
質問  YBA  - 06/4/17(月) 9:58 -

引用なし
パスワード
   この度は、迅速な回答どうもありがとう御座います
お手数をおかけし申し訳ございませんでした

>どのようなコードですか?
ある項目がありそれに対応する一覧表がそれぞれあります(文字や数値)
表1.
項目:
事業所・販売所・売上金額・差益・商品コード
データ:
日本・USA・1000・500・YA
日本・CHA・2000・300・YC
 ・
 ・

表2.
項目
事業所・販売所・売上金額・差益・商品コード
データ:
日本・IND・5000・500・YB
日本・USA・3000・500・YA
 ・
 ・

現在のアンマッチ方法では、
表1.の事業所と販売所をマッチングキーとして表2.を検索していった場合
表2.の1行目ではアンマッチな為
表1.の日本・USA・1000・500・YAはアンマッチとして表に追加されてしまいます
しかし、実際には表2.内には検索キーにてマッチングする項目が存在しています・・・

表全てを検索してアンマッチのものだけを一覧にするにはどのようにしたらよいのでしょうか??

説明不足な質問で大変申し訳御座いません
まだ、不足しておりましたらご指摘・ご指導どうぞよろしくお願い致します

【36871】Re:アンマッチの一覧表作成
回答  Statis  - 06/4/17(月) 10:46 -

引用なし
パスワード
   こんにちは

こんな感じかな?
(Sheet1=表1 ・ Sheet2=表2)と仮定しています。

Sub Test_1()
Dim C As Range, Fi As Range, R As Range
Dim Ws As Worksheet, Ad As String

Set Ws = Worksheets("Sheet2")
With Worksheets("Sheet1")

   Set R = .Range("A2", .Range("A65536").End(xlUp))
   For Each C In R
     Set Fi = Ws.Columns(1).Find(C.Value, , xlValues, xlWhole)
     If Not Fi Is Nothing Then
      Ad = Fi.Address
      Do
       Set Fi = Ws.Columns(1).Find(Fi)
       If Fi.Offset(, 1).Value = C.Offset(, 1).Value Then
        C.Offset(, 255).Value = 1
        '一致した場合の処理コード
       End If
      Loop Until Ad = Fi.Address
     End If
     Set Fi = Nothing
   Next C
   On Error GoTo End_Len
   R.Offset(, 255).SpecialCells(xlCellTypeBlanks).EntireRow.Copy _
    Ws.Range("A65536").End(xlUp).Offset(1)
   On Error GoTo 0
   Ws.Columns(256).Clear
   R.Offset(, 255).Clear
  
End With

End_Len:
Set R = Nothing: Set Ws = Nothing

End Sub

【36878】Re:アンマッチの一覧表作成
回答  Kein  - 06/4/17(月) 11:42 -

引用なし
パスワード
   条件:

Sheet1=表1・Sheet2=表2 と仮定
1行目が項目・2行目以下がデータ と仮定
Sheet1のAA:AC列を作業列とする。

Sub UnMatch_Data()
  Dim LsR As Long
 
  LsR = Worksheets("Sheet2").Range("A65536").End(xlUp).Row
  Application.ScreenUpdating = False
  With Worksheets("Sheet1")
   Application.Goto .Range("A1"), True
   .Rows.Hidden = False
   .Range("AA:AC").ClearContents
   .Range("AA2", .Range("A65536").End(xlUp).Offset(, 26)) _
   .Formula = "=$A2&$B2"
   .Range("AB2:AB" & LsR).Formula = "=Sheet2!$A2&Sheet2!$B2"
   On Error Resume Next
   With .Range("AC2", .Range("A65536").End(xlUp).Offset(, 28))
     .Formula = "=MATCH($AA2,$AB:$AB,0)"
     .SpecialCells(3, 1).EntireRow.Hidden = True
   End With
   .Range("AA:AC").ClearContents
  End With
  Application.ScreenUpdating = True
End Sub

【36885】Re:アンマッチの一覧表作成
発言  だるま WEB  - 06/4/17(月) 13:38 -

引用なし
パスワード
   マッチングが出来たのなら、そのマッチング時にマッチした行に印を付けておき、後で
再度ループして印の付いていない行(データ)を取り出せば良いのではありませんか。^d^

【36892】Re:アンマッチの一覧表作成
お礼  YBA  - 06/4/17(月) 15:32 -

引用なし
パスワード
   的確なご指導どうもありがとう御座いました!!
おかげでアンマッチな一覧表を作成する事が出来ました

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