我正在处理一个包含两列的文件。第一列有简单的三个单词句子。第二个是单字关键字。
我希望能够搜索第一列,查找具有特定关键字的所有句子,并将其列为关键字旁边的分隔值。
假设一个管道(“|”)作为分隔符,我会得到这样的结果:
First Column
Very blue sky.
Red sky tonight.
Blue sky forever.
My red car.
Red red red.
第二栏如下:
Second Column
Blue
Red
所需的解决方案(有2列,蓝色和红色在第一列)
Second Column Results Column
Blue Very blue sky. | Blue sky forever.
Red Red sky tonight. | My red car. | Red red red.
谢谢!
答案 0 :(得分:0)
这是一种方法。
在代码窗格中粘贴下面的代码。
"30" or "31"
然后你可以像在任何其他正常功能中一样使用此功能,例如
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
请注意我提供了两个可选参数,从长远来看可能会有用。如果你想让它区分大小写并通过一个不同的分隔符说"#"然后你需要使用:
=ConcatPartLookUp(B2,A2:A6)