仅当 Excel 中有 4 个或更多重复行时,如何删除(或突出显示)重复行?

仅当 Excel 中有 4 个或更多重复行时,如何删除(或突出显示)重复行?

我有一个包含 300 多行数据的 Excel 文档。A 列按人员姓名排序,我需要仅隔离具有以下特征的人员:少于 4工作表中出现的次数。

有没有办法删除所有数字为 4 或以上的姓名?或者,突出显示所有数字为 4 或以上的姓名?

谢谢你!

答案1

假设我们从以下开始:

在此处输入图片描述

我们运行这个简短的宏:

Sub RowKiller101()
  Dim rKill As Range, r As Range, wf As WorksheetFunction
  Dim rBig As Range
  Set rBig = Intersect(Range("A:A"), ActiveSheet.UsedRange)
  Set rKill = Nothing
  Set wf = Application.WorksheetFunction

  For Each r In rBig
    If wf.CountIf(rBig, r.Value) > 3 Then
      If rKill Is Nothing Then
        Set rKill = r
      Else
        Set rKill = Union(rKill, r)
      End If
    End If
  Next r

  If rKill Is Nothing Then Exit Sub
rKill.EntireRow.Delete
End Sub

我们将得到:

在此处输入图片描述

答案2

对于非 VBA 解决方案:

在 B 列中输入类似的公式=countif($A:$A,$A1),您的电子表格现在将如下所示:

    A    B  
1  Joe   3  
2  Joe   3  
3  Joe   3  
4  Amy   5  
5  Amy   5  
6  Amy   5  
7  Amy   5
8  Amy   5

然后选择A1,转到条件格式(自定义规则)并输入公式=B1>=4。然后将规则应用于 A 列中所需的内容。缺少锚点$意味着规则将随应用的单元格一起移动。

答案3

Gary 的学生:VBA 解决方案,删除除 <4 人群之外的所有内容
selwyth:公式解决方案,仅过滤出 <4 人群
此答案:条件格式解决方案,仅突出显示 <4 人群

(您也可以参考Office 支持文章关于在条件格式中使用公式,事实证明,它使用COUNTIF它作为示例。)

  1. 选择数据范围(在示例中,我选择了所有列A:A
  2. Home功能区上,单击Conditional Formatting,然后New Rule...
  3. 选择Use a formula to determine which cells to format
  4. 输入公式=COUNTIF($A:$A,$A1)<4
    A。将 更改$A:$A为您要在其中搜索重复项的任何范围。例如,它可以是$G$12:$G$48。这$很重要,因为它使其成为绝对引用不会因单元格不同而改变。B
    .$A1第一的选定范围内的单元格。请注意,这里只有一个,$因为我们只希望列是绝对的。我们希望行号(1在本例中)相对于当前单元格。C
    . 结果是,的条件格式A1将使用公式=COUNTIF($A:$A,$A1)<4,但对于A2,它将使用公式=COUNTIF($A:$A,$A2)<4。这就是控制绝对引用与相对引用($或否$)为您所做的。
  5. 单击Format...按钮并选择您喜欢的任何格式。在本例中,我选择用黄色背景突出显示单元格。
  6. 单击OK关闭条件格式窗口并查看结果

步骤 1-5 的屏幕截图

请注意,由于我这样做的方式,所有空白行也会突出显示。如果这对您不起作用,有几种方法可以修复它。我推荐选项 1,因为它是一种简单的方法,可以让您在列表增长时保持同步。

  1. 将步骤 4 中使用的公式更改为=AND($A1<>"",COUNTIF($A:$A,$A1)<4)
  2. 不要像在步骤 1 中那样选择所有列A:A,而是只选择数据范围。
  3. 创建条件格式后,返回Conditional Formatting Rules Manager(主页功能区 > 条件格式 > 管理规则...)并将字段Applies to从更改=$A:$A为特定内容,例如=$A$1:$A$19。这与使用选项 2 的结果相同,但它允许您事后更改它。

相关内容