You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中用Count函数统计指定列红色填充单元格数量

统计Excel中手动填充红色的离职员工数量

因为你是手动给离职员工的A列单元格填充红色(非条件格式),Excel内置函数无法直接识别单元格填充颜色,需要通过自定义函数(UDF)或VBA宏来实现统计:

方法一:自定义函数(实时更新统计)

  1. 按Alt + F11打开VBA编辑器
  2. 右键点击左侧项目窗口中的当前工作簿 → 插入 → 模块
  3. 将以下代码粘贴到模块窗口中:
Function CountRedCells(rng As Range) As Long
    Dim cell As Range
    Dim count As Long
    count = 0
    ' 遍历指定范围,匹配默认红色(ColorIndex=3,适配手动填充的标准红色)
    For Each cell In rng
        If cell.Interior.ColorIndex = 3 Then
            count = count + 1
        End If
    Next cell
    CountRedCells = count
End Function
  1. 返回Excel表格,在顶部的目标单元格中输入公式:
    =CountRedCells(A2:A1000)
    (将A2:A1000替换为你实际的员工数据范围,避开表头行;如果要统计整列,用=CountRedCells(A:A),但推荐指定具体范围提升效率)
  2. 后续手动给A列单元格填充红色后,按F9即可刷新统计结果

方法二:VBA宏(一次性统计)

如果不需要实时更新,只想一次性统计当前红色单元格数量:

  1. 同样按Alt + F11打开VBA编辑器,插入模块
  2. 粘贴以下代码:
Sub CountRedEmployees()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim redCount As Long
    Dim i As Long
    
    ' 指定要统计的工作表,替换为你的表名,比如"2024员工绩效"
    Set ws = ThisWorkbook.Sheets("员工表")
    ' 获取A列最后一行数据的行号
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    redCount = 0
    
    ' 从第2行开始遍历(假设第1行是表头)
    For i = 2 To lastRow
        If ws.Cells(i, "A").Interior.ColorIndex = 3 Then
            redCount = redCount + 1
        End If
    Next i
    
    ' 将统计结果写入B1单元格,可自行修改目标位置
    ws.Range("B1").Value = "离职员工数量:" & redCount
End Sub
  1. 按F5运行宏,统计结果会自动写入指定单元格

注意事项

  • 如果你的红色不是Excel默认红色,可先选中一个红色单元格,在VBA编辑器的立即窗口中输入?ActiveCell.Interior.ColorIndex,回车后得到对应的ColorIndex,替换代码中的3即可
  • 自定义函数在Excel保存后,下次打开需要启用宏才能正常使用
  • 若后续改用条件格式标记离职员工,可直接用COUNTIF结合条件格式的规则,无需VBA

内容的提问来源于stack exchange,提问作者Abcderia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:32:11