首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Excel函数:SORT函数与SORTBY函数

Excel函数:SORT函数与SORTBY函数

作者头像
fanjy
发布于 2023-02-24 20:41:45
发布于 2023-02-24 20:41:45
5.6K0
举报
文章被收录于专栏:完美Excel完美Excel

标签:Excel函数,SORT函数,SORTBY函数

SORT函数和SORTBY函数听起来很相似,它们都是Excel的动态数组函数,用来排序数据,然而它们有什么不同呢?

SORT函数按一个条件对整个数据集排序

SORT函数的语法如下:

SORT(array,[sort_index],[sort_order],[by_col])

其中,参数array必需,想要排序的单元格区域或数组;参数sort_index可选,用来指示排序依据的行或列的数字;参数sort_order可选,指示想要排序顺序的数,1代表升序(默认),-1代表降序;参数by_col可选,指示想要排序方向的逻辑值,FALSE代表按行排序(默认),TRUE代表按列排序。

下面以图1所示的表1数据为例演示。

图1

由于SORT函数和SORTBY函数返回表中的数据,但不会返回相应的列标签,因此首先使用下面的公式输入第一行:

=表1[#标题]

如果我们要以分数列由高到低降序排列,则可以使用公式:

=SORT(表1,MATCH("分数",表1[#标题],0),-1)

结果如下图2所示。

图2

SORT函数将总是按数据区域中的列/行之一对数据区域进行排序。

SORTBY函数按另一个数组排序

SORTBY函数更加动态,更易于使用。SORTBY函数的语法如下:

SORTBY(array,by_array1,[sort_order1],[by_array2,sort_order2],…)

其中,参数array必需,想要排序的数组或单元格区域;参数by_array1必需,要排序的数组或单元格区域;参数sort_order1可选,用于排序的顺序,1代表升序,-1代表降序,默认升序;参数by_array2可选,要排序的数组或单元格区域;参数sort_order2可选,用于排序的顺序,1代表升序,-1代表降序,默认升序。

下面使用SORTBY函数对表1中的分数列按降序排列,公式如下:

=SORTBY(表1,表1[分数],-1)

结果如下图3所示。

图3

可以看到,结果与上文中使用的SORT函数得到的结果相同。

按多个条件排序

SORTBY函数可以根据多个条件对数据进行排序,也可以分别选择是升序还是降序。例如,对表1不仅按分数降序排列数据,还按性别升序排列数据:

=SORTBY(表1,表1[分数],-1,表1[性别],1)

按另一列排序而无需显示这些列

SORTBY函数真正有趣的地方是,可以使用它按另一个区域对一个区域进行排序,甚至不包括这个排序区域。假设我们只想要上图1所示表1的名字按分数和性别排序名单列表,但不要显示性别和分数,可以使用公式:

=SORTBY(表1[姓名],表1[分数],-1,表1[性别],1)

结果如下图4所示。

图4

小结

SORT函数通过一个且仅一个索引编号对数据集进行排序,而SORTBY函数允许按多个条件进行排序,且无需结果中显示这些条件列。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档