目录
如何在Excel单元格中删除重复单词
删除单元格内重复项的用户定义函数
如何在工作簿中插入函数代码
RemoveDupeWords函数语法
如何使用RemoveDupeWords函数
一次删除多个单元格中重复文本的VBA宏
如何使用宏
如何在单元格中删除重复字符
删除重复字符的用户定义函数
RemoveDupeChars函数语法
如何使用RemoveDupeChars函数
删除单元格中相同字符的VBA宏
使用Ultimate Suite删除重复子字符串
可下载资源
首页 专题 excel 如何在Excel中的单元格中删除重复项

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

Apr 01, 2025 am 04:26 AM

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

热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

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Excel公式在列或行中找到前3、5、10个值 Excel公式在列或行中找到前3、5、10个值 Apr 01, 2025 am 05:09 AM

本教程演示了如何在数据集中有效地定位顶部N值并使用Excel公式检索关联的数据。 无论您需要最高,最低还是符合特定标准的人,本指南都提供解决方案。 Findi

如何将日历添加到Outlook:共享,Internet日历,ICAL文件 如何将日历添加到Outlook:共享,Internet日历,ICAL文件 Apr 03, 2025 am 09:06 AM

本文介绍了如何在Outlook Desktop应用程序中访问和利用共享日历,包括导入Icalendar文件。 以前,我们介绍了分享您的Outlook日历。 现在,让我们探索如何查看与之共享的日历

如何使用示例使用Flash Fill ofecl 如何使用示例使用Flash Fill ofecl Apr 05, 2025 am 09:15 AM

本教程为Excel的Flash Fill功能提供了综合指南,这是一种可自动化数据输入任务的强大工具。 它涵盖了从定义和位置到高级用法和故障排除的各个方面。 了解Excel的FLA

将下拉列表添加到Outlook电子邮件模板 将下拉列表添加到Outlook电子邮件模板 Apr 01, 2025 am 05:13 AM

本教程向您展示了如何将下拉列表添加到Outlook电子邮件模板中,包括多个选择和数据库总体。 虽然Outlook并未直接支持下拉列表,但本指南提供了创造性的解决方法。 电子邮件模板SAV

Excel中的中位公式 - 实际示例 Excel中的中位公式 - 实际示例 Apr 11, 2025 pm 12:08 PM

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

Excel中的FV功能以计算未来值 Excel中的FV功能以计算未来值 Apr 01, 2025 am 04:57 AM

本教程解释了如何使用Excel的FV功能来确定投资的未来价值,涵盖了定期付款和一次性付款。 有效的财务计划取决于了解投资增长,本指南

如何在Excel单元中删除 /拆分文本和数字 如何在Excel单元中删除 /拆分文本和数字 Apr 01, 2025 am 05:07 AM

本教程展示了使用内置功能和自定义VBA函数在Excel单元格中分离文本和数字的几种方法。 您将在删除文本时学习如何提取数字,隔离文本时丢弃数字

如何将联系人导入Outlook(从CSV和PST文件) 如何将联系人导入Outlook(从CSV和PST文件) Apr 02, 2025 am 09:09 AM

本教程演示了将联系人导入Outlook的两种方法:使用CSV和PST文件,还涵盖了将联系人转移到Outlook Online。 无论您是从外部来源合并数据,都从另一个电子邮件pro迁移

See all articles