count函数 python sql count函数不会统计空值_count函数 python sql


在Excel官方说明中,有关COUNT一系列的函数总共有5个。因为简单实用,所以在日常工作中,我们经常会用到。

大多时候用起来都很顺手,但偶尔会在细枝末节之处,遇到些小麻烦,无从解决。

比如这位来自网友的困扰:

EXCEL中COUNTIF总是算出空白单元格加上不是零的个数,怎样才能算出一列不为零的个数?


count函数 python sql count函数不会统计空值_count函数 python sql_02


网友的计算公式为:COUNTIF(C3:C9,"<>0")=5


count函数 python sql count函数不会统计空值_count函数_03


但是根据肉眼观察,公式结果是错误的,因为只有4类赠品数量大于零,结果应该为4。


count函数 python sql count函数不会统计空值_数据_04


是用错公式了吗?

并没有。

错误不在于公式的用法,而在于COUNTIF在进行条件筛选时,并没有将单元格C6的空值,作为0值进行判断。如果将单元格C6中的空值,改为0值,那么结果就是4。

为什么COUNTIF无法将空值识别为0?

在系统中,空值表示什么也没有,没有文本、没有数字、没有标点、没有公式,等等。

而0值,虽然通常理解为什么也没有,但确实是一个数字,因这一点就可以将其区分开了。


count函数 python sql count函数不会统计空值_count函数_05


就像两张白纸,一张什么也不写即是空,另一张写数字0即非空。

回归到案例中,如果不改变数据表的内容,怎样才能得出正确结果?

两个思路:

1. 求出全部不为0的个数,减掉空值的个数

2. 求出全部非空值的个数,减掉0值的个数

下面就两个思路分别说明:

  • 思路一:求出全部不为0的个数,减掉空值的个数用C列黄色格子数量减掉绿色格子数量即所得。


count函数 python sql count函数不会统计空值_数据_06


根据案例中网友的公式,已经实现了第一步,求出全部不为0的个数。

那么如何求出空值的个数?

这里要引入一个函数COUNTBLANK()


count函数 python sql count函数不会统计空值_count函数_07


根据EXCEL官方函数说明,COUNTBALNK不但可以统计空单元格个数,也可以统计空文本。


count函数 python sql count函数不会统计空值_数据_08


那么与COUNTIF组合的公式为:

COUNTIF(C3:C9,"<>0")-COUNTBLANK(C3:C9)=4

  • 思路二:求出全部非空值的个数,减掉0值的个数


count函数 python sql count函数不会统计空值_count函数 python sql_09


用黄色单元格个数减掉绿色单元格个数。

观察到黄色单元格等于该列除了空值以外的所有单元格个数。由于案例中涉及计算的数据为数字,根据EXCEL官方函数说明,使用函数COUNT或COUNTA均可进行统计。


count函数 python sql count函数不会统计空值_count函数_10


表哥Tips:

如果案例中不但包含数字,还包括文本、公式等等数据形式,则只可使用COUNT进行统计。

接着,使用COUNTIF统计绿色单元格的数量。网友公式使用COUNTIF统计非0个数,则改为相反的条件即可。

组合公式为:

COUNTA(C3:C9)-COUNTIF(C3:C9,0)=4

以上,我们借助一个案例,讲解了全部与COUNT有关的函数。

若今后使用时,遇到了难题,只要回顾上面的案例,就可以迎刃而解了。