代码是用户定义的函数,可以在工作表中使用。该函数有三个参数:
=MatchConcat(X1,X2,X3)
X1
=您要匹配的值
X2
=您想要匹配的值列,以及
X3
=如果匹配则要返回的值列。
它返回匹配值的逗号分隔字符串。
现在,我担心的是......我实际上正在寻找一种替代方案,并且更好(执行速度更快)VBA功能与下面相同。目前,下面的这个VBA函数对我的大量数据非常有帮助。不幸的是,使用这个功能到数千行甚至数百行需要这么长时间才能加载。花了5到10分钟(少于1000行)。我已经关闭了自动公式计算,但仍然遇到了同样的问题。
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