您的位置 首页 > 数码极客

『excel截取前几位』word上下页

Excel如何自动统计一组数据的后十名成绩之和,而且学生的成绩或者人数是随时变化的?这个问题用函数来解答还是相对比较复杂的。先看下面我制作的源数据表:

学生的人数有一百多人,而且是乱序排列,我们如何利用一个公式将成绩排在最后n名的成绩加起来或者算平均值呢。

文:傲看今朝 图片来自网络

用哪一个函数才能得到10个最小的成绩呢?

首先,我们要考虑的第一个问题是:用哪一个函数才能得到10个最小的值呢?毫无疑问,我们用min函数只能得到一个最小的成绩,因此不能用。我们只能用small函数,这个函数主要就是用来取第n小的数据的。此函数语法为:=small(array,k)仅有两个参数,array代表单元格区域,我们需要在某个区域里取第n小的值,k代表第n,我们比如我们要取倒数第一名,k就为1,倒数第二名,k就为2……这里我们要取倒数第一名到倒数第10名,因此small函数第二参数可以写为:=small(array,{1;2;3;4;5;6;7;8;9;10}),也可以写成:=small(array,row(1:10))

人数不固定,如何small的array参数能够动态变化呢?

其次,我们要考虑的第二个问题是:我们的学生人数不固定的,如何small的array参数能够动态变化呢?为了让array参数能够动态变化,我们可以使用函数来动态引用区域。具体可以用offset函数做。通过offset函数我们可以方便快捷地得到B列的动态区域。offset函数语法如下:=offset(reference,rows,cols,[height],[width]),此函数包括5个参数,第一个参数引用区域起点,本例中起点为B1单元格;第二个参数rows代表偏移的行数,咱们要取的值就是整个B列,因此行数偏移为0,第三参数column代表偏移的列数,咱们第一参数就在B列,因此也不做偏移,值为0;第四参数height代表区域的高度,在这里区域的高度就取决于B列中有多少个非空单元格然后减掉1(不包括b1),因此我们可以通过=COUNTA(B:B)-1公式得到;第五个参数表示区域的宽度,这里为1,第五参数由于打了中括号,我们使用默认值,因此直接可以省略,因此最终offset的公式为:=OFFSET(B1,0,0,COUNTA(B:B)-1)。通过这一步我们的small函数已经写好了:

=SMALL(OFFSET(B1,0,0,COUNTA(B:B)-1),row(1:10))

通过此公式,我们便可以得到最后10名的成绩。

求和或者平均值,你说了算。

最后,我们可以利用sum函数或者average函数对最后10同学的成绩求和或者算平均值。因此只需要在第二步得出的公式外层加一个sum函数或者average函数即可。

=average(SMALL(OFFSET(B1,0,0,COUNTA(B:B)-1),row(1:10))) =sum(SMALL(OFFSET(B1,0,0,COUNTA(B:B)-1),row(1:10)))

输入完公式后,还有一点极其重要,因为本公式为数组公式,大家输入完后不要敲回车,而是按下CTRL+SHIFT+ENTER完成数组公式的录入。

最终的公式效果为:

{=SUM(SMALL(OFFSET(B1,,,COUNTA(B:B)-1),ROW(1:10)))}

期待我的回答解决了你的问题。更多精彩内容,欢迎关注我的头条号:傲看今朝职场派

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“excel截取前几位,word上下页,excel提取第几位到第几位,excel截取前几位数字,excel截取前几位字符,excel截取前几位文本”边界阅读