用 Excel 按自定义顺序排序,让你的工作效率翻倍
原文标题:《效率翻倍!用 Excel 按自定义顺序排序,想怎么排就怎么排~》
大家好,我是在研究成绩排序的小爽~
我有个朋友,是一位老师,现在他需要对学生的成绩进行排序,规则是:
先看总分成绩,总分相同的情况下,优先看数学成绩,数学成绩相同的情况下,优先看语文成绩,语文成绩相同的情况,看英语成绩。最终进行排序。
在 Excel 中,就有一个操作简单的自定义排序功能,可以完成上述要求。
自定义排序
首先我们在 E2 单元格中输入公式进行求和:
=SUM($B2:$D2)
选中 A1:E10 表格数据区域,在【开始】选项卡下,单击【排序和筛选】,选择【自定义排序】。
依次添加对应的条件,总分-单元格值-降序,选择确定,就可以达到我们想要的要求。
此时排序就完成啦~
自定义排序虽然简单,但是每一次修改对应数据后,不能实时排序。
他想要的是自动排序成绩。
那有没有一个排序函数,直接就可以搞定呢?
两个排序函数
Office365 还真的出了两个排序函数 Sort 和 Sortby 。
Sort 函数可以对区域中,指定索引按照升序或者降序排序。
=SORT(array,[sort_index],[sort_order],[by_col])=SORT(数组区域,[排序索引,默认为1],[排序方式,默认为升序],[按行还是按列排序])▲ 左右滑动查看
比如我们想要总分按照从大到小的方式进行排序。
在 G2 单元格中输入公式:
=SORT(A2:E10,5,-1,FALSE)
数据区域:A2:E10;
总分相对区域于数据区域在第 5 列;
排序方式:-1 代表降序;
按行排序为 False。
不过,Sort 函数只能针对一个索引值进行指定排序,如果想要对多个列指定排序,我们还需要知道另外一个函数 --Sortby 函数。
=SORTBY (array,by_array1,[sort_order1],[by_array2、sort_order2],)=SORTBY 数组区域,列1,[排序方式1],[列2、排序方式2],)▲ 左右滑动查看
本例,我们就可以使用 Sortby 函数。
为了让表格能够自动扩展区域,我们先将数据区域转化为超级表。
选中表格区域,按住快捷键【Ctrl+T】,将表格转换为超级表。
G2 单元格中输入公式:
=SORTBY(表2,表2[总分]-1,表2[数学],-1,表2[语文],-1,表2[英语],-1)
PS.-1 为降序排序,表 2 为该表的名称。
一个简单的函数公式就搞定啦!
因为我们的表格是超级表,所以当我们更新记录时,对应的排序表也会实时更新。
Sortby 函数好用是好用,但是我用的是 WPS 怎么办。
不用担心,WPS 现在也更新了 Sortby 函数。
哇呜,太棒啦~
不过,WPS 和 Office365,在使用 Sortby 函数的区别在于:
Office365 使用的是动态数组,按住【Enter】键就可以自动拓展,而 WPS 则需要选中区域后,在编辑状态,按住数组三键【Ctrl+Shift+Enter】进行数组运算。
公式如下:
=SORTBY(A2:E10,E2:E10,-1,C2:C10,-1,B2:B10,-1,D2:D10,-1)
WPS 操作,动图如下:
PQ 排序
如果你不是 Office365 用户,但是 Excel 中有 PowerQuery,PQ 中也有一个排序函数,那就是 Table.Sort 函数。
选中数据区域,点击【数据】选项卡-【来自表格 / 区域】(有些版本不叫这个名字),将数据导入到 PQ 编辑器中。
选中总分列,在【主页】选项卡,选择降序,依次选中数学列,语文列,英语列选择降序。
这里,我们可以看到,所有的排序操作,对应的是一个 Table.Sort 函数。
我们来简单看看 Table.Sort 函数的对应参数。
排序方式:
升序:Order.Ascending/ 0;
降序:Order.Descending/ 1。
Table.Sorttable as table, comparisonCriteria as any) as tableTable.Sort表,{{字段1,0/1} , {字段2,0/1} , {字段3,0/1}…… }▲ 左右滑动查看
所以,案例中,对应的 m 函数公式为:
= Table.Sort(更改的类型,{{"总分", Order.Descending}, {"数学", Order.Descending}, {"语文", Order.Descending},{"英语", Order.Descending} })
这个 m 函数公式跟前面的 Sortby 函数公式是不是很像呢~
都是表,然后字段的排序。
=SORTBY表 2表2[总分],-1表2[数学],-1表2[语文],-1表2[英语],-1)
利用 PQ 法完成的排序,也是可以实时更新的。
总结一下
本文介绍了三种自定义排序做法:
❶ 自定义排序操作
❷ Sortby 函数
Office365
WPS 需要使用数组三键
❸ Table.Sort 函数
PowerQuery 中的排序函数
参数跟 Sortby 函数很像
在工作中,排序功能特别常用。
但是美中不足的是,它不能实时更新排序。我们以前要达到实时更新排序功能,有时还需要使用 VBA 工作表事件。
开心的是,Office 在前年 8 月更新了 Sortby 函数,WPS 在去年 10 月更新 Sortby 函数。
拆分功能也非常常见,分列功能也是存在不能实时更新的问题,所以 Office 和 WPS,什么时候可以更新 Split 函数呢?大家觉得后面 Split 函数会有嘛~
本文来自微信公众号:秋叶 Excel (ID:excel100),作者:小爽,编辑:小音、竺兰
相关文章
- 25 周年纪念作,情怀拉满但诚意欠缺:《勇者斗恶龙 怪物仙境 3》
- 联想拯救者 Y700 2023 平板推送 ZUI 15.0.723 系统灰度测试:新增“USB 网络共享”,优化底部小白条
- Streacom 推出 SG10 高端被动散热机箱:可解热 600W,1300 美元
- 3D 角色扮演策略游戏《少女前线 2:追放》公测开启,安卓、iOS、PC 多端互通
- 新能源车市:价格战开局,价值战结束
- 雪天这样拍,照片更为味道
- Cybertruck:未来物种重新定义汽车
- 2022 年我国未成年网民规模突破 1.93 亿,普及率达 97.2%
- 上映 7 天,《名侦探柯南:黑铁的鱼影》内地票房破亿、豆瓣 6.6 分
- 小岛工作室推出《死亡搁浅》联名手机手柄,预计明年发售