Excel里做数据排序,大家最熟悉的是【数据】选项卡下的排序按钮。
选中区域、设置条件、点击确定,几步就完成了。

这种方式处理一次性整理没有问题,但如果数据会持续更新,每次都要重复操作就很低效,比如:
- 每个月做销售统计,数据录入完之后还得按业绩从高到低重新排一遍,下个月换了新数据,同样的事情再来一次。
- 公司人员有变动,花名册调整完,之前的排序又乱了。
这些需要反复操作的Excel排序场景,其实可以换个思路来解决,比如用SORTBY函数来替代手动操作。
一、SORTBY函数是什么
简单来说,SORTBY函数的作用是对数据区域进行排序,并返回排序后的结果。
它的特别之处在于排序结果是动态的——原始数据发生变化时,排序结果会自动更新,不需要重新操作。
这个函数在Excel 2021、Office 365和新版WPS中都可以使用。
函数的基本语法为:
=SORTBY(要排序的区域, 依据哪一列排, 升序或降序)

升序写1,降序写-1,不写的话默认按升序排。
二、单条件排序
一张员工信息表在A2到D11区域,想按D列的年龄从小到大排列,公式这样写:
=SORTBY(A2:D11,D2:D11,1)

A2:D11是要排序的数据范围,D2:D11是排序参考列,1代表升序。
公式写完按回车,排序结果会自动显示在旁边的空白区域。原始数据的位置和顺序不会改变。
三、多条件排序
先按部门分组,再在同部门内按年龄从大到小排列。假设部门在B列,年龄在D列,公式调整为:
=SORTBY(A2:D11,B2:B11,1,D2:D11,-1)

这个写法里,SORTBY函数先处理第一个排序条件(B列升序),再处理第二个(D列降序)。
排序依据列不一定要包含在要排序的区域里,这点在实际使用中比较灵活。
四、自定义排序
部门排序通常不按字母顺序,而是按“财务部、市场部、技术部”这样的固定顺序。
单纯靠升序或降序实现不了,需要配合MATCH函数使用。
=SORTBY(A2:C17,MATCH(B2:B17,E2:E6, ),1,C2:C17, -1)
MATCH函数把部门名称转换成一串数字——财务部变成1,市场部变成2,以此类推。
SORTBY函数根据这串数字排序,就实现了自定义顺序。
五、随机排序
面试顺序安排、抽奖名单准备,需要把原有顺序打乱。SORTBY函数配合RANDARRAY函数可以实现:
=SORTBY(A2:B11, RANDARRAY(10), 1)
RANDARRAY(10)生成10个随机数,SORTBY函数根据这些随机数重新排列数据。每次表格重新计算,顺序都会变化。
六、使用SORTBY函数的几个注意点
第一,版本支持。SORTBY函数需要Excel 2021、Office 365或新版WPS,旧版本无法使用。
第二,报错处理。如果结果区域被其他内容占用,会提示#SPILL!错误,清空周围单元格即可。
第三,不改变原始数据。SORTBY函数在别处生成排序结果,原始数据保持不变。如果需要在原位置排序,还是用基础排序功能。
七、两种Excel排序方式怎么选
基础排序功能操作直观,适合临时整理数据、不需要重复操作的场景。
SORTBY函数适合数据持续更新、希望排序结果自动跟随的场景。
两种方式可以搭配使用——做报表时用SORTBY函数写公式,日常快速浏览时用基础排序。
掌握SORTBY函数,处理需要反复排序的表格时能省下不少时间,写一次公式,后面数据变动结果自动更新,不用再来回点排序按钮了。






