Функции типа VLOOKUP или INDEX(...;MATCH()) ищут только первое значение сверху списка. Но часто возникает необходимость подтянуть все значения по заданному параметру поиска. Для этого можно использовать пользовательскую функцию, написанную как-то на коленке. Function FindAll(LValue As String, SRng As Range, RRng As Range)
For i = 1 To Workbooks(Sheets(SRng.Parent.Name).Parent.Name).Sheets(SRng.Parent.Name).UsedRange.Rows.count
If SRng(i, 1) = LValue Then FindAll = FindAll & RRng(i, 1) & ";"
Next i
End Function Так как значения повторяются, то есть вариант с уникальными значениями Function FindAllUnique(LValue As String, SRng As Range, RRng As Range) As String
Dim count As Long, mark As Integer
ReDim s(0) As Variant
count = 0
's(0) = 0
For i = 1 To Workbooks(Sheets(SRng.Parent.Name).Parent.Name).Sheets(SRng.Parent.Name).UsedRange.Rows.count
If CStr(SRng(i, 1)) = CStr(LValue) Then
mark = 0
For Each y In s
If CStr(RRng(i, 1)) = CStr(y) Then
mark = 1
GoTo 10
End If
Next y