跳到主要内容

如何比较两个单元格中的逗号分隔值并在 Excel 中返​​回重复值或唯一值?

如下图所示,有两列 - Column1 和 Column2,列中的每个单元格都包含逗号分隔的数字。 要将 Column1 中的逗号分隔数字与 Column2 同一行中的单元格内容进行比较并返回所有重复值或唯一值,您可以做什么?

本教程提供了两种方法来帮助您完成此任务。


比较两个单元格中的逗号分隔值并使用公式返回重复值或唯一值

本节提供了两个公式来帮助比较两个单元格中的逗号分隔值并返回它们之间的重复值或唯一值。

备注:以下公式仅适用于 Excel 365. 如果您使用的是其他版本的 Excel, 尝试使用下面的 VBA 方法.

以上面两列为例,要将Column1中的逗号分隔数字与Column2同一行中的逗号分隔数字进行比较,并返回重复值或唯一值,请执行以下操作。

返回重复值

1.选择一个单元格输出两个指定单元格之间的重复数字,以逗号分隔数字,在这种情况下,我选择单元格D2,然后输入下面的公式并按 输入 钥匙。 选择公式单元格并拖动它的 自动填充句柄 down 以获取其他行中单元格之间的重复数字。

=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))

返回唯一值

要返回同一行中以逗号分隔的数字的两个指定单元格之间的唯一数字,以下公式可以提供帮助。

1.选择一个单元格输出唯一数字,在这种情况下,我选择单元格E2,然后输入下面的公式并按 输入 钥匙。 选择公式单元格并拖动它的 自动填充句柄 down 以获取其他行中单元格之间的唯一数字。

=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))

:

1)以上两个公式只能在Excel for 365中应用,如果你使用的Excel不是365版本的Excel,请尝试下面的VBA方法。
2)要比较的单元格必须在同一行或同一列中彼此相邻。

使用逗号分隔值比较两列并使用 VBA 返回重复值或唯一值

本节中提供的用户定义函数有助于比较两个指定单元格中的逗号分隔值,并返回它们之间的重复值或唯一值。 请按如下方式操作。

同样以上面的例子为例,要将 Column1 中的逗号分隔数字与 Column2 同一行中的逗号分隔数字进行比较并返回重复值或唯一值,请尝试本节中的用户定义函数。

1. 在打开的工作簿中,按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块, 并将以下 VBA 代码复制到 模块(代码) 窗口。

VBA 代码:比较两个单元格中的逗号分隔值并返回重复/唯一值

Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
    Dim R1Arr As Variant
    Dim R2Arr As Variant
    Dim Ans1 As String
    Dim Ans2 As String
    Dim Separator As String
    Dim d1 As New Dictionary
    Dim d2 As New Dictionary
    Dim d3 As New Dictionary
    Application.Volatile

    Separator = ", "
    
    R1Arr = Split(Rng1.Value, Separator)
    R2Arr = Split(Rng2.Value, Separator)
    
    Ans1 = ""
    Ans2 = ""
    
    For Each ch In R2Arr
        If Not d2.Exists(ch) Then
            d2.Add ch, "1"
        End If
    Next
    
    If Op Then
        For Each ch In R1Arr
            If d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans1 = Ans1 & ch & Separator
                End If
            End If
        Next
        If Ans1 <> "" Then
            Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
        End If
        COMPARE = Ans1
    Else
        For Each ch In R1Arr
            If Not d1.Exists(ch) Then
                d1.Add ch, "1"
            End If
        Next
        
        For Each ch In R1Arr
            If Not d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        For Each ch In R2Arr
            If Not d1.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        If Ans2 <> "" Then
            Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
        End If
        COMPARE = Ans2
    End If

End Function

3.粘贴代码后 模块(代码) 窗口,去点击 工具 > 参考资料 打开 参考– VBAProject 窗口中,检查 Microsoft脚本运行时 框,然后单击 OK 按钮。

4。 按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口。

5. 现在您需要分别应用两个函数来返回两个逗号分隔值单元格中的重复值和唯一值。

返回重复值

选择一个单元格输出重复的数字,在这个例子中,我选择单元格D2,然后输入下面的公式并按 输入 键获取单元格 A2 和 B2 之间的重复数字。

选择公式单元格并向下拖动其自动填充手柄以获取其他行中单元格之间的重复数字。

=COMPARE(A2,B2,TRUE)

返回唯一值

选择一个单元格输出唯一数字,在这个例子中,我选择单元格E2,然后输入下面的公式并按 输入 获取单元格 A2 和 B2 之间的唯一数字的键。

选择公式单元格并向下拖动其自动填充句柄以获取其他行中单元格之间的唯一数字。

=COMPARE(A2,B2,FALSE)

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations