こんにちは!
一例です。
Sheet1のデータをSheet2に表示するようにしてみました。
Sheet2の1行目の項目、2行目の「番号」・「名前」は入力済みだとします。
標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。
Sub Sample1()
Dim i As Long, j As Long, k As Long, c As Range, wS1 As Worksheet, wS2 As Worksheet, myFlg As Boolean
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
i = wS2.Cells(Rows.Count, 1).End(xlUp).Row
If i > 2 Then
Range(wS2.Cells(3, "A"), wS2.Cells(i, "I")).ClearContents
End If
For i = 2 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
myFlg = False
For k = 1 To Len(wS1.Cells(i, 1))
If Mid(wS1.Cells(i, 1), k, 1) Like "[a-z A-Z]" Then
myFlg = True
Exit For
End If
Next k
If myFlg = False Then
Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
wS1.Cells(i, 1).Resize(1, 2).Copy wS2.Cells(Rows.Count, 1).End(xlUp).Offset(1)
End If
End If
Next i
For k = 3 To wS2.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(wS1.Cells(i, 1), wS2.Cells(k, 1)) > 0 Then
j = WorksheetFunction.Match(wS1.Cells(i, 3), wS2.Range("1:1"), False)
wS2.Cells(k, j) = "○"
End If
Next i
Next k
Application.ScreenUpdating = True
End Sub
※ Sheet1のC列データは同番号が含まれている人に重複はない!とします。
こんなんではどうでしょうか?m(_ _)m
お礼
ありがとうございます。 ご丁寧な回答感謝します。