对不同的班级分别排序
如下图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)