MICROSOFT

EP05. “SORT Function SORT 函数”

首页 Microsoft 工具 Excel · Data Analysis · Sort · EP05
约 4 分钟· #EP05#Excel#Sort
🔒 登录后可标记已读
  • SORT 函数不用打开排序对话框,一条公式就能排序,结果自动溢出(spilling)到旁边单元格
  • 更关键的是它完全不碰原始数据——原数据长什么样还是什么样,排序结果只出现在公式所在的位置
  • 基础用法、按不同列排序、降序、多列排序,以及跟 SORTBY 的搭配,这几种场景都整理在这篇
  • 学完能用一条公式做到动态、随原数据自动更新的排序

重点内容


适用版本

需要 Excel 365 或 Excel 2021(旧版本没有 SORT 函数,只能用 Data → Sort 传统排序)。


基础用法

示例数据 A2:D15 是一份含姓名、部门、销售额等字段的记录表。

  1. 在 F2 输入 =SORT(A2:D15)
  2. 结果自动向下、向右溢出填满多个单元格(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 函数一条公式排序,结果随原数据自动更新
  • ✅ 用第二、第三参数控制按哪一列排、升序还是降序
  • ✅ 判断什么时候该用 SORT、什么时候该改用 SORTBY

常见错误

  • 忘记 SORT 是动态数组函数,在结果溢出范围内手动插入内容,会导致 #SPILL! 错误
  • 多列排序时数组常量里的列号和顺序参数数量对不上(比如列号写了两个、顺序只写了一个),公式会报错
  • 以为 SORT 会改动原始数据 A2:D15,实际上原数据完全没变,SORT 只是在公式所在的位置生成一份排序后的副本

Sources

Blog / Website:

  1. SORT function