>200件ほどです
データ全体で、ある1シート(仮にSheet1)に200行ほどデータがあるということ?
>氏名・住所など10項目程度
>各取引先ごとにブックを・・
取引先名はどの列かにあるのでしょうね。明示すべきこと。
>取引先ごとにブックを作成
VBA・関数などなら、各取引先を各シートごとにするのがお勧め。
別ブックより、考えやすいと思う(私見)
ーー
手操作でやるのが一番早い。フィルタオプションの利用など。
欠点はある時点で固定した状態になること。Sheet1にデータが増えても、即反映しないとダメなものなら、その際作業をもう一度やり直し。
この点はVBAでも同じ。
関数は自動で増減に反応してくれそうだが、式を作るのが、技巧的で複雑。もともとデータ抜き出しなど向きではない。
取引先別シートの全セルが式で埋まり、複雑な関数式により、処理が重たくなるかも知れない。
ーー
VBA
色々なロジック(やり方の筋道)がありえる。
(1)フィルタオプションをマクロの記録をとって、取引先名を変えて繰り返し
(2)取引先名でソートして、ソート後Sheet1の取引先名が同じ間は同じシートのセルに代入かコピー張り付け(私のお勧め)
(3)検索して該当を同一シートに張り付け、を取引先数回繰り返し
(4)その他
ーー
関数
1つのやり方。
取引先ごと番号+その取引先のその行までの出現数を作る。Sheet1の空き列、作業列に作る。
その番号を元に、各シート側でSheet1よりデータを採ってくる。(imogasi方式というのをOKWAVEで沢山回答しているが、そのアイデアを使える)