|
▼質問小僧 さん:
「別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の検索範囲をこのあたらしいリストとすることもできます。
|
|