对于以下表格:
A
1 0
2 0 as formula result
3 0
4 0 as formula result
5 0 as formula result
6 blank
7 0
我如何仅计算以0
作为VALUES输入的细胞而不计算以0
作为其配方结果的细胞,即
COUNTIF(A1:A7,0 AS VALUE)
= 3
我尝试过以下方法:
COUNTIF(A1:A7,0)
= 6
COUNTIF(A1:A7,"0")
= 6
不确定Excel,但VBA具有此功能。所以你可以定义一个小的UDF来实现这个目的:
Function HasFormula(r as Range) As Boolean
HasForumla = r.HasFormula
End Function
现在,您可以使用IF和COUNT调用此函数来获取结果。
COUNTIF(A1:A7; 0)这对我有用
以下VBA定义的函数将计算范围内具有零的单元格数。
Function CountZeros(rng As Range) As Long
Dim cell As Range
CountZeros = 0
For Each cell In rng
If (cell = 0) And (IsEmpty(cell) = False) And Not (HasFormula(cell)) Then
CountZeros = CountZeros + 1
End If
Next
End Function
用这个公式填充单元格B1
:
=IF(AND(A1=0,ISFORMULA(A1)=FALSE),1,0)
将此公式复制到单元格B2:B7
和细胞B1:B7
,你得到你想要的。