Excel计数小伙伴并不陌生,在某些应用场景下需要对数据进行非重复值计数。
如下图所示,如何统计每位业务员服务过的客户人数?如表中业务员“张三”虽然有5条服务记录,但其只有两个客户A与C。
方法一 数据透视表
选中数据源,点击“插入数据透视表”,切记勾选“将此数据添加到数据模型(M)”;
之后将字段“业务员”拖动到行区域,“客户”拖动到列区域,这时候字段“客户”是以重复值的形式计数的,右键透视表“客户”列,选择“值字段设置(N)”,计算类型选择“非重复值计数”,完成。
注:一定要记得勾选“将此数据添加到数据模型(M)”,因为正常的数据透视表,在值字段设置中无“非重复值计数”。
这种方法较为简单,只是需要对数据源进行透视表操作,如果数据源不方便透视,万能的Excel公式也是可以搞定的。
这里我们介绍第二种方法,公式法。
方法二 公式法
F2单元格内输入公式:
=SUMPRODUCT(($B$2:$B$14=E2)/COUNTIFS(C$2:C$14,C$2:C$14,$B$2:$B$14,$B$2:$B$14))
别看公式这么长,其实理解起来很容易~
之前介绍过sumproduct函数,乘积和函数,返回相应数组或区域乘积的和,参数之间以逗号或者星号分隔开,不熟悉的小伙伴可以看看之前的文章有介绍过这个函数的用法 ,这里不再赘述。
上面的公式sumproduct一共有两个参数,先看第一个参数【(($B$2:$B$14=E2)*1】,结果如下图所示:
结果很好理解,E2单元格是张三,判断B2:B14区域是否等于张三,等于返回true,不等于返回false,这里之所以为0和1,是因为公式乘了一个1,结果就会返回0或者1,这么做是因为sumproduct函数不支持逻辑值运算(true or false);
参数二【1/COUNTIFS(C$2:C$14,C$2:C$14,$B$2:$B$14,$B$2:$B$14)】的结果如下图所示:
分两步看,countifs多条件计数函数,先计算每个员工服务每个客户的次数,如张三服务客户A一共三次,每个A后面的数字都是3,接着将结果被1除,每个A后面的数字都变成了1/3,这样在乘积和的时候,3个三分之一,刚好等于1(1个客户,去重了),依次类推。
最后一步,将两个数组返回乘积和,最终得到非重复值的计数。
需要注意的是,为了演示过程,上面我将sumproduct的两个参数单独拿出来做结果展示,小伙伴们如果要尝试的话,记得用数组公式,即选中所有单元格,输入公式,同时按下Ctrl+shift+enter三键。
小结
非重复计数,两种方法分享给大家,喜欢的小伙伴欢迎转发关注,定期分享数据小技巧。