質問とは結果が異なりますが、(住所がありませんが)、
「顧客名簿一覧表」を各「営業担当者シート」から、作ってしまうやり方です。
ーーーー
鈴木シート(シート名「鈴木」)
顧客名 対象
三菱商事 対象
住友商事 対象
双日 非対象
清水建設 対象
大林組 対象
山田シート(シート名山田)以下何シートあっても良い。
顧客名 対象
鹿島建設 対象
大成建設 非対象
竹中工務店 対象
清水建設 非対象
大林組 対象
------
VBAコード
Sub test01()
'-----合体
Dim sh As Worksheet
k = 2
For Each sh In ActiveWorkbook.Worksheets
If sh.Name = "Sheet3" Then GoTo p01
d = sh.Range("A65536").End(xlUp).Row
For i = 2 To d
For j = 1 To 3
Worksheets("Sheet3").Cells(k, j) = sh.Cells(i, j)
Next j
Worksheets("sheet3").Cells(k, 3) = sh.Name
k = k + 1
Next i
Next
'-----ソート
p01:
Sheets("Sheet3").Range(Cells(2, "A"), Cells(k, "C")).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
'-----重複排除
p02:
Dim sh3 As Worksheet
Set sh3 = Worksheets("Sheet3")
n = 2
For i = 2 To k
If m = sh3.Cells(i, "A") Then
If sh3.Cells(i, "B") = "対象" Then
sh3.Cells(n - 1, "H") = sh3.Cells(n - 1, "H") & " " & sh3.Cells(i, "C")
End If
Else
For j = 1 To 3
sh3.Cells(n, j + 5) = sh3.Cells(i, j)
Next j
m = sh3.Cells(i, "A")
n = n + 1
End If
Next i
End Sub
結果
Shee3に(下記のF列より右側が、最終結果です。左は中間結果。)
三菱商事 対象 鈴木 三菱商事 対象 鈴木
鹿島建設 対象 山田 鹿島建設 対象 山田
住友商事 対象 鈴木 住友商事 対象 鈴木
清水建設 対象 鈴木 清水建設 対象 鈴木
清水建設 非対象 山田 双日 非対象 鈴木
双日 非対象 鈴木 大成建設 非対象 山田
大成建設 非対象 山田 大林組 対象 鈴木 山田
大林組 対象 鈴木 竹中工務店 対象 山田
大林組 対象 山田
竹中工務店 対象 山田
----
改造できるなら使えるかも。
住所等法人付加情報は、VLOOKUPで引くとかできそう。
お礼
実際に活用させていただきました。どうもありがとうございました。