EXCEL不重复统计次数「思路详解」
2024-06-27 0
今天我们就来讨论一下不重复计数次数的问题,并以例子来进行案例分析。
如图1所示
当我看到这个问题和要求时,它基本上是要求我找到第一次出现的非空单元格的总和?
总体思路就是将第一个非空单元格相加,最后得到统计的不重复人数。
但有两个问题必须考虑
1、如何排除数据范围内的空白单元格,只统计非空单元格?
2重复细胞如何计数一次?
问题解决了
在思考如何避免白细胞的时候,本质就是不让白细胞参与次数求和,也就是让白细胞的值达到0。
当我们这样想的时候,我们就想到了逻辑判断,当逻辑值TURE和BALSE参与计算时,可以认为是1和0,所以这里用了一个公式。
$C$2:$C$18""
您可以将所有非空单元格设置为TRUE,将所有空白单元格设置为FALSE。
那么一个问题就解决了。
最后会形成一个数组
{真;真;真;真;真;假;假;假;假;假;假;假;假;真;真;真;假}
问题二的解决方案
如何让有重复数据的单元格最后一个值为1。这里我想到了分数形式比如一个数字重复了5次,只需要用1除以总出现次数,最后加上向上得到1,1/51/51/51/51/51。
一旦问题解决了,所有的非空单元格都只返回一个TRUE值,即1,就可以满足这个思路的要求。
要统计某个值出现的总次数,必须引入COUNTIF函数,该函数统计某个值在某个区域出现的次数。
例如,A1'1'、A2'2'、A3'2',则COUNTIF(A1:A3,A2),返回值为2。
这个EXCEL有一个特殊的判断,EXCEL只会根据前15位进行判断,以表1的数据为例,如果输入公式:
COUNTIF($C$2:$C$18,C2)
返回值为8,而不是1,因为EXCEL将其视为数值时,只会取前15位进行判断,如图2
这时需要在参数中添加通配符“*”来执行操作。
这样公式就出来了
COUNTIF($C$2:$C$18,C2'*')
表示此时单元格C2中的文本与查询匹配的次数。
如图3所示
因为它对应的是问题1中形成的TRUE和BALSE数组,所以公式为
COUNTIF($C$2:$C$18,$C$2:$C$18'*')
这个公式会将C2:C18中每个单元格的值组成一系列的步骤,相当于一个数组。
{1;1;3;3;3;8;8;8;8;8;8;2;2;1;8}
最后,得出最终的公式
SUM(($C$2:$C$18'')/COUNTIF($C$2:$C$18,$C$2:$C$18'*'))
由于是数组求和,所以需要CtrlShiftEnter
如果您需要此题的练习材料,请回答005
本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。