标签: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函数允许按多个条件进行排序,且无需结果中显示这些条件列。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有