分享

Excel中按分类进行排名的公式解析

 L罗乐 2017-09-10

在Excel中,说起排名首先想到的就是RANK函数,对于大多数问题,RANK函数都可以解决,但是还有些时候,我们是需要按照某种分类(或者说是条件)来进行分类排名,如下图的例子:

c列的排名不是针对于全部内容的,而是根据相应的部门来进行排名,那么rank函数就无法满足需求,此时需要利用其他方法实现按条件进行排名。

通常这类问题可以使用SUMPRODUCT函数来解决,我们看d列的公式:

=SUMPRODUCT(($B$2:$B$25=B2)*($C$2:$C$25>C2)) 1

下面就来对这个公式进行分析:

先来看这部分($B$2:$B$25=B2),这里用了一个等式来判断整个部门所在的内容是否与当前行所在的部门一致,会得到一组逻辑值,使用f9来把这一段的结果显示出来,如下图:

通过这个条件,实际上就相当于进行了一次筛选,把和当前行同部门的数据都挑出来了(显示为TRUE的位置)。


再看第二个判断($C$2:$C$25>C2),这是一个比较大小的判断,用来判断需要排名次的全部数据是否比当前值大,同样我们可以用f9显示出来,如图:

当前值是8849,可以发现大于8849的位置都是TRUE。

此时两个条件都已经有所体现了,接下来用就是两个条件得到的数组相乘,也就是对进行了部门筛选的数据再进行比大小,可以继续使用f9来看计算结果:

逻辑值经过了乘法运算,全部变成了数字,只有1和0,让我们看起来也容易了许多,这部分结果的意思就是部门1里大于8849的都标注为1,而不是部门1的,都不参与比较了。

到这一步,结果显而易见了,使用SUMPRODUCT对于这个数组进行求和,结果是4,也就是比8849大的有4个数据,那么8849自然就排第五了,所以最后加1作为结束。


本例已经用到了一些数组的知识,有兴趣的朋友可以参考之前的文章:数组的计算原理

如果还是无法理解,也不必纠结,能够灵活套用这个公式也就够了。

有任何疑问欢迎加qq群交流:EXCEL基础学习群 259921244



你们最想了解和掌握的Excel技能有哪些?请在留言区告诉我们。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多