删除单元格内的重复单词和短语

我的电子表格有一列可以在单元格中有多个单词或短语重复。

这里是一个值的types的例子:

╔════════════════════════╗ ║ Column A ║ ╠════════════════════════╣ ║ Apple ║ ║ Apple Apple ║ ║ Apple Pie ║ ║ Apple Pie Apple Pie ║ ╚════════════════════════╝ 

我正在寻找删除单元格内重复值的最佳方法。 是否有任何已知的VBA代码或Excel可以使用的公式? 它需要识别重复的单词或短语(最多3个单词)电子表格很大,将是一个痛苦去去手动删除它们。

任何想法,解决scheme或方向将是伟大的。

您可以使用反向引用的正则expression式来匹配重复的单词或短语。 模式^(.+)\s*\1$将匹配任何重复的短语和可选的空格。

 Const strText = "Apple Pie Apple Pie" Dim re Set re = CreateObject("VBScript.RegExp") re.Pattern = "^(.+)\s*\1$" If re.Test(strText) Then Debug.Print re.Replace(strText, "$1") End If 

输出:

 Apple Pie 

我能够使用Excel函数来查找和删除单元格中的大部分重复的名称和短语。 希望这可以帮助别人

  =IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))>=2,LEFT(A1,FIND(LEFT(A1,FIND(" ",A1,FIND(" ",A1)+1)-1),A1,2)-2),LEFT(A1,FIND(" "&LEFT(A1,FIND(" ",A1)-1),A1,2)-1))