需求:计算组内排名,例如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、公式下拉得到所有数据的最终组内排名结果

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐