vlambda博客
学习文章列表

用sumproduct函数计算组内排名

需求: 计算组内排名,例如B组最大值是99,则D4应返回1,A组最小是53,则D15返回6
文档示意:
公式(D4单元格):
'=SUMPRODUCT(($B$4:$B$15=B4)*($C$4:$C$15>C4))+1
公式讲解:

1、sumproduct:给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和

sumproduct理解示例:

用sumproduct函数计算组内排名

2$B$4:$B$15=B4:组别判断,等于B4,返回true,否则返回false

{TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE}

3、$C$4:$C$15>C4:数值大小判断,大于C4,返回true,否则返回false

{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

4、($B$4:$B$15=B4)*($C$4:$C$15>C4):TRUE=1,FALSE=0

两个数组对应位置的数据相乘然后加和

{0;0;0;0;0;0;0;0;0;0;0;0},求和等于0,表示在该组没有比C4更大的数据

5、SUMPRODUCT(($B$4:$B$15=B4)*($C$4:$C$15>C4))+1

=0+1=1

对应组没有比该数据更大的,因此是第一名

6、公式下拉得到所有数据的最终组内排名结果


----------------------------------------

有QQ的小伙伴可以qq:1069572529

还在为查找网上浩若繁星的代码发愁?快来识别以下二维码,关注VBA代码集锦,帮你总结注释高效实用代码。更有代码视频讲解及更多EXCEL讲解视频。