动态数组行业案例:使用SORTBY函数×动态数组 制作多功能成绩单

清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

【背景】

某校想研发一款针对所有教师、学生、学生家长的电子版成绩单,要求就是:排序功能强劲而且操作简单!

语文老师关注语文成绩:那么就按语文成绩排序;

家长关注孩子的全科成绩:那么就按总分排序;

孩子关注自己的进步值:那么就按进步值排序。

以上都是单关键字排序模式。在实际应用中往往条件更为复杂:

班主任老师自己是教数学的,他在关注数学成绩的同时,兼顾总成绩,那么就可以设置:

【主要关键字】为【数学】、【次要关键字】为【总分】;

家长关注孩子全科成绩的同时,想重点关注孩子的英语成绩,那么就可以设置:

【主要关键字】为【总分】、【次要关键字】为【英语】;

打印社,就想快速地打印这个成绩单,什么也不关注,那么就可以设置:

【主要关键字】和【次要关键字】均为【学号】,且升序排序。

就需要用到双或多关键字排序的模式了。

好了,我们充分借助动态数组的强大功能,使用SORTBY函数,结合【数据】选项卡→【有效性】功能,完成这样一款多功能成绩单吧!

首先我们对SORTBY函数不熟悉的同学做一个简易版本,我们一起来熟悉一下SORTBY函数的使用方式:

以【总分】、【降序】为例,输入截图中A4单元格的公式

SORTBY的三个参数可以通俗地理解为:数据源,排序的列数组,排序方式

其中,

排序的列数组选择总分一列

排序方式为降序(-1)

在这里,我们充分借助我上一篇文章所写的动态数组的优势:

①不用提前选定区域,直接点击左上角A8单元格即可输入公式;

②直接按Enter而不需要CSE三键生成公式;

③后期修改公式,只需要在A8单元格修改即可,无需再次选中全部数组结果区域。

(上一篇文章链接:https://home.wps.cn/topic/8425

接下来使用【数据选项卡】、【有效性】、【序列】功能,结合右侧参数表的内容,完成【数据有效性】的设定。

(非本文重点讲解内容,对操作有疑问的小伙伴可以参考@YourDragon要努力 的文章《如何制作动态下拉列表》https://home.wps.cn/topic/406

然后我们第一次增加难度,使用OFFSET、MATCH、IF函数组合功能实现动态查找,可以输入下图中的A5单元格的公式。

其中,

MATCH函数表达式的作用是找到A2单元格在源数据数组的第几列;

OFFSET函数表达式的作用是以源数据数组第1列作为对标,行偏移为0,列偏移为MATCH取值-1(扣除自身);

IF函数表达式的作用是以C2单元格值为条件,返回降序(-1)或者升序(1)值。

最后结合SORTBY函数完成单条件排序的功能实现。

然后我们再一次增加难度,用这个方法实现双条件排序。

我们在SORTBY函数的后面,继续写两个参数,如上图A3单元格所示。

SORTBY的五个参数可以通俗地理解为:数据源,排序的列数组1,排序方式,排序的列数组2,排序方式,……(后面还可以继续写)

注意多条件排序的顺序,要把主要关键字写在前面,次要关键字写在后面,以此类推。

然后我们就可以尽情地更改排序条件啦!

我把文档链接放在下面,大家可以自行取用。

【金山文档】 动态数组行业案例:多功能成绩单

https://kdocs.cn/l/cnUazkPXbDYX

还给大家留了一个“空白页”,大家可以根据源数据数组和参数表,从0开始,自行设计一个多条件排序的《多功能成绩单》,充分平替【数据】选项卡的【排序】功能,用下拉菜单模式轻松搞定!

今天的帖子内容就到这里,祝大家工作愉快!

辽宁省
浏览 985
1
11
分享
11 +1
1
1 +1
全部评论 1
 
张俊
张俊

社区优秀创作者

泽岩师兄太卷了,跟着泽岩师兄来学习来了!
· 上海
1
回复