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

网友投稿 258 2023-12-16

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

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

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

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

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

备注:以下公式仅适用于 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
Copy

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 for Excel!

准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!

为什么需要 Kutools for Excel

🛠️  超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。

📈  卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!

⏱️  高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。

📊  定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。

🗄️  强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。

📝  七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。

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

🎓  用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。

立即下载,与 Excel 一起穿越时空!

阅读更多 免费下载... 采购... 
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 免费下载... 采购... 

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何在Excel中的两列中比较字母数字值?
下一篇:如果大于Excel中的另一个日期,如何比较日期?
相关文章