如何统计具有特定单元格格式且值为0的单元格数量
实现方法
Excel 内置的工作表函数无法直接识别单元格的自定义格式规则,因此可以通过两种方案完成统计:
方案1:自定义VBA函数(可复用,适合频繁统计同类需求)
- 按
Alt+F11快捷键打开VBA编辑器,依次点击「插入」→「模块」 - 在弹出的模块编辑窗口中粘贴如下代码:
Function CountStarFormat(rng As Range) As Long Dim cell As Range For Each cell In rng ' 匹配零值显示为星号的自定义格式,且单元格存储值为0 If cell.NumberFormat = ";;*;" And cell.Value = 0 Then CountStarFormat = CountStarFormat + 1 End If Next cell End Function
- 回到Excel工作表界面,在任意空白单元格输入公式
=CountStarFormat(A1:A10),即可得到结果,你给出的场景中返回值为3。
如果你使用的零值转星号的自定义格式和上述代码判断的
;;*;不一致,可以右键已经设置好格式的单元格,选择「设置单元格格式」→「数字」→「自定义」,复制实际的格式代码,替换代码判断条件中的格式字符串即可。
方案2:查找功能(无需启用宏,适合临时统计)
- 选中A1:A10单元格区域,按下
Ctrl+F打开查找对话框 - 点击「选项」按钮展开高级设置,点击「格式」右侧的下拉箭头,选择「从单元格选择格式」,点击任意已经设置好零值显示星号的单元格
- 点击「查找全部」,对话框底部会直接显示匹配到的单元格数量,当前场景下匹配结果为3。
内容的提问来源于stack exchange,提问作者Fighter Jet
相关产品推荐
相关产品推荐

