重点内容
适用版本
需要 Excel 365 或 Excel 2021(旧版本没有 SORT 函数,只能用 传统排序)。
基础用法
示例数据 A2:D15 是一份含姓名、部门、销售额等字段的记录表。
- 在 F2 输入
=SORT(A2:D15) - 结果自动向下、向右溢出填满多个单元格(spilling),不需要按 Ctrl + Shift + Enter
SORT 函数结果自动溢出,排序后的完整数据表
📌 SORT 默认按第一列(第一个字段)、升序排序。
按不同列排序
在第二个参数指定要排序的列号:
=SORT(A2:D15,2)表示改按第二列排序
降序排列
在第三个参数指定顺序:
=SORT(A2:D15,2,-1),1 表示升序,-1 表示降序
多列排序
第二个参数用数组常量 {} 同时指定多个列:
=SORT(A2:D15,{1,4})表示先按第 1 列排,再按第 4 列排(例如先按姓氏,再按销售额)- 混合排序顺序(比如第一列升序、第二列降序)也可以写成数组常量搭配对应的顺序参数:
=SORT(A2:D15,{1,4},{1,-1})
多列排序结果,先按姓氏排、同姓氏内再按销售额排
搭配 SORTBY 函数
如果想「按某一列排序,但显示另一个范围」,或排序依据不是数据本身相邻的列,可以改用 SORTBY 函数(详见反转列表 / 随机打乱列表两篇笔记的用法)。
SORT 还是 SORTBY,怎么选
| 函数 | 适合场景 | 备注 |
|---|---|---|
| SORT | 排序依据就是数据本身的某一列 | 用列号指定排序依据,写法更简单 |
| SORTBY | 排序依据是另一个范围(不相邻、或不显示出来) | 例如按销售额排序但只显示姓名 |
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| SORT | =SORT(array, [sort_index], [sort_order]) | 对范围排序,结果自动溢出 | =SORT(A2:D15,2,-1) |
| SORTBY | =SORTBY(array, by_array, [order]) | 按对应范围的值排序 | =SORTBY(A2:D15,C2:C15,-1) |
学完你会
常见错误
- 忘记 SORT 是动态数组函数,在结果溢出范围内手动插入内容,会导致 #SPILL! 错误
- 多列排序时数组常量里的列号和顺序参数数量对不上(比如列号写了两个、顺序只写了一个),公式会报错
- 以为 SORT 会改动原始数据 A2:D15,实际上原数据完全没变,SORT 只是在公式所在的位置生成一份排序后的副本
Sources
Blog / Website: