level 5
小小小小孩99
楼主
这个问题在群里问了好几遍了,原始数据如下:

为了大家看起来更明了一些,这里的成绩经过简单处理(排序),并特意设置第9名和第10名的成绩相同,检验是否会计算到总成绩中。
方法一:(辅助列)
先筛选出前80%学生的成绩:(D2单元格公式如图,D3、D4等下拉D2单元格的公式填充即可)

ROW()指的是单元格所在行号,COUNTA()函数求得是非空单元格的数目,INT()函数是取整的意思,LARGE()即按照从大到小的顺序进行排序。
筛选完毕,利用SUM()函数求和即可:

方法二:
不用辅助列可不可以?当然。利用数组函数即可:

INDIRECT()函数在我的另一个贴子中有用到过,即对引用进行【计算】,并显示其内容。
公式中的大括号也不是直接通过键盘输入的,更不是通过搜狗软键盘输入的,而是在输入大括号内的公式后,将输入光标放在公式编辑栏,同时按下shift+ctrl+enter生成的(数组公式),是不是很有意思?打开excel尝试一下吧。
从上面的截图中,我们可以看出,即便两人的姓名或者是分数相同,求和的时候也不会因为这些因素而多计算几个人或者少计算一个人(不要说不应该是9.6个人么?)。
END
2016年02月02日 07点02分
1

为了大家看起来更明了一些,这里的成绩经过简单处理(排序),并特意设置第9名和第10名的成绩相同,检验是否会计算到总成绩中。方法一:(辅助列)
先筛选出前80%学生的成绩:(D2单元格公式如图,D3、D4等下拉D2单元格的公式填充即可)

ROW()指的是单元格所在行号,COUNTA()函数求得是非空单元格的数目,INT()函数是取整的意思,LARGE()即按照从大到小的顺序进行排序。筛选完毕,利用SUM()函数求和即可:

方法二:不用辅助列可不可以?当然。利用数组函数即可:

INDIRECT()函数在我的另一个贴子中有用到过,即对引用进行【计算】,并显示其内容。公式中的大括号也不是直接通过键盘输入的,更不是通过搜狗软键盘输入的,而是在输入大括号内的公式后,将输入光标放在公式编辑栏,同时按下shift+ctrl+enter生成的(数组公式),是不是很有意思?打开excel尝试一下吧。
从上面的截图中,我们可以看出,即便两人的姓名或者是分数相同,求和的时候也不会因为这些因素而多计算几个人或者少计算一个人(不要说不应该是9.6个人么?)。
END