咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

大家好,我是永不止步的老牛。

Excel有很多功能强大的函数,如果函数间能组合使用,那就是强强联手,今天我们介绍第7组强强联手“SUMPRODUCT+FREQUENCY+MATCH”组合,统计不重复项个数。

上一篇讲的SUMPRODUCT+COUNTIF统计不重复项个数适合少量数据,SUMPRODUCT+FREQUENCY+MATCH组合,统计不重复项个数适合数据量大的情况。

FREQUENCY+MATCH组合可以实现区域内计数,SUMPRODUCT函数可以对一个数组求和,这三个函数的具体用法可以参考我的文章。


Excel区间频率统计函数FREQUENCY

如何成为Excel大神—Match函数

用下面的例子展示一下如何使用这三个函数的组合,我们需要统计的是共有多少个客户购买了商品。

先看统计结果的公式是:

=SUMPRODUCT(--(FREQUENCY(MATCH(E2:E21,E2:E21,0),ROW(1:20))>0))

我们分步解析一下如何得出这个公式的:

1、使用MATCH函数查找客户出现的第一次的位置

为了好理解,我们临时加入辅助列,在F2输入公式MATCH(E2:E21,E2:E21,0),往下填充,我们就得到每名客户第一次出现的位置,就是说不管客户购买了多少次,只记录第一次出现的位置。

我们看一下这一列数据,每个客户对应的数字是唯一的。

2、使用FREQUENCY函数按区间统计出来次数

这里FREQUENCY的第2个参数用了用了ROW(1:20),就是自动生成了1,2,3...19,20这样的区间,FREQUENCY(MATCH(E2:E21,E2:E21,0),ROW(1:20))返回了数组{4;5;4;5;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0},数字表示客户购买商品的次数,而我们需要的是每个客户不论购买了多少次商品,只需要统计出来一次,所以这个时候我们需要对返回的数组进行一次转换。

我们首先将数组转换成TRUE和FALSE,再将TRUE和FALSE转换成1和0,因为TRUE等于1,FALSE等于0,所以可以直接用--转换,而只要判断数组{4;5;4;5;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0}是否大于0,就能将数组转换成TRUE和FALSE。

FREQUENCY(MATCH(E2:E21,E2:E21,0),ROW(1:20))>0的结果是:{TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

--(FREQUENCY(MATCH(E2:E21,E2:E21,0),ROW(1:20))>0)的结果是:

{1;1;1;1;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0}

3、用SUMPRODUCT把它们加起来

现在就简单了,只要用SUMPRODUCT函数把第2步统计出来的数字加起来就是我们想要的结果,按CTRL+SHIFT+ENTER结束。

=SUMPRODUCT(--(FREQUENCY(MATCH(E2:E21,E2:E21,0),ROW(1:20))>0))

Excel函数组合持续更新中,如果对你有帮助,请关注点赞支持一下。