【问题标题】:How do I compare text in Excel cells to see if same words are found?如何比较 Excel 单元格中的文本以查看是否找到相同的单词?
【发布时间】:2012-08-22 09:16:32
【问题描述】:

我有几行 Excel 单元格,其中包含一串单词,全部用逗号分隔。我想将每个单元格与另一个单元格进行比较,以检查是否有任何单词匹配/重复。 例如:

单元格 A1:dog, cat, rabbit, mouse, lion, bear, tiger
单元格 A2:sausage, pickle, dog, cat, elephant, bread

结果:dog, cat

如果这样更容易,结果也可以是一个数字(例如 2)。 非常感谢!

【问题讨论】:

    标签: excel vba comparison cells


    【解决方案1】:

    From here

    要检查字符串是否等于另一个字符串,您可以使用Exact
    =EXACT(text1,text2)

    Text1 是第一个文本字符串。

    Text2 是第二个文本字符串。

    【讨论】:

    • 我试过使用它,但它是用于数字的,我不确定文本解析部分。那是我需要帮助的部分:)
    • 就像您在示例中看到的那样,您还可以将字符串与字符串进行比较
    【解决方案2】:

    我认为您最好使用 VBA,然后您可以将其部署为 User Defined Function (UDF)

    • 按住进入VBE
    • 插入...模块
    • 复制粘贴下面的代码
    • 按住 返回 Excel

    然后调用Excel中的函数如
    =DupeWord(A1,A2) 查找 A1 和 A2 之间的任何匹配项

    Usr Defined Function

    Function DupeWord(str1 As String, str2 As String) As String
    Dim vArr1
    Dim vArr2
    Dim vTest
    Dim lngCnt As Long
    vArr1 = Split(Replace(str1, " ", vbNullString), ",")
    vArr2 = Split(Replace(str2, " ", vbNullString), ",")
    On Error GoTo strExit
    
    For lngCnt = LBound(vArr1) To UBound(vArr1)
    vTest = Application.Match(vArr1(lngCnt), vArr2, 0)
    If Not IsError(vTest) Then DupeWord = DupeWord & vArr1(lngCnt) & ", "
    Next lngCnt
    If Len(DupeWord) > 0 Then
    DupeWord = Left$(DupeWord, Len(DupeWord) - 2)
    Else
    strExit:
    DupeWord = "No Matches!"
    End If
    
    End Function
    

    Use inside VBA

    Sub test()
    MsgBox DupeWord("dog, cat, rabbit, mouse, lion, bear, tiger", "sausage, pickle, dog, cat, elephant, bread")
    End Sub
    

    【讨论】:

    • brettdj,非常感谢!正是我想要的:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多