【问题标题】:Excel: I want to find cells that have duplicate text WITHIN the cell itselfExcel:我想在单元格本身中查找具有重复文本的单元格
【发布时间】:2016-10-21 19:34:07
【问题描述】:

我知道如何使用条件格式查找重复的单元格,但这是比较两个或更多单元格之间的文本。

我需要恢复每个单元格中包含重复文本的单元格。

例子:

-allstar company allstar co
-best products inc
-chemical corporation chemical corp
-dumont petro
-EPT corp E P T corp

这里有 5 个带有文本的单元格。单元格 1、3 和 5 有重复的文本,应带回或突出显示。

我不知道 VBA,所以如果可以避免,那将是最好的。

谢谢大家

【问题讨论】:

  • 我们是否可以安全地假设重复项将由空格分隔?也就是说allstar company all star company应该只去掉“公司”吧?所以在你的例子中,最后一个,我们知道它是重复的,因为corpnot EPT,因为它只出现一次。你能看出哪里可能出现问题吗?会突出显示microsoft corp apple corp,因为“corp”在那里两次?也许您在某处可以比较这些公司的“主要列表”?
  • 或者如果空间是一个合理的分割假设,你可以利用文本到列和一些查找函数的组合?动态地做到这一点并不容易。
  • 是的,中间有一个空格

标签: excel duplicates


【解决方案1】:

因此,假设您要查找整个单词,我们可以用空格分隔它们。我知道您想避免使用 VBA,但这是我知道如何以任何自动化方式执行此操作的唯一方法。所以,如果你在你的电子表格中插入一个模块,你可以使用我在这里写的这个函数,然后从你的单元格中调用它。

Option Explicit
Public Function DuplicateWordCheck(text As String) As Boolean
    Dim textArray As Variant, i As Integer, j As Integer
    DuplicateWordCheck = False
    textArray = Split(text, " ")
    For i = LBound(textArray) To UBound(textArray)
        For j = i + 1 To UBound(textArray)
            If textArray(i) = textArray(j) Then
                DuplicateWordCheck = True
                Exit Function
            End If
        Next
    Next
End Function

因此,如果您的示例从单元格 A1 开始,则在单元格 B1 中输入公式 =DuplicateWordCheck(A1)

【讨论】:

  • 对不起,我没用过VBA
猜你喜欢
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 2021-12-26
  • 2021-12-09
相关资源
最近更新 更多