计数非空白或N / A - VBA的值

时间:2016-07-21 13:38:54

标签: vba excel-vba excel-formula excel

我已经想出这个公式来计算所有那些非空白的值,但是系统更新了模板,现在除了空白之外它还有“N / A”值。

我该如何改变这个

=COUNTIF('R Plan'!XT2:XT3658,"<>")

测试是否除了空白之外还测试NOT N / A

因为我试过这个

=COUNTIF('R Plan'!XT2:XT3658,"<>" OR "<>N/A")

我收到一条消息,说我们在您的公式上发现错误

2 个答案:

答案 0 :(得分:2)

如果您使用&gt; = XL2007,则可以使用COUNTIFS

=COUNTIFS('R Plan'!XT2:XT3658,"<>",'R Plan'!XT2:XT3658,"<>N/A")

如果你正在使用&lt; = XL2003,那么你可以使用:

=SUM(COUNTIF('R Plan'!XT2:XT3658,"<>"),-COUNTIF('R Plan'!XT2:XT3658,"N/A"))

计算非空的数字,减去那些有N / A的数字。

=SUMPRODUCT(('R Plan'!XT2:XT3658<>"")*('R Plan'!XT2:XT3658<>"N/A"))

答案 1 :(得分:0)

如果您想使用VBA,那么这将适合您,

将其放入单元格并选择范围=COUNTBLANKS(B1,A1:A21)B1作为要计数的值,第二个范围是您想要计算该值发生次数的范围。

添加模块并将此功能粘贴到其中。

Function COUNTBLANKS(r As Range, rng As Range) As Long

   Dim x
   Dim c

     x = rng
        For Each c In x
           If c = r Then
              COUNTBLANKS = COUNTBLANKS + 1
           End If
        Next c


End Function