Excel VBA質問箱 IV

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

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


21311 / 76738 ←次へ | 前へ→

【60828】Re:検索方法にて2
発言  kanabun  - 09/3/17(火) 11:32 -

引用なし
パスワード
   ▼質問小僧 さん:

「別Book」に 先に提示しましたようなリストがあるとしますと、

>  A      B
>伝票No   管理番号
>1234    A00123
>1235    A00124
>1234    A01234
>1235    A01235
>1246    A01246
>1234    B1234

Sub Try1()
  Dim WS2 As Worksheet
  Dim v
  Dim dic As Object
  Dim sKey As String, ss As String
  Dim i As Long
  
  Set WS2 = Workbooks("別Book.xls").Worksheets(1)
  v = WS2.Range("A1").CurrentRegion.Value  '元のリストを配列に入れる
  Set dic = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(v)
    sKey = v(i, 1)             '伝票番号をキーとして
    If dic.Exists(sKey) Then        
      dic(sKey) = dic(sKey) & "," & v(i, 2)'管理番号をグループ化
    Else
      dic(sKey) = v(i, 2)
    End If
  Next
  WS2.Range("D1").Resize(dic.Count, 2).Value = _
    Application.Transpose(Array(dic.Keys, dic.Items))'集約後のリスト
    
  Set dic = Nothing
  Set WS2 = Nothing
      
End Sub

これを走らせると、同じシートの D列,E列に 伝票Noで
グループ化した(管理番号を集約した)あたらしいリスト
ができます。

--------------------------------
 D列    E列
伝票No  管理番号
1234   A00123,A01234,B1234
1235   A00124,A01235
1246   A01246

このあたらしいリストをどう使うかはあなた次第ですが、
VLOOKUPの検索範囲をこのあたらしいリストとすることもできます。
7 hits

【60818】検索方法にて 質問小僧 09/3/16(月) 20:34 質問
【60819】Re:検索方法にて kanabun 09/3/16(月) 21:04 発言
【60824】Re:検索方法にて2 質問小僧 09/3/17(火) 9:13 発言
【60826】Re:検索方法にて2 kanabun 09/3/17(火) 9:50 発言
【60827】Re:検索方法にて2 質問小僧 09/3/17(火) 9:55 お礼
【60828】Re:検索方法にて2 kanabun 09/3/17(火) 11:32 発言

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