【问题标题】:Comparing two sets of cells within a row and highlighting same-row duplicates in Excel比较一行中的两组单元格并突出显示 Excel 中的同一行重复项
【发布时间】:2015-09-11 10:42:12
【问题描述】:

我尝试在 Excel 中完成一项有些具体的任务,这似乎超出了我的能力范围。我有一个数据集,每行/观察有两个五个单词的列表,就像这个例子:

我希望完成的是突出显示单行中两个 5 字列表中的所有单词。这两个五个单词列表之间的重叠量从一行到下一行不同。而且我不关心识别不同行中的任何重复条目。也就是说,如果可以创建一个宏来提供这个功能,那就太好了:

我在这个网站上搜索了很多,并使用谷歌来弄清楚如何创建一个宏来做到这一点。我发现了许多类似的宏,但我发现的每个宏都旨在识别两个整张纸、两整列或类似的东西之间的所有重复项,这与我的不太匹配试图做。根据我能找到的宏,我觉得应该可以做我想做的事,但我对 Visual Basic 的了解不够,无法编辑我找到的宏以满足我的需要。

如果可以编写一个宏来执行此操作,它会为我节省很多时间,因为否则我正在考虑手动对我拥有的两个当前数据集(每个数据集都有 150- 200 次观察),另外我计划在未来收集需要同样程序的数据。除此之外,任何能够在这里帮助我的宏都可以帮助有类似需求的其他人。

提前感谢您提供的任何帮助!

【问题讨论】:

  • 你看过使用条件格式吗?

标签: excel vba duplicate-data


【解决方案1】:

尝试条件格式。

选择“表 2”(例如 I2:Mn,其中 n 是最后一行),其中 I2(左上角)是活动单元格。然后使用这个公式:

=OR(I2=$C2:$G2)

【讨论】:

  • 这很好——它完全实现了我想要的。非常感谢您的帮助,罗恩!
【解决方案2】:

我认为使用Conditional Formatting 可能是一个更简单的解决方案,但使用 VBA 的一种方法如下:

Sub HighlightDuplicates()
    Dim masterList(), highlightList(), rw As Long, col As Long

    masterList = Range("C1:G150")
    highlightList = Range("I1:M150")

    For rw = 1 To UBound(masterList, 1)
       For col = 1 To UBound(masterList, 2)
            If highlightList(rw, col) = masterList(rw, col) Then
                Cells(rw, col).Offset(0, 8).Interior.Color = vbRed
            End If
        Next col
    Next rw
End Sub

在这里,我们将两个列表作为数组读取,然后遍历它们以检查匹配项。

Offset(0, 8) 有点神奇(哎呀!),它会根据您的布局突出显示正确的单元格。

【讨论】:

  • 感谢您的帮助,亚历克斯!条件格式确实是一个简单的解决方案。出于某种原因,我无法让这个 VBA 脚本达到相同的效果:当我运行它时,结果是:i.imgur.com/Lk5CLk0.png。这很可能是我做错了,但看到我能够使用条件格式实现我的目标,这没什么大不了的。再次感谢!
  • 好东西。我认为你有一个很棒的最简单的解决方案。
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
相关资源
最近更新 更多