Excel多条件计数求助:统计教师类别的#N/A或红色单元格数量
统计满足多条件(含单元格颜色)的数量
Excel原生函数无法直接读取单元格填充色,以下两种方案可实现你的需求:
方案1:VBA自定义函数
- 按
Alt + F11打开VBA编辑器,右键左侧工程窗口的工作簿名称→插入→模块,粘贴以下代码:
Function CountTeacherNAOrRed(rngCategory As Range, rngTarget As Range) As Long Dim cellCat As Range, cellTar As Range Dim count As Long: count = 0 ' 校验两个区域行数是否一致 If rngCategory.Rows.Count <> rngTarget.Rows.Count Then CountTeacherNAOrRed = CVErr(xlErrRef) Exit Function End If For Each cellCat In rngCategory Set cellTar = rngTarget.Cells(cellCat.Row - rngCategory.Row + 1) If cellCat.Value = "教师" Then ' 判断目标单元格是否为#N/A,或填充色为默认红色(ColorIndex=3) If IsError(cellTar.Value) Or cellTar.Interior.ColorIndex = 3 Then count = count + 1 End If End If Next CountTeacherNAOrRed = count End Function
- 返回Excel工作表,在空白单元格输入公式:
=CountTeacherNAOrRed(类别列范围, 目标单元格范围),例如=CountTeacherNAOrRed(A2:A100, B2:B100) - 若使用的是自定义红色,先选中该红色填充的单元格,在VBA编辑器的立即窗口输入
?ActiveCell.Interior.ColorIndex获取对应数值,替换代码中的3即可 - 保存工作簿时需选择
.xlsm格式(启用宏的工作簿)
方案2:无宏间接实现
通过条件格式将颜色条件转换为函数可识别的标记:
- 选中目标单元格区域,统一用条件格式标记红色填充:
- 点击「开始」→「条件格式」→「新建规则」→「使用公式确定要设置格式的单元格」,输入
=TRUE,设置填充色为红色(与现有红色填充一致)
- 点击「开始」→「条件格式」→「新建规则」→「使用公式确定要设置格式的单元格」,输入
- 添加辅助列(如C列),在C2单元格输入公式:
=IF(AND(A2="教师", OR(ISNA(B2), CELL("color", B2)=3)), 1, 0)
- 下拉填充辅助列,最后用
=SUM(C:C)统计符合条件的总数
内容的提问来源于stack exchange,提问作者user2205055
相关产品推荐
相关产品推荐

