【百度不了的问题】在上千条数据中,一眼找出各组销量最高的产品?
编按:哈喽,大家好!在分析销售数据时,我们经常需要统计出哪种产品销量最高卖得最好,哪位员工销售业绩最好等数据。通过这些数据,能帮助我们合理制定销售方案。那如何才能快速的统计呢?来看看下面这篇文章吧!
数据分析是当代企业非常重视的一个内容,尤其对于销售企业来说更加重要,通常对于销售数据来说,需要分析什么产品卖得最好,也要分析哪些员工卖得最好。更加细致一点分析可能会需要统计出某个员工卖得最好的是什么产品,从而根据结论制定非常有针对性的实施策略。
今天我们就通过一个简单的示例来说明如何统计某人卖得最好的是什么产品,数据源如图所示:
前三列是统计了三名营业员一周的销售业绩,现在要了解每个人卖得最多的是什么产品。
如果真的只有这么多数据,相信没人觉得这是个问题,按姓名筛选,一眼就能看出卖得最多的是什么,然后复制粘贴就完事。
例如筛选出张三的,一眼就能看出冰箱卖得最好。
但如果你面对的是几十个人,上百甚至是上千条数据呢?
这时候就不得不考虑是否有更高效的解决方案了,对于这类比较固定的统计,老菜鸟还是选择用公式,比如下面这个公式就能一次搞定:
公式为:
=LOOKUP(1,0/(($A$2:$A$12=E2)*($C$2:$C$12=MAX(($A$2:$A$12=E2)*$C$2:$C$12))),$B$2:$B$12)
看起来似乎有点长,但是先不要怕,看完下面的分析以后,你一定也能掌握这个公式。
要解决这个问题需要两步走,第一步要找出每个人的最高销量。
老菜鸟比较喜欢用MAX解决这类问题,公式也简单易记:
=MAX(($A$2:$A$12=E2)*$C$2:$C$12)
要注意的是,这个公式需要按Ctrl+Shift+回车键结束公式,也就是说这是一个数组公式,会自动出现一组大括号。
这一步主要用到了逻辑值,($A$2:$A$12=E2)的意思很好理解,就是判断A列中有哪些数据和需要统计的姓名相同,结果得到了一组逻辑值。
结果为TRUE的就是符合条件的。
用这一组逻辑值和C列对应的销量相乘,得到了一组这样的数字。
A列中姓名为张三的数据,就返回其对应的销售数量,不是张三的都显示为零。
这是因为逻辑值TRUE在参与计算时相当于1,而FALSE相当于0。
($A$2:$A$12=E2)*$C$2:$C$12这部分的作用就是把张三的销量都找出来,再用MAX得到其中的最大值,就是销量最高的数字。
有了最大销量,第二步就是按照姓名和销量两个条件来提取商品名称了,这其实又变成了一个多条件匹配的问题。
同样有很多种解法,老菜鸟喜欢LOOKUP的套路,这在之前的教程中都详细讲过,再来复习一下LOOKUP多条件匹配的套路:
=LOOKUP(1,0/((条件区域1=条件1)* (条件区域2=条件2)),结果区域)
对应到本例中,第一组条件是姓名在A列,第二组条件是销量在C列,结果是商品名称在B列,因此公式就是:
=LOOKUP(1,0/(($A$2:$A$12=E2)*($C$2:$C$12=F2)),$B$2:$B$12)
这里的F列就相当于一个辅助列,如果不想要辅助列,那可以用MAX这部分公式来替换LOOKUP中的F2,也就是文章开头的那个比较长的公式了。
分析到这里,可以联想到一个问题,如果某人正好有两个销售最高且相同的值,那该公式就只能统计出其中的一个结果,若要考虑有重复最大销量且要得到对应的所有商品的话,公式就会比较麻烦,这又涉及到多条件匹配多个结果的问题,在实际中,能确定出一种结果也是可以满足需求的,如果非要把结果都列出来,也可以通过辅助列,或者用万金油公式的套路去实现,本文就不在讨论了。
最后来总结一下,今天这个问题很显然是条件最大值和多条件匹配这两类问题的组合,单独说每个问题,都有n种解法,除了文中分享的公式之外,还有下面这些公式都能实现同样的结果,有兴趣的朋友可以自己研究。
=INDEX(B:B,MAX((A$2:A$12=E2)*(C$2:C$12=MAX((A$2:A$12=E2)*C$2:C$12))*ROW($2:$12)))
=VLOOKUP(E2&MAX((A$2:A$12=E2)*C$2:C$12),IF({1,0},A$2:A$12&C$2:C$12,B$2:B$12),2,)
=INDIRECT("b"&MAX((E2&MAX((A2:A12=E2)*C2:C12)=A2:A12&C2:C12)*ROW(2:12)))
=INDEX(B:B,MATCH(E2&MAX(($A$2:$A$12=E2)*$C$2:$C$12),A:A&C:C,))
好了,公式都在上面,小伙伴们自己验证一下吧。
****部落窝教育-excel分组查找最大值****
原创:老菜鸟/部落窝教育(未经同意,请勿转载)
更多教程:部落窝教育