SORT 函数¶
函数概述¶
SORT 函数用于对区域或数组进行排序,并返回排序后的新数组(不会直接改动原数据)。它属于动态数组函数,常用于:
- 对表格按某列升序/降序排列并输出结果
- 多关键字排序(先按主键,再按次键)
- 与 FILTER、UNIQUE、TAKE 等函数组合,做“可自动更新”的报表视图
适用版本:Microsoft 365、Excel 2021 及以上(支持动态数组的版本)。
基础语法¶
参数说明¶
| 参数 | 是否必填 | 含义 | 常用取值 |
|---|---|---|---|
| array | 必填 | 要排序的区域/数组 | 如 A2:D20 |
| sort_index | 选填 | 按第几列/行排序(相对 array) | 1 表示第1列/行 |
| sort_order | 选填 | 排序方式 | 1 升序;-1 降序 |
| by_col | 选填 | 排序方向:按列还是按行 | FALSE/0 按行(默认);TRUE/1 按列 |
补充说明(便于理解):
- sort_index:当 by_col=FALSE 时,sort_index 表示“按 array 的第几列排序”;当 by_col=TRUE 时,sort_index 表示“按 array 的第几行排序”。
- 省略选填参数时:默认按第 1 列升序、按行排序。
基础用法示范¶
示例数据¶
假设有一份销售数据(字段顺序如下):
| 姓名 | 部门 | 销售额 | 日期 |
|---|---|---|---|
| 张三 | 华东 | 5600 | 2025-01-06 |
| 李四 | 华北 | 7200 | 2025-01-03 |
| 王五 | 华东 | 7200 | 2025-01-02 |
| 赵六 | 华南 | 4300 | 2025-01-05 |
数据区域为:A2:D5(A1:D1 为表头)。
按销售额升序¶
需求:按“销售额”从小到大排序,返回整表。
说明:第 3 列是销售额,1 表示升序。
按日期降序¶
需求:按“日期”从新到旧排序。
说明:第 4 列是日期,-1 表示降序。
按姓名升序¶
需求:按“姓名”从 A 到 Z(中文按拼音顺序取决于系统/区域设置)。
多列组合排序¶
SORT 本身是单关键字排序;多关键字建议用 SORTBY。 如果你只想在本文里理解“基础排序逻辑”,可以先记住:多关键字排序的标准做法是:
说明:先按销售额降序(C 列),再按日期升序(D 列)。
按列方向排序¶
需求:对一行标题或横向数据进行排序(按列排序)。假设要排序区域为 A1:H1,并按第 1 行排序:
说明:by_col=TRUE 表示“按列排序”,sort_index=1 表示按第 1 行作为排序依据。
总结¶
SORT 的核心价值是:把排序结果作为一个可更新的输出数组,特别适合做“动态报表视图”。使用时抓住 4 点就够了:
- array:要排序的范围
- sort_index:按哪一列/行排(相对 array)
- sort_order:升序 1、降序 -1
- by_col:默认按行排序;需要横向排序时设 TRUE
如果你需要多关键字排序,把 SORT 作为入门理解即可,实际工作中优先用 SORTBY 来一步到位。