
У меня есть две колонки:
Column A Column B
1 Course ID Professors <---- (Column Headers)
2 1179/03 Professor-1
3 1179/03
4 1179/03
5 1300/20 Professor-2
6 1300/20 Professor-3
7 1300/21 Professor-2
8 1300/21 Professor-3
9 1300/21 Professor-4
10 1300/21 Professor-4
11 1300/21 Professor-4
Где каждому идентификатору курса может быть назначено несколько профессоров.
В другой части того же листа у меня есть список идентификаторов курсов, и я хочу вставить назначенных профессоров с помощью формулы:
Column D Column E
1 Course ID Professors <--- (Column Header)
2 1179/03 Professor-1
3 1300/20 Professor-2, Professor-3
4 1300/21 Professor-2, Professor-3, Professor-4
Я вручную предоставлю данные вА,БиДстолбцов, то я хочу получить результаты вЕ2,Е3,Е4с помощью Match/Index
или VLOOKUP
.
Мое ограничение заключается в том, что я не могу добавить ни одного нового столбца и, возможно, ограничить пользователей сортировкой данных по определенному столбцу.
Кто-нибудь может мне помочь.
решение1
С данными, похожими на опубликованные вами данные, этот короткий макрос:
Sub Roster()
Dim rc As Long, i As Long, j As Long, v As String
Dim nA As Long, nB As Long, nD As Long, vv As String
rc = Rows.Count
nA = Cells(rc, 1).End(xlUp).Row
nB = Cells(rc, 2).End(xlUp).Row
nD = Cells(rc, 4).End(xlUp).Row
For i = 2 To nD
v = Cells(i, 4)
vv = ""
For j = 2 To nA
If v = Cells(j, 1) And Cells(j, 2) <> "" And InStr(1, vv, Cells(j, 2)) = 0 Then
vv = vv & "," & Cells(j, 2)
End If
Next j
Cells(i, 5) = Mid(vv, 2)
Next i
End Sub
будет производить: