EXCEL不重复统计次数「思路详解」

2024-06-27 46

今天我们就来讨论一下不重复计数次数的问题,并以例子来进行案例分析。

如图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天内对其进行处理。

相关推荐