在 excel 里面实现自动排序,首选就是 SORT 动态数组函数,这个函数属于新版 excel 动态数组类函数,输入一次公式之后,会自动把排序结果溢出到相邻单元格,原始数据源更新的时候,排序结果可以自动刷新,不需要手动重新点击排序按钮,很多老版本 excel 没有 SORT 函数,就需要搭配 RANK INDEX MATCH 这类传统函数组合来实现自动排序,两者最大差别就是 SORT 写起来简单,但是有版本限制,传统函数兼容性更好,但是公式编写复杂,自动排序函数核心价值就是脱离菜单栏排序功能,依靠公式完成动态排序,适合动态台账 排行榜 实时更新数据表,原始数据新增修改之后,排序结果自动跟随变化,不用重复手动排序操作。
SORT 函数基础语法
SORT 函数一共支持四个参数,第一个参数是需要排序的数据区域,第二个参数是排序的列序号,第三个参数是排序方向,第四个参数是按行还是按列排序
基础书写格式 SORT 数据区域 列序号 排序方向 按行或按列
参数说明
列序号 填写 1 代表按照区域里面第一列排序,填写 2 代表第二列,以此类推
排序方向 填写 1 代表升序,填写负 1 代表降序
第四个参数 默认是 0,代表按列排序,填写 1 代表按行排序
输入公式按下回车之后,排序结果会自动溢出,不需要下拉填充,属于动态数组特性
SORT 函数标准操作步骤
1 确认 excel 版本支持动态数组,微软 365 或者 2021 及以上版本才可以直接使用 SORT 函数
2 选中想要输出排序结果区域左上角第一个空白单元格
3 在单元格输入 SORT 公式,选中原始数据源区域,指定排序列,选择升序或者降序
4 按下回车,排序结果自动溢出填充到下方和右侧单元格
5 后续修改原始数据,新增删除记录,排序结果会自动重新计算,实现自动排序效果
老版本兼容方案 RANK 搭配 INDEX MATCH
老版本 excel 没有 SORT 动态数组,就使用这套传统自动排序函数组合
1 RANK 函数作用是给每一行数据计算排名,基础写法 RANK 数值 全部数值区域
2 排名生成之后,用 INDEX MATCH 根据排名序号,依次调取对应行的数据,实现按排名自动排列
3 这套公式需要逐行下拉填充,原始数据变动之后,排名和排序结果会自动更新
缺点是公式长,遇到重复数值的时候排名会出现并列,需要额外增加辅助列处理重复值,避免调取数据出错
函数方案对比表
| 方案 | 函数 | 版本要求 | 是否自动溢出 | 优点 | 缺点 |
|---|---|---|---|---|---|
| 新版动态排序 | SORT | 365 2021 及以上 | 是 | 公式简短,维护简单 | 老版本无法使用 |
| 传统兼容排序 | RANK INDEX MATCH | 全部版本 | 否 | 兼容性强 | 公式复杂,重复值需要额外处理 |
深度进阶要点
SORT 函数排序的时候,如果原始区域里面有空单元格,空值会统一排在升序最前面,业务使用可以提前清理空单元格
SORT 支持多列数据一起排序,也就是整行记录跟着排序列同步移动,不会只单独排序某一列造成数据错乱
如果想要结合自定义文本序列排序,SORT 本身不直接支持自定义序列,需要搭配 SORTBY 函数,用辅助列映射自定义顺序,再执行自动排序
动态数组溢出区域,如果单元格里面已经有原有内容,会出现溢出错误,输出位置必须保持空白
RANK 函数处理重复数字的时候,相同数值会得到一样排名,会造成 INDEX MATCH 调取重复行,需要增加微小修正值,解决并列排名冲突
SORTBY 补充说明
SORTBY 也是自动排序相关函数,和 SORT 区别是 SORTBY 可以使用另外一组独立区域作为排序依据,不一定是原数据内部的列,适合排序依据和原始数据不在同一个区域的场景,同样属于动态数组函数,新版 excel 才支持。
【常见问题】
问题 1 excel 自动排序函数 SORT 输入之后报错怎么办
回答 1 大部分原因是 excel 版本不支持动态数组,老版本没有 excel 自动排序函数 SORT,这种情况改用 RANK 搭配 INDEX MATCH 传统自动排序函数方案,也可以升级软件版本之后继续使用 SORT 自动排序函数。
问题 2 excel 自动排序函数排序之后原始数据修改不会更新是什么原因
回答 2 如果是老版本 RANK INDEX MATCH 自动排序函数,需要确认公式没有被转换成静态数值,一旦复制成数值就失去自动计算能力,新版 SORT 自动排序函数默认是动态计算,原始数据改动会自动刷新排序结果。
问题 3 excel 自动排序函数能不能实现降序排列
回答 3 可以,SORT 这个 excel 自动排序函数第三个参数填写负 1,就是降序自动排序,填写 1 就是升序,RANK 函数本身默认降序排名,也可以修改参数改成升序排名实现自动排序函数效果。
问题 4 excel 自动排序函数遇到重复数值排名冲突怎么解决
回答 4 使用 RANK 这套 excel 自动排序函数的时候,重复数值会得到相同排名,需要增加辅助列给数值增加微小区分值,消除并列排名,保证自动排序函数调取每一行数据不会重复错乱。
【免责申明】
本内容基于微软 excel 365 和 2021 版本动态数组函数编写,WPS 新版表格兼容 SORT SORTBY,老版本不支持动态数组,本教程仅作为学习参考,正式业务使用前请自行核对排序结果。


