MICROSOFT

EP07. “Alphabetize 按字母顺序排序”

首页 Microsoft 工具 Excel · Data Analysis · Sort · EP07
约 5 分钟· #EP07#Excel#Sort
🔒 登录后可标记已读
  • 基本的 AZ 排序谁都会,但书单、片单这类清单常常还要处理更麻烦的情况
  • 比如要先按类型再按片名排(多级排序),或者「The Matrix」不该乖乖排在 T 开头,而是使用者习惯的 M 开头
  • 多级排序、只按字符串某部分排序、忽略冠词排序、配合 Flash Fill 拆姓氏,这几种进阶场景都整理在这篇
  • 学完能处理电影片单、书单这类需要「多级排序」或「忽略冠词」的字母排序需求

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等);Flash Fill 需要 Excel 2013 及以上。


按多列(多级)字母顺序排序

示例:一份电影列表,先按 Genre(类型)排序,同类型内再按 Title(片名)排序。

  1. 在数据范围内点击任意单元格
  2. Data → Sort & Filter → Sort
  3. 「Sort by」(主要排序键)选择 Genre 列
  4. 点击 Add Level(添加级别)
  5. 「Then by」(次要排序键)选择 Title 列
  6. 点击 OK

[截图:排序对话框 - 主要 + 次要排序键]

结果:电影先按类型分组,同一类型内的片名再按字母顺序排列。


用公式按后缀字符排序

如果排序依据是字符串的最后几个字符(比如产品编号的后缀),可以先用 RIGHT 函数提取出来再排序:

  1. RIGHT(text,num_chars) 提取每个序列号的最后一个(或几个)字符,放到辅助列
  2. 点击该辅助列中任意单元格
  3. Data → Sort & Filter → 点击 AZ(升序)

按字母排序时忽略「A」「An」「The」冠词

片名/书名开头常有冠词,直接排序会把「The Matrix」排到 T 开头,而不是使用者习惯的 M 开头。用公式先剥掉冠词、生成一个排序用的辅助列:

公式思路:用 OR 函数搭配多个 LEFT 函数,判断标题开头是不是「A 」「An 」或「The 」;如果是,就用 FIND 和 MID 函数把冠词部分跳过,只取冠词之后的文字来排序。

  1. 建一个辅助列,输入判断 + 跳过冠词的公式
  2. 对辅助列执行 Data → Sort & Filter → AZ

用 Flash Fill 辅助排序

如果只需要拆出姓氏(Last Name)来排序:

  1. 在新的一列第一格,手动输入第一个人的姓氏
  2. 选中该单元格
  3. Data → Flash Fill(快捷键 Ctrl + E),Excel 会自动辨认规律,把整列姓氏都填出来
  4. 对姓氏列执行 Data → Sort & Filter → AZ

快捷键速查

操作WindowsMac
Flash FillCtrl + ECmd + E

学完你会

  • ✅ 用 Add Level 做多级字母排序(先按类型、再按片名)
  • ✅ 用辅助列公式排除冠词或只按字符串某部分排序
  • ✅ 用 Flash Fill 快速拆出姓氏再排序

常见错误

  • 多级排序时忘记点 Add Level,只设置了主要排序键,导致同一分组内的顺序还是原始顺序、没有二次排序
  • 忽略冠词排序时,公式只判断了「The」,漏掉「A」「An」的情况,导致部分标题还是按冠词排序
  • Flash Fill 生成结果后直接排序,没有检查是否有姓名格式不规则(比如缺姓氏、有中间名)的行被拆错

Sources

Blog / Website:

  1. Alphabetize