需求:计算组内排名,例如B组最大值是99,则D4应返回1,A组最小是53,则D15返回6
文档示意:
公式(D4单元格):
'=SUMPRODUCT(($B$4:$B$15=B4)*($C$4:$C$15>C4))+1
公式讲解:
1、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、公式下拉得到所有数据的最终组内排名结果