对不同的班级分别排序

如下图1所示的工作表,在单元格区域A1:C9中有一组学生成绩数据,如何使用公式分别对不同班级的学生根据成绩高低排序?

图1

先不看答案,自已动手试一试。


公式思路

因为数据区域中要根据不同的班级分别排序该班级的成绩,所以需要区分不同的班级,并针对每个班级的学生成绩来排序。

公式

在单元格D2中的公式如下:

=SUMPRODUCT(--($B$2:$B$9=B2),--($C$2:$C$9>C2))+1

下拉至单元格D9,结果如图2所示。

图2

公式解析

首先,公式中的:

--($B$2:$B$9=B2)

将单元格区域B2:B9中的每个值与单元格B2中的值比较,得到数组{TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE},双减号将逻辑值转换成{1;0;0;0;0;0;1;1}。

公式中的:

--($C$2:$C$9>C2)

将单元格区域C2:C9中的每个值与单元格C2中的值比较,得到数组{FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE},双减号将逻辑值转换成{0;0;1;1;0;0;1;1}。

接着,SUMPRODUCT函数将两个包括0,1的数组对应元素相乘后相加,得到对应的学生在所在班级的成绩排名。

即公式中的第1部分区分不同的班级,第2部分排序所在的成绩,结合起来即得到该学生所在班级的成绩排序。

(0)

相关推荐