.hd-box .hd-fr

用 Excel 按自定义顺序排序,让你的工作效率翻倍

2023-01-03 19:54秋叶Excel(小爽)5评

原文标题:《效率翻倍!用 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),作者:小爽,编辑:小音、竺兰

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

下载IT之家APP,分享赚金币换豪礼
相关文章
大家都在买广告
热门评论
查看更多评论