在另一个范围内的字符串中查找任何单词

时间:2014-12-22 10:04:07

标签: string excel text find

如何针对以下问题在Excel工作表中编写公式:

我有一个范围为1的单元格,其值如下:

  

阿迪达斯

     

Nike USA

     

Reebok Japan

     

贝纳通的联合色彩

另一个范围2,以下

  

我爱阿迪达斯

     

贝纳通有多奇怪

     

Reebok到底是什么意思

     奥巴马是民主党总统

现在我需要找到范围1中哪些单元格出现在范围2中的任何单词。所以我需要得到以下结果:

  

是的(阿迪达斯)

     

假(不耐克)

     

TRUE(Reebok)

     

TRUE(贝纳通)

1 个答案:

答案 0 :(得分:0)

我编写了VBA代码,能够遍历 text_to_find 中的单词(具有挑战性的部分)。我可以想象可以编写一些人为的公式。我自己没有这样做(这将是最有趣的!)。

用户定义函数适用于您的示例。对于其他情况,您可能需要稍微调整一下。

Public Function substr_find(ByRef text_to_find As Range, ByRef range_to_search As Range) As Boolean
    ' Create a vector of words to search for
    Dim sep As String
    sep = " "
    Dim words() As String
    words = Split(text_to_find.Value, sep, -1, vbBinaryCompare)

    ' Search for the word, exit as True as soon as it is found
    substr_find = False
    Dim word As String
    Dim wordv As Variant
    For Each wordv In words
      word = CStr(wordv)
      If (Not (range_to_search.Find(word) Is Nothing)) Then
        substr_find = True
        Exit Function
      End If
    Next wordv
End Function