在整个年级的成绩表中各班级求各班的排名
似乎这个标题说得太复杂了些,不过,我们通过如下的表来具体说明,本例要讲哪个技术教程。
操作方法
- 01
本例讲的是一个比较复杂的Excel排名的问题。 先看下表。
- 02
看上图吧,列分别为班级、姓名、总分和班级排名。 首先,这种表格是年级上所安排的考试名单,不能排序,以防止相邻的座位不能有同班的同学。 现在,总分出来了,我们得按照班级的号码,求出各表的每个同学在本班的成绩排名,比如,1班的同学要和1班的进行比较后排名,不能和2、3班一起排名,即每个班级的只能和本班级的进行排名,不能和其它班级混着排名。 那么,如何才能保证各班的和各班的在排名的时候即要准确,同时还要使其它班的排名也一起排出来互不影响。 方法很简单,使用SUMPRODUCT函数就足够了。 一、先看结果 我们先看结果吧,选中D2单元格,然后输入如下图的公式:
- 03
即 =SUMPRODUCT((A$2:A$7=A2)*(C$2:C$7>C2))+1 按下回车键即可,然后使用填充功能结果就出来了。 就这么简单,各班和各班排名一下就出来了,相当准确方便。 二、公式分析 如果你想了解SUMPRODUCT函数的详细介绍,请参阅 http://www.dzwebs.net/3649.html 下面就针对本例子讲解函数公式。 SUMPRODUCT((A$2:A$7=A2)*(C$2:C$7>C2))公式,可看作: SUMPRODUCT((条件一)*(条件二)) 如上的含义就是SUMPRODUCT函数必须同时满足条件一和条件二所得的记录数,即个数。 SUMPRODUCT((A$2:A$7=A2)*(C$2:C$7>C2))理解为: A$2:A$7=A2,A$2:A$7区域,必须等于A2这个值,即班级号;此为条件一; C$2:C$7>C2,C$2:C$7区域,必须大于C2这个总分,此为条件二; 满足如上条件的个数。 说得简单点,A2是班级号,其值为1,那么A$2:A$7这个区域只要是等于1这个班级号,就满足条件一; 同时,还要满足C$2:C$7>C2,C2为总分,其值为500,此为条件二。 班级号为1,成绩大于500的,有几个呢?看上班,满足这两个条件的个数为1,所以,公式SUMPRODUCT((A$2:A$7=A2)*(C$2:C$7>C2))的结果为1。 最后,在公式SUMPRODUCT((A$2:A$7=A2)*(C$2:C$7>C2))的后面加上1,公式就变成如下公式: =SUMPRODUCT((A$2:A$7=A2)*(C$2:C$7>C2))+1 这就是所需要的最终的公式。