omegacaesar,
Welcome to the forum!
Attached is a modified version of your example workbook. It contains a UDF with the following code:
Public Function GetNames(ByVal strLookupValue As String, _
ByVal rngNames As Range, _
ByVal rngMembers As Range) As String
Dim rIndex As Long
Dim rngFound As Range
For rIndex = rngMembers.Row To rngMembers.Row + rngMembers.Rows.Count - 1
Set rngFound = rngMembers.Resize(1).Offset(rIndex - rngMembers.Row).Find(strLookupValue, , , xlWhole)
If Not rngFound Is Nothing Then
GetNames = GetNames & "; " & rngNames.Resize(1, 1).Offset(rIndex - rngMembers.Row).Value
Set rngFound = Nothing
End If
Next rIndex
GetNames = Mid(GetNames, 3)
End Function
In the 'Required output' sheet, cell B2 and copied down is this formula:
=getnames(A2,FamilyTable[Effective Name],FamilyTable[[Member 1]:[Member 18]])
Basically, you use it in this format:
=getnames(LookupValue,NameRange,MemberRange)
Bookmarks