跳转至

SORT 函数

函数概述

SORT 函数用于对区域或数组进行排序,并返回排序后的新数组(不会直接改动原数据)。它属于动态数组函数,常用于:

  • 对表格按某列升序/降序排列并输出结果
  • 多关键字排序(先按主键,再按次键)
  • 与 FILTER、UNIQUE、TAKE 等函数组合,做“可自动更新”的报表视图

适用版本:Microsoft 365、Excel 2021 及以上(支持动态数组的版本)。

基础语法

=SORT(array,[sort_index],[sort_order],[by_col])

参数说明

参数 是否必填 含义 常用取值
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 为表头)。

按销售额升序

需求:按“销售额”从小到大排序,返回整表。

=SORT(A2:D5,3,1)

说明:第 3 列是销售额,1 表示升序。

按日期降序

需求:按“日期”从新到旧排序。

=SORT(A2:D5,4,-1)

说明:第 4 列是日期,-1 表示降序。

按姓名升序

需求:按“姓名”从 A 到 Z(中文按拼音顺序取决于系统/区域设置)。

=SORT(A2:D5,1,1)

多列组合排序

SORT 本身是单关键字排序;多关键字建议用 SORTBY。 如果你只想在本文里理解“基础排序逻辑”,可以先记住:多关键字排序的标准做法是:

=SORTBY(A2:D5, C2:C5, -1, D2:D5, 1)

说明:先按销售额降序(C 列),再按日期升序(D 列)。

按列方向排序

需求:对一行标题或横向数据进行排序(按列排序)。假设要排序区域为 A1:H1,并按第 1 行排序:

=SORT(A1:H1,1,1,TRUE)

说明:by_col=TRUE 表示“按列排序”,sort_index=1 表示按第 1 行作为排序依据。

总结

SORT 的核心价值是:把排序结果作为一个可更新的输出数组,特别适合做“动态报表视图”。使用时抓住 4 点就够了:

  • array:要排序的范围
  • sort_index:按哪一列/行排(相对 array)
  • sort_order:升序 1、降序 -1
  • by_col:默认按行排序;需要横向排序时设 TRUE

如果你需要多关键字排序,把 SORT 作为入门理解即可,实际工作中优先用 SORTBY 来一步到位。