Excel 计算非空+;没有背景单元格

Excel 计算非空+;没有背景单元格,excel,excel-formula,Excel,Excel Formula,我有一个excel文件,其中只有两列有值(A-订单号,B-一些文本/注释),我需要执行某些计数: 1-计算B中非空单元格的数量->是否已使用COUNTA()进行计数 2-计算以“灰色”作为背景色的单元格数量 最后,我只需要一些非空且没有背景色的单元格。如果没有VBA,这是无法实现的。转到VBA编辑器,添加新模块并将其粘贴到: Function CountClear(rng As Range) As Long Dim r As Range For Each r In rng

我有一个excel文件,其中只有两列有值(A-订单号,B-一些文本/注释),我需要执行某些计数:

1-计算B中非空单元格的数量->是否已使用COUNTA()进行计数

2-计算以“灰色”作为背景色的单元格数量


最后,我只需要一些非空且没有背景色的单元格。

如果没有VBA,这是无法实现的。转到VBA编辑器,添加新模块并将其粘贴到:

Function CountClear(rng As Range) As Long
    Dim r As Range
    For Each r In rng
        If r.Value <> vbNullString And r.Interior.Color = vbWhite Then
            CountClear = CountClear + 1
        End If
    Next r
End Function
功能计数清除(rng作为范围)尽可能长
调光范围
对于rng中的每个r
如果r.Value vbNullString和r.Interior.Color=vbWhite,则
CountClear=CountClear+1
如果结束
下一个r
端函数
然后,您可以像使用普通的
COUNTA
函数一样使用工作表上的公式,只需键入
CountClear(B1:B100)


注意如果在该函数中使用整列引用,您将受到严重影响。因此,如果您只有
B1:B100中的数据,请选择该范围,或者选择一点额外的数据,而不是
B:B

您是如何尝试实现这一点的?你在哪里遇到了问题?@RonRosenfeld,我可以计算非空单元格的数量,使用COUNTA()非常简单,但我不知道如何计算已着色的单元格数量。我已经浏览了几个VBA宏,但它们不是我的情况。您使用VBA,只需在单元格中迭代,查找
Interior
color属性是否为您正在测试的任何灰色。您不能在原生Excel中使用公式,但可以选择适当的格式执行
Find