Excel单元格内重复项的删除方法详解
本文介绍三种在Excel单元格中查找和删除重复项的方法,选择最适合您的方法即可。
在删除重复值或行方面,Microsoft Excel提供了多种不同的选项。但是,当需要删除给定单元格内的相同文本时,Excel却……什么也没有提供。没有工具、没有功能、没有公式,什么也没有。这会阻止我们实现目标吗?当然不会。如果Excel没有我们需要的功能,那就让我们自己编写一个吧!
- 使用VBA在Excel中删除重复单词
- 使用VBA删除重复字符
- 使用Ultimate Suite删除多个单元格中的重复文本
如何在Excel单元格中删除重复单词
问题:单元格中存在相同的单词或文本字符串,您希望删除第二个及所有后续重复项。
解决方案:自定义用户定义函数或VBA宏。
删除单元格内重复项的用户定义函数
要消除单元格中的重复文本,您可以使用以下名为RemoveDupeWords的自定义用户定义函数(UDF):
Function RemoveDupeWords(text As String, Optional delimiter As String = " ") As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject("Scripting.Dictionary") dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count > 0 Then RemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function
如何在工作簿中插入函数代码
要将上述代码添加到您的Excel中,您需要执行以下操作:
- 按Alt F11打开Visual Basic编辑器。
- 在左侧窗格中,右键单击ThisWorkbook,然后选择插入>模块。
- 将上述代码粘贴到代码窗口中。
有关更多信息,请参阅如何在Excel中插入VBA代码。
RemoveDupeWords函数语法
我们新创建的用于删除单元格中重复文本的函数具有以下语法:
RemoveDupeWords(text, [delimiter]) 其中:
- Text(必需)- 要从中删除重复文本的字符串或单元格。
- Delimiter(可选)- 重复文本用其分隔的分隔符。如果省略,则使用空格作为分隔符。
该函数不区分大小写,这意味着小写字母和大写字母被视为相同的字符。
如何使用RemoveDupeWords函数
将函数代码添加到工作簿后,您可以像使用Excel的内置函数一样在公式中使用它。
只需在等号后开始键入函数名称,它就会出现在公式智能感知中。双击该函数,它将被插入到单元格中。定义参数,键入右括号,按Enter键,您的公式就完成了。
例如,要从A2中删除用逗号和空格分隔的重复单词,请在B2中输入以下公式,然后将其向下拖动到所需的单元格数:
=RemoveDupeWords(A2, ", ")
结果,您将获得一个用逗号和空格分隔的唯一单词或子字符串列表:
如果您希望获得逗号分隔的列表,则仅对分隔符使用逗号:
=RemoveDupeWords(A2, ",")
如果您的源数据用空格分隔,则第二个参数应为" "或省略:
=RemoveDupeWords(A2)
像任何其他Excel函数一样,我们的UDF会在源数据更改时自动重新计算,因此您的结果将始终是最新的。
一次删除多个单元格中重复文本的VBA宏
如果您希望一次删除多个单元格中的重复文本,则可以在宏中调用RemoveDupeWords函数。在这种情况下,分隔符是硬编码的,每次分隔符更改时,您都必须更新宏的代码。或者,您可以为最常见的分隔符(例如空格、逗号或逗号和空格)编写一些代码变体,并为您的宏赋予有意义的名称,例如RemoveDupesDelimSpace。
宏代码如下:
Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", ") Next End Sub
在上面的代码中,分隔符是逗号和空格。要使用不同的分隔符,请在以下代码行中将", "替换为其他字符:
cell.Value = RemoveDupeWords(cell.Value, ", ")
注意。要使宏正常工作,其代码和RemoveDupeWords函数的代码必须放置在同一个模块中。
如何使用宏
将宏代码插入您自己的工作簿或打开包含该代码的示例工作簿,然后执行以下步骤来运行宏。
- 选择要从中删除重复文本的单元格范围。
- 按Alt F8打开宏对话框。
- 在宏列表中,选择RemoveDupeWords2。
- 单击运行。
有关更多详细信息,请参阅如何在Excel中运行宏。
注意。由于宏的操作无法撤消,我们强烈建议您在使用宏之前保存工作簿。这样,如果出现问题,您可以简单地关闭并重新打开工作簿,您将回到您之前的位置。或者,您可以只复制可能受宏影响的工作表。
如何在单元格中删除重复字符
问题:单元格中存在多个相同的字符,而每个单元格应该只包含给定字符的单个出现。
解决方案:自定义用户定义函数或VBA宏。
删除重复字符的用户定义函数
要删除单元格内的重复字符,只保留第一次出现的字符,您可以使用以下名为RemoveDupeChars的自定义用户定义函数:
Function RemoveDupeChars(text As String) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject("Scripting.Dictionary") For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function
要将函数代码插入到您的工作簿中,步骤与前面的示例完全相同。
RemoveDupeChars函数语法
此自定义函数的语法尽可能简单 - 只需要一个参数:
RemoveDupeChars(text) 其中text是要从中删除重复字符的字符串或单元格。
该函数区分大小写,并将小写字母和大写字母视为不同的字符。
如何使用RemoveDupeChars函数
我们对RemoveDupeWords的使用所述的一切都适用于RemoveDupeChars。因此,无需过多理论,让我们直接进入示例。
要从A列(从A2开始)删除重复字符,请在B2中输入此公式并将其复制到下方:
=RemoveDupeChars(A2)
如下图所示,该函数成功处理了不同的字符类型,包括字母、数字和特殊符号:
提示。如果您的字符用某些分隔符(例如空格、逗号或连字符)彼此分隔,则请使用前面示例中所示的RemoveDupeWords函数。
删除单元格中相同字符的VBA宏
像RemoveDupeWords一样,RemoveDupeChars函数也可以在宏中调用:
Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub
因为此UDF不使用任何分隔符,所以您无需在代码中进行任何调整。
注意。要使宏正常工作,其代码和RemoveDupeChars UDF的代码必须放置在VBA编辑器中的同一个模块中。
如何使用宏
假设您已经将宏代码插入到您的工作簿中或打开了包含该代码的示例工作簿,请按以下方式启动宏。
- 选择要从中删除重复字符的单元格范围。
- 按Alt F8打开宏对话框。
- 在宏列表中,选择RemoveDupeChars2。
- 单击运行。
使用Ultimate Suite删除重复子字符串
在本教程的开头,提到Microsoft Excel没有内置功能来删除单元格内的重复项。但是我们的Ultimate Suite可以!
您可以在Ablebits Data选项卡上的Duplicate Remover下拉菜单中找到它,位于Dedupe组中。如果Remove Duplicate Substrings选项没有出现在您的Excel中,请确保您安装了最新版本的Ultimate Suite(此处可以下载免费试用版)。
要以5秒钟的速度(每一步一秒)从多个单元格中删除重复的单词或文本,您需要执行以下操作:
- 选择您的源数据并启动Remove Duplicate Substrings工具。
- 指定分隔符。
- 定义是否将连续的分隔符视为一个(默认)。
- 选择执行区分大小写还是不区分大小写的搜索。
- 单击删除。
完成了!无需使用VBA或公式,只需快速准确的结果即可。
要了解有关此强大加载项的更多信息,请访问其主页。或者更好的是,下载下面的评估版本并试用一下!
这就是删除单元格中重复文本的方法。感谢您的阅读,希望下周在我们的博客上再见!
可下载资源
单元格中删除重复项的示例(.xlsm文件)Ultimate Suite 14天完全功能版本(.exe文件)
以上是如何在Excel中的单元格中删除重复项的详细内容。更多信息请关注PHP中文网其他相关文章!

Google主张Countif:综合指南 本指南探讨了Google表中的多功能Countif函数,展示了其超出简单单元格计数的应用程序。 我们将介绍从精确和部分比赛到Han的各种情况

本教程提供了共享Excel工作簿,涵盖各种方法,访问控制和冲突解决方案的综合指南。 现代Excel版本(2010年,2013年,2016年及以后)简化了协作编辑,消除了M的需求

本教程探讨了将.xls文件转换为.jpg映像的各种方法,包括内置的Windows工具和免费的在线转换器。 需要创建演示文稿,安全共享电子表格数据或设计文档吗?转换哟

本教程阐明了Excel名称的功能,并演示了如何定义单元格,范围,常数或公式的名称。 它还涵盖编辑,过滤和删除定义的名称。 Excel名称虽然非常有用,但通常是泛滥的

本教程阐明了平均值的标准偏差和标准误差之间的区别,指导您掌握标准偏差计算的最佳Excel函数。 在描述性统计中,平均值和标准偏差为interinsi

该Excel教程演示了如何计算正方根和n根。 找到平方根是常见的数学操作,Excel提供了几种方法。 计算Excel中正方根的方法: 使用SQRT函数:

解锁Google表的力量:初学者指南 本教程介绍了Google Sheets的基础,这是MS Excel的强大而多才多艺的替代品。 了解如何轻松管理电子表格,利用关键功能并协作


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。