【发布时间】:2019-03-27 21:35:48
【问题描述】:
我有 2 列数据和第三列查询词。查询词在数据的 column1(“Data1”)中有部分但完全匹配的匹配项。我想在“Data1”列中查找查询词的所有匹配项,并从“Data2”列返回逗号分隔值。
请看图片。
这个网站上已经有一个类似问题的 UDF,但这并不完全符合我的要求。
Excel: Return multiple matches in a single cell while doing a partial match
非常感谢您的帮助。祝福 ManojData Image
我已经尝试过这个 UDF:
Public Function ConcatPartLookUp(rngInput As Range, rngSource As Range, Optional strDelimiter As String, Optional blCaseSensitive)
Dim rng As Range
If strDelimiter = "" Then strDelimiter = "|"
If IsMissing(blCaseSensitive) Then
blCaseSensitive = False
Else
blCaseSensitive = True
End If
For Each rng In rngSource
If blCaseSensitive Then
If InStr(1, rng.Value, rngInput.Value, vbBinaryCompare) > 0 Then ConcatPartLookUp = ConcatPartLookUp & strDelimiter & rng.Value
Else
If InStr(1, rng.Value, rngInput.Value, vbTextCompare) > 0 Then ConcatPartLookUp = ConcatPartLookUp & strDelimiter & rng.Value
End If
Next
If Len(ConcatPartLookUp) > 0 Then ConcatPartLookUp = Mid(ConcatPartLookUp, 2, Len(ConcatPartLookUp))
End Function
此代码将从“Data1”列返回匹配项(非常蓝天。|永远的蓝天。)。我希望在 Data1 上匹配,但从 Data2 返回值。 谢谢
【问题讨论】:
-
嗨,欢迎来到 SO。你试过什么了?在此处发布您的代码,以便我们提供帮助
标签: excel vba user-defined-functions