搜索
首页专题excel如何在Excel中的单元格中删除重复项

Excel单元格内重复项的删除方法详解

本文介绍三种在Excel单元格中查找和删除重复项的方法,选择最适合您的方法即可。

在删除重复值或行方面,Microsoft Excel提供了多种不同的选项。但是,当需要删除给定单元格内的相同文本时,Excel却……什么也没有提供。没有工具、没有功能、没有公式,什么也没有。这会阻止我们实现目标吗?当然不会。如果Excel没有我们需要的功能,那就让我们自己编写一个吧!

  • 使用VBA在Excel中删除重复单词
  • 使用VBA删除重复字符
  • 使用Ultimate Suite删除多个单元格中的重复文本

如何在Excel单元格中删除重复单词

问题:单元格中存在相同的单词或文本字符串,您希望删除第二个及所有后续重复项。

解决方案:自定义用户定义函数或VBA宏。

How to remove duplicates within a cell in Excel

删除单元格内重复项的用户定义函数

要消除单元格中的重复文本,您可以使用以下名为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中,您需要执行以下操作:

  1. 按Alt F11打开Visual Basic编辑器。
  2. 在左侧窗格中,右键单击ThisWorkbook,然后选择插入>模块
  3. 将上述代码粘贴到代码窗口中。

有关更多信息,请参阅如何在Excel中插入VBA代码。

RemoveDupeWords函数语法

我们新创建的用于删除单元格中重复文本的函数具有以下语法:

RemoveDupeWords(text, [delimiter]) 其中:

  • Text(必需)- 要从中删除重复文本的字符串或单元格。
  • Delimiter(可选)- 重复文本用其分隔的分隔符。如果省略,则使用空格作为分隔符。

该函数不区分大小写,这意味着小写字母和大写字母被视为相同的字符。

如何使用RemoveDupeWords函数

将函数代码添加到工作簿后,您可以像使用Excel的内置函数一样在公式中使用它。

只需在等号后开始键入函数名称,它就会出现在公式智能感知中。双击该函数,它将被插入到单元格中。定义参数,键入右括号,按Enter键,您的公式就完成了。

How to remove duplicates within a cell in Excel

例如,要从A2中删除用逗号和空格分隔的重复单词,请在B2中输入以下公式,然后将其向下拖动到所需的单元格数:

=RemoveDupeWords(A2, ", ")

结果,您将获得一个用逗号和空格分隔的唯一单词或子字符串列表:

How to remove duplicates within a cell in Excel

如果您希望获得逗号分隔的列表,则仅对分隔符使用逗号

=RemoveDupeWords(A2, ",")

How to remove duplicates within a cell in Excel

如果您的源数据用空格分隔,则第二个参数应为" "或省略:

=RemoveDupeWords(A2)

How to remove duplicates within a cell in Excel

像任何其他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函数的代码必须放置在同一个模块中。

如何使用宏

将宏代码插入您自己的工作簿或打开包含该代码的示例工作簿,然后执行以下步骤来运行宏。

  1. 选择要从中删除重复文本的单元格范围。
  2. 按Alt F8打开对话框。
  3. 在宏列表中,选择RemoveDupeWords2
  4. 单击运行How to remove duplicates within a cell in Excel

有关更多详细信息,请参阅如何在Excel中运行宏。

注意。由于宏的操作无法撤消,我们强烈建议您在使用宏之前保存工作簿。这样,如果出现问题,您可以简单地关闭并重新打开工作簿,您将回到您之前的位置。或者,您可以只复制可能受宏影响的工作表。

如何在单元格中删除重复字符

问题:单元格中存在多个相同的字符,而每个单元格应该只包含给定字符的单个出现。

解决方案:自定义用户定义函数或VBA宏。

How to remove duplicates within a cell in Excel

删除重复字符的用户定义函数

要删除单元格内的重复字符,只保留第一次出现的字符,您可以使用以下名为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)

如下图所示,该函数成功处理了不同的字符类型,包括字母、数字和特殊符号:

How to remove duplicates within a cell in Excel

提示。如果您的字符用某些分隔符(例如空格、逗号或连字符)彼此分隔,则请使用前面示例中所示的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编辑器中的同一个模块中。

如何使用宏

假设您已经将宏代码插入到您的工作簿中或打开了包含该代码的示例工作簿,请按以下方式启动宏。

  1. 选择要从中删除重复字符的单元格范围。
  2. 按Alt F8打开对话框。
  3. 在宏列表中,选择RemoveDupeChars2
  4. 单击运行How to remove duplicates within a cell in Excel

使用Ultimate Suite删除重复子字符串

在本教程的开头,提到Microsoft Excel没有内置功能来删除单元格内的重复项。但是我们的Ultimate Suite可以!

您可以在Ablebits Data选项卡上的Duplicate Remover下拉菜单中找到它,位于Dedupe组中。如果Remove Duplicate Substrings选项没有出现在您的Excel中,请确保您安装了最新版本的Ultimate Suite(此处可以下载免费试用版)。

How to remove duplicates within a cell in Excel

要以5秒钟的速度(每一步一秒)从多个单元格中删除重复的单词或文本,您需要执行以下操作:

  1. 选择您的源数据并启动Remove Duplicate Substrings工具。
  2. 指定分隔符
  3. 定义是否将连续的分隔符视为一个(默认)。
  4. 选择执行区分大小写还是不区分大小写的搜索。
  5. 单击删除

完成了!无需使用VBA或公式,只需快速准确的结果即可。

How to remove duplicates within a cell in Excel

要了解有关此强大加载项的更多信息,请访问其主页。或者更好的是,下载下面的评估版本并试用一下!

这就是删除单元格中重复文本的方法。感谢您的阅读,希望下周在我们的博客上再见!

可下载资源

单元格中删除重复项的示例(.xlsm文件)Ultimate Suite 14天完全功能版本(.exe文件)

以上是如何在Excel中的单元格中删除重复项的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Excel中的中位公式 - 实际示例Excel中的中位公式 - 实际示例Apr 11, 2025 pm 12:08 PM

本教程解释了如何使用中位功能计算Excel中数值数据中位数。 中位数是中心趋势的关键度量

Google电子表格Countif函数带有公式示例Google电子表格Countif函数带有公式示例Apr 11, 2025 pm 12:03 PM

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

Excel共享工作簿:如何为多个用户共享Excel文件Excel共享工作簿:如何为多个用户共享Excel文件Apr 11, 2025 am 11:58 AM

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

如何将Excel转换为JPG-保存.xls或.xlsx作为图像文件如何将Excel转换为JPG-保存.xls或.xlsx作为图像文件Apr 11, 2025 am 11:31 AM

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

excel名称和命名范围:如何定义和使用公式excel名称和命名范围:如何定义和使用公式Apr 11, 2025 am 11:13 AM

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

标准偏差Excel:功能和公式示例标准偏差Excel:功能和公式示例Apr 11, 2025 am 11:01 AM

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

Excel中的平方根:SQRT功能和其他方式Excel中的平方根:SQRT功能和其他方式Apr 11, 2025 am 10:34 AM

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

Google表基础知识:了解如何使用Google电子表格Google表基础知识:了解如何使用Google电子表格Apr 11, 2025 am 10:23 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

SublimeText3 英文版

SublimeText3 英文版

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

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SecLists

SecLists

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

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。