excel函数:快速进行非重复计数
快速进行非重复计数 实用,但是不是很理解,谷子也没有真正完明白
我们的问题:求下表各区域的业务机构数和经营品种数。
利用透视表新选项“将此数据添加到数据模型”我们可以比较方便地完成上面的问题,只是存在限制:
(1)至少是Excel 2013版本才行。
(2)若套用模板进行统计,可能还需要搭配vlookup函数才行。
难道就没有完美的解决方法了吗?肯定有!这里分享两个函数解决法。
第一种:COUNTIFS函数搭配辅助列
只要借助辅助列,我们使用COUNTIFS函数就能很快地得到统计结果。
第1步:用公式右拉下拉添加两个辅助列,得到每个业务机构首次出现的“1”和每个商品编码首次出现的“1”。公式为:
=COUNTIFS(B$1:B2,B2,$A$1:$A2,$A2)
公式解释:
以第一个辅助列来说明公式的作用。
为了便于大家查看效果,对数据源按照区域和业务机构进行了排序,相同的机构都在一起。公式的结果就是依次标注同一区域同一业务机构是第几次出现,联系下一步的操作,其核心作用就是把业务机构首次出现标注为1。这样,有多少个1,就有多少个机构。
可能有的朋友还是第一次使用COUNTIFS,这个函数很简单,就是按照多个条件去计数,格式为COUNTIFS(数据区域1,条件1,数据区域2,条件2,……),表示只有多个条件同时满足才会计数。
譬如,在本例中,D2单元格统计的是在A1:B2区域中并排出现“东北区域(A2)”和“1001(B2)”的次数,结果是1次;D4单元格统计的是在A1:B4区域中并排出现“东北区域(A4)”和“1001 (B4)”的次数,结果是3次;D9单元格统计的是A1:B9区域中并排出现“东北区域(A9)”和“1022(B9)”的次数,结果是1次……
同理,第二个辅助列就是根据区域和商品编码来统计,当一个商品在同一个区域首次出现时,结果为1:
第2步:在H2单元格中输入公式,然后右拉下拉分别统计D列和E列中符合条件的1的个数,得到最后结果。公式为:=COUNTIFS($A:$A,$G2,D:D,1)
这个公式要比辅助列那里好理解的多。譬如H2单元格中的公式就是统计A列和D列中并排出现“东北区域”和“1”的次数。
整个方法只用了一个COUNTIFS函数,比较适合函数小白的记忆使用。但是对于初学者而言,如果不清楚公式中$符号的作用,理解起来就困难。$符号表示绝对引用。
一个问题:如果单条件统计不重复数,也就是不分区域分别求业务机构数和经营品种数,上述方法中的公式该怎么调整?
第二种:SUMPRODUCT和COUNTIFS组合公式
第一种方法有辅助列,喜欢极致的伙伴肯定不喜欢,那就来个不用辅助列的公式。
=SUMPRODUCT(($A$2:$A$36=$G2)/COUNTIFS($A$2:$A$36,$A$2:$A$36,B$2:B$36,B$2:B$36))
这是一个比较常用的“套路”公式,不用辅助列,满足追求“公式到死”的极致伙伴的需求。当数据量不是很大的时候,非常的爽,一步就完成统计。