在 Excel 中的 2 列之间提取部分匹配字符串(单词)

Posted

技术标签:

【中文标题】在 Excel 中的 2 列之间提取部分匹配字符串(单词)【英文标题】:Extract partial matches string(words) between 2 columns in Excel 【发布时间】:2018-03-07 02:56:44 【问题描述】:

我有两列,如下所示,我需要提取在两列之间匹配的部分单词并将其放在第三列中。

      Name1                              Name2
RED CURRY CHICKEN                 GREEN CURRY CHICKEN
BEEF WITH MINT LEAVES             BEEF WITH BASIL LEAVES
SWEET AND SOUND PORK              BACON AND EGG
FRIED RICE                        FRIED RICE

我的预期结果

      Name1                              Name2                     Partial Matches
RED CURRY CHICKEN                 GREEN CURRY CHICKEN               CHICKEN
BEEF WITH MINT LEAVES             BEEF WITH BASIL LEAVES            BEEF WITH LEAVES
SWEET AND SOUND PORK              BACON AND EGG                     AND
FRIED RICE                        FRIED RICE                        FRIED RICE

【问题讨论】:

用公式来做这个是低效的;子过程或用户定义的函数需要 vba。 在您的第一行预期结果中,为什么 CURRY 不是部分匹配? 抱歉输入错误,是的,CURRY 应该出现在结果中 【参考方案1】:

用公式来做到这一点是低效的;子过程或用户定义的函数需要 vba。

Function friedRice(str1 As String, str2 As String)
    Dim w As Long, words As Variant, tmp As String

    words = Split(str1, Chr(32))

    For w = LBound(words) To UBound(words)
        If Not IsError(Application.Match(words(w), Split(str2, Chr(32)), 0)) Then
            tmp = tmp & Chr(32) & words(w)
        End If
    Next w

    friedRice = Trim(tmp)

End Function

【讨论】:

以上是关于在 Excel 中的 2 列之间提取部分匹配字符串(单词)的主要内容,如果未能解决你的问题,请参考以下文章

excel提取单元格中的部分内容

从与特定日期匹配的列表中提取值 - Excel VBA循环

怎样提取excel单元格中的部分数字

怎么将数组数据批量的提取出来。

Python:比较两个excel表之间的列字符串并找到匹配的列并写入另一个数据框

如何将excel表格中多行的部分数据分别提取到另一表格中指定的多行固定位置?