我不确定你正在寻找什么可以单独使用工作表公式来完成。这是一个简短的 VBA 例程,应该这样做。
Function MatchConcat(LookupValue, LookupRange As Range, ValueRange As Range)
Dim lookArr()
Dim valArr()
Dim i As Long
lookArr = LookupRange
valArr = ValueRange
For i = 1 To UBound(lookArr)
If Len(lookArr(i, 1)) <> 0 Then
If lookArr(i, 1) = LookupValue Then
MatchConcat = MatchConcat & ", " & valArr(i, 1)
End If
End If
Next
MatchConcat = Mid(MatchConcat, 3, Len(MatchConcat) - 1)
End Function
代码是可以在工作表中使用的用户定义函数。该函数接受三个参数:
- 您要匹配的值,
- 您要匹配的值的列,以及
- 如果存在匹配项,则要返回的值列。
它返回匹配值的逗号分隔字符串。
代码可以粘贴到标准模块中(可以通过在功能区Visual Basic
的Developer
选项卡中选择,然后从菜单栏中选择Insert
->来插入。Module