エクセル2000,2002までは、ある関数(存在すればDELETEとかの名前になるのでしょうが)をあるセルに入れると、自分自身の行や他の指定行を削除する関数が「存在しない」と思います。同じく行挿入も同じです。
1行または指定範囲を指定し、1つ1つ「操作」(列削除)する原則で作られていると言うことでしょう。
そういう分野はVBAに任せると言うことだと思います。
VBAを今回限り下記の通り真似して、解決するのはどうですか。模擬データでやって見ます。
Sheet1にA1からA10まで下記データを入れる。
山田
大木
栗田
山田
木下
大木
三田
三木
赤石
久本
ALTキーを押しながらF11キーを押す。VBE画面になる。その後、メニューの「挿入」をクリック-「標準モジュール」をクリックする。右上部分に下記を貼りつける。
Sub test01()
' Sheet1のi行、j列は Worksheets("sheet1").Cells(i, j)
' で表せる
j = 1 'Sheet2の第1行目を指す。
For i = 1 To 10 '本番は最終行の行数。例1000
a = Worksheets("sheet1").Cells(i, 1) 'A列i行の内容を取る
Select Case a 'A列データに注目
Case "山田" '山田ならShee2に書き出し
Worksheets("sheet2").Cells(j, 1) = Worksheets("sheet1").Cells(i, 1)
' 直前2行はやむなく改行されています。=の両辺は
' 1行に変えてください。大木のこの部分も同じ。
j = j + 1 'j行に1行書いたから、次行を指す
Case "大木"
Worksheets("sheet2").Cells(j, 1) = Worksheets("sheet1").Cells(i, 1)
j = j + 1
Case Else
End Select
Next i '次の行の処理(上のFor i=1 以後)を繰り返す。
End Sub
これをメニューの「実行」-「Sub/ユーザーフォームの実行」をクリックして、実行するとSheet2には
山田
大木
山田
大木
になります。
---
●後は人(上例では山田、大木)を増やすこと。
●Sheet1よりSheet2へ持って行く列を増やすこと。が必要です。C列を持って行くなら(Aは1、Cは3なので)
Worksheets("sheet2").Cells(j, 3) = Worksheets("sheet1").Cells(i, 3)
を増やすと良い.
最大限余分な知識は省いて初歩的にしています。