2017-04-20 172 views
-1

我正在计算公式值。如果公式返回一个空白,它不应该计算它,如果公式传回一个值,则对其进行计数。如何才能做到这一点?计算公式值

细胞N8包含=SUM(5,2)

细胞N9包含2

细胞N10包含=""

细胞N11包含=SUM(9,9)

我的公式来计算给出的值为4的细胞:=COUNTIF(N8:N11,"<>"&"")

给出的值应该是3,因为N10包含一个没有任何内容的传回公式,但是,它正在计数,因为它是一个公式。我知道你可以使用像?*这样的通配符来不计算公式,但那样会打败我的目的。我怎么能解决这个问题?

+0

使用'COUNTA(N8:N11)'代替。 [请参阅此处了解有关此公式的更多信息](https://support.office.com/zh-cn/article/COUNTA-function-7dc98875-d5c1-46f1-9a82-53f3219e2509)请注意,如果您的'N10'确实是一个有'=“”'的公式。如果'N10'的值是完全空的,那么它将正常工作。 – JNevill

+0

@JNevill N8-N11中的公式将返回一个数字或空字符串,如'=“”'。 – Brad

+0

也许然后:'= COUNTA(N8:N11) - COUNTIF(N8:N11,“”)这将计算任何填充的单元格(包括不返回任何公式的单元格)并减去任何空单元格(公式不返回任何内容)。 – JNevill

回答

1

您可以使用SUMPRODUCT完成此操作。您不能使用<>“”,因为“”没有其他值的数值小于或大于。因为我们可以测试“”=“”,所以我们返回true,值为1.然后我们只需要这些值在数组中的倒数,所以1-让我们在那里,SUMPRODUCT做到了休息。

=SUMPRODUCT(1-(N8:N11="")) 

enter image description here

+0

对于'=“”'不是空白的解决方法的好答案。为什么'1 - ..'虽然? –

+1

因为我们希望空白为零,而'不空白'为1.这个语句对于空白(相当于1)返回true,对于'非空白'(相当于0)则为false,所以1-将给出我们与数组的每个值相反。 –