说说Excel中的函数排名( 二 )


1/COUNTIF(C$3:C$9,C$3:C$9) 计算就是 = {1,1,1,1,0.5,1,1,0.5}
这一步是小学数学水平,应该不难 。
3,SUMPRODUCT函数
这个函数被誉为计算全能王,有限的篇幅里,我只能讲最核心的知识 。
直接上结论,大家记住结论即可,以后有机会详细讲解 。
SUMPRODUCT函数的万能公式为:
=SUMPRODUCT((条件1)*(条件2)*……*求和区域)
可以实现单一条件求和、多条件求和 。
因此,在这个案例中,SUMPRODUCT函数括号内的这一坨,最终实现的功能就是按照某一个条件求和 。
①先来说求和
将1/COUNTIF(C$3:C$9,C$3:C$9) 得出的结果 {1,1,1,1,0.5,1,1,0.5}进行求和,你就会惊奇地发现:
总和=【区域中不重复元素的个数!】
其实原理很简单:比如案例中89重复了两次,那么得出的数组中,两个89分别对应的位置都是0.5,两个0.5相加等于1,相当于只被计算了一次 。
以此推广,如果某个数据重复了N次,那么它对应的COUNTIF()结果=n,而其1/COUNTIF()结果=1/n,因为一共有n个元素(因为重复了N次),因此它们的个数总和=n*(1/n)=1
…………
所以,=SUMPRODUCT((1/COUNTIF(B$2:B$9,B$2:B$9))啰嗦了这么久,其实就是计算B$2:B$9区域中不重复元素的个数 。
这一步相当于中学数学知识,对大家来说也应该没有问题 。
②附加条件的求和
因为要进行从大到小的顺序排名,因此我们需要统计大于等于这个数的个数 。
想一想,为什么?
(比如,对于排名第一的数,大于等于它的只有它自己,排名第二的数,大于等于它的只有第一和它自己……所以,想要求一个数在一组数中的排名,计算出这组数中大于等于这个数的个数即可)
所以要加上一个附加条件:(B2<=B$2:B$9),而根据SUMPRODUCT函数的万能公式,这个条件需要与求和区域进行相乘 。
因此,最后的合成公式就是:
=SUMPRODUCT((B2<=B$2:B$9)/COUNTIF(B$2:B$9,B$2:B$9))
最终公式的含义是:以 符合(B2<=B$2:B$9)为条件,统计区域中不重复元素的个数最后就得到了【中国式排名】的结果 。

猜你喜欢