KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何删除 Excel 单元格字符串中的重复字符或重复单词?

作者Xiaoyang修改日期

在 Excel 中处理数据时,您可能会遇到单元格中包含重复字符或重复单词的情况。例如,用户输入的数据、导出的日志或产品代码中,常常会出现字符或单词多次重复的现象。清除这些重复内容,有助于清理数据以供进一步分析、提升可读性,或为其他系统准备好规范的字符串。

本指南为您介绍了多种在单个单元格中删除重复字符或重复单词的实用方法。您可以根据所用 Excel 版本、自身技术熟练度,以及数据中使用的分隔符类型(如空格或标点符号),灵活选择最适合的解决方案——无论您的数据包含的是单个字符,还是由分隔符分隔的完整单词,都能在这里找到高效应对之法。


蓝色右向箭头气泡 使用 Excel 公式(动态数组)删除重复字符或单词

如果您使用的是 Microsoft 365 或 Excel 2021 及更高版本,即可借助动态数组公式,无需 VBA 便能轻松从单元格中删除重复字符或单词。TEXTSPLITUNIQUETEXTJOINMID 等函数可在工作表中轻松拆分、去重并重新组合字符串。

如果您不想使用宏、追求高效解决方案,且熟悉 Excel 的最新公式功能,此方法尤为推荐。

优点:源数据一旦发生变化,公式即刻自动重新计算,无需启用宏或特殊权限,且可轻松应用于大型区域。
缺点:仅适用于 Microsoft 365 专属 Excel、Excel 2021 或更新版本(不支持 Excel 2019 及更早版本)。

要删除单元格内的重复字符(例如,“banana” → “ban”):

1. 选择要显示结果的单元格(例如,源单元格 )A2 旁边的 B2),并输入以下公式:

=TEXTJOIN("",,UNIQUE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)))

该公式通过 MIDA2 的内容拆分为单个字符,借助 ROW(INDIRECT(...))生成连续位置,利用 UNIQUE 提取唯一字符,再通过 TEXTJOIN 将其重新组合为文本字符串。

2. 按 EnterA2 中将显示删除重复字符后保留原始顺序的字符串。要对其他行执行相同操作,请使用填充柄向下复制公式。

注意:如果看到 #NAME?错误,说明您的 Excel 版本可能不支持这些函数。请确认您使用的是 Microsoft 365 专属 Excel、Excel 2021 或更高版本。

故障排除:有时,多余的空格或标点符号可能会影响结果。如果您的数据格式不一致,可考虑使用 TRIMTEXTSPLIT 函数,并添加额外参数以优化处理效果。

使用动态数组公式,不仅能让工作流程更高效、数据实时更新,还能轻松应对简单到复杂的字符串模式清理任务。


蓝色右向箭头气泡使用自定义函数删除文本字符串中的重复字符

如果您有一组包含文本字符串的单元格,并希望从每个单元格中删除重复字符(例如,将“aabbcc”转换为“abc”,如下图所示),自定义 VBA 函数可助您高效完成此操作,尤其适用于您的 Excel 版本不支持高级数组公式的情况。

从每个单元格中删除重复字符

1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口

2. 点击插入> 模块,并将以下代码粘贴到模块窗口中。为避免与其他宏冲突,请务必将代码添加到模块开头附近。

VBA 代码:删除单元格中文本字符串的重复字符

Function RemoveDupes1(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupes1 = xOutValue
End Function

3. 在保存并关闭 VBA 代码窗口后,返回工作表。在原文本旁边的空白单元格中输入公式 =removedupes 1(A2)(此处 )A2 为包含待处理字符串的单元格)。如下图所示:

在第一个单元格中输入公式

4. 按 Enter 计算结果,然后向下拖动填充柄,将函数应用到该列所有其他相关单元格,即可立即看到每个对应单元格中的重复字符均已删除。

公式填充至下方单元格

提示:字符的出现顺序将被保留——该函数会保留每个字符的首次出现,并删除单元格中后续的重复项。

注意事项:通过 VBA 添加的自定义函数(UDF)仅在包含该代码的工作簿中可用。移动或共享工作簿时,请确保宏已包含在目标文件中或重新插入。此外,必须启用宏才能运行此代码。

kutools for excel AI 的截图

借助 KUTOOLS AI 解锁 Excel 的神奇功能

  • 智能执行:只需输入简单命令,即可执行单元格操作、分析数据并创建图表。
  • 自定义公式:生成量身定制的公式,助您优化工作流程!
  • VBA 编码:轻松编写并运行 VBA 代码。
  • 公式解析:轻松掌握复杂公式,一目了然!
  • 文本翻译:轻松打破电子表格中的语言障碍!
借助 AI 驱动的工具提升您的 Excel 能力。立即下载,体验前所未有的高效!

蓝色右向箭头气泡使用自定义函数删除由标点符号分隔的重复单词

当您的数据由逗号、分号或其他标点符号分隔的单词组成时,您可能希望删除每个单元格中的重复单词,仅保留每个单词的首次出现。这一操作在处理标签列表、分类或地址时尤为实用。借助自定义 VBA 函数,您可以高效完成此任务。

1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口

2. 点击插入> 模块,并将以下代码粘贴到模块窗口中。如有可能,请将代码置于新模块开头,确保清晰易读。

VBA 代码:删除单元格中由标点符号分隔的重复单词

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby Extendoffice
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
    End With
End Function

3. 保存并关闭 VBA 窗口后,返回工作表。在紧邻数据的空白列中输入以下公式:=RemoveDupes 2(A2,",")。其中,A2 为目标单元格,“,“为分隔符。若您的数据由其他符号(如“;”或空格)分隔,只需将逗号替换为对应字符即可。

在第一个单元格中输入公式

4. 按 Enter 确认,然后根据需要向下拖动公式以填充下方其他单元格。完成后,所有重复单词将从各自单元格中删除,仅保留原始顺序的唯一单词。结果如下所示:

公式填充至下方单元格

注意:在公式中,您可以根据实际数据情况调整单元格引用和标点分隔符。若使用了多个字符或混合类型的分隔符(如空格与逗号组合),则可能需要进一步调整代码。

提示:与所有 VBA 宏一样,请务必先备份工作簿,并启用宏以使用此功能。


最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱