【问题标题】:Excel: Return multiple matches in a single cell while doing a partial matchExcel:在进行部分匹配时在单个单元格中返回多个匹配项
【发布时间】:2017-10-24 02:29:25
【问题描述】:

我正在处理一个包含两列的文件。第一列有简单的三个单词的句子。第二个有单字关键字。

我希望能够搜索第一列,找到所有具有特定关键字的句子并将它们列为关键字旁边的分隔值。

假设一个管道(“|”)作为分隔符,我会得到这样的东西:

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.

谢谢!

【问题讨论】:

  • 解释很清楚,可以给出解决方案,但请告诉我们您到目前为止尝试了什么。本网站期待创建者的努力。
  • 我试图用 VLOOKUP 解决这个问题,但是我被卡住了,因为该函数无法处理多个返回
  • 如果您对您说可以的答案进行评分,那就太好了。

标签: excel excel-formula vlookup lookup vba


【解决方案1】:

这是一种方法。

  1. 按 ALT+F11 键打开 Visual Basic 编辑器 (VBE)。
  2. 使用插入>>模块插入新模块
  3. 将下面的代码粘贴到代码窗格中。

    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)

请注意,我提供了另外两个可选参数,从长远来看它们可能会很有用。如果你想让它区分大小写并传递不同的分隔符说“#”,那么你需要使用:

=ConcatPartLookUp(B2,A2:A6,"#",TRUE)

【讨论】:

  • 谢谢@"Shrivallabha Redij" - 这完美地解决了问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多