如何将Excel列表按字母顺序排序并设置对应字母为分组表头
Excel按首字母分组插入字母表头操作方法
你可以根据使用频次选择以下两种方案,不用写复杂宏就能快速实现需求,最终效果和你提供的示例一致:
方法一:常规手动操作(适合所有Excel版本,单次使用最快)
- 先加辅助列提取首字母:在姓名列旁插入空白列,首个单元格输入公式
=LEFT(A2,1)(A2替换为你第一个姓名所在的单元格),下拉填充所有行,即可提取所有姓名的首字母。如果是中文姓名需要按拼音首字母排序,这一步可以把公式换成=LOOKUP(CODE(A2),45217+{0,36,544,1101,1609,1793,2080,2560,2902,3845,4107,4679,5154,5397,5405,5689,6170,6229,7001,7481,7763,8472,9264},{"A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"}),直接得到拼音首字母。 - 排序:选中所有数据区域,点击「数据」选项卡→「排序」,首要关键字选刚做的辅助列,次序选「升序」;如果是中文姓名,点击排序框里的「选项」,勾选「拼音排序」再确定,所有内容就会按首字母顺序排列。
- 批量插入表头:按Ctrl+F调出查找框,勾选「单元格匹配」,查找内容输入A,点击「查找全部」后按Ctrl+A选中所有A对应的结果,右键任意选中单元格→「插入」→「整行」,就能在所有A开头的姓名上方插入空行,在空行的姓名列位置输入A作为表头。
- 依次重复查找B、C……Z插入对应表头,完成后删掉辅助列即可。
方法二:Power Query 自动化方案(适合需要频繁更新名单的场景)
一次设置后后续只要刷新就能自动生成结果,不用重复操作:
- 选中你的原始员工名单数据区域,点击「数据」选项卡→「从表格/区域」,导入Power Query编辑器
- 点击「添加列」→「自定义列」,公式输入
=Text.Start([姓名],1)(中文姓名需要拼音首字母的话可以提前在Excel里用上面的公式生成首字母列再导入),得到首字母列 - 选中首字母列,点击「升序排序」
- 点击「转换」→「分组依据」,分组依据选首字母列,新列名填「分组内容」,操作选「所有行」,点击确定
- 再次添加自定义列,公式输入
=Table.InsertRows([分组内容],0,{[姓名 = [首字母]]}),给每个分组最顶部插入首字母表头行 - 删掉首字母列,点击「分组内容」列右上角的展开按钮,取消勾选「使用原始列名作为前缀」,点击确定
- 最后点击「关闭并上载」,结果就会导出到Excel新工作表中,后续原始名单更新后,只要右键结果表选择「刷新」就能自动生成最新的分组名单。
内容的提问来源于stack exchange,提问作者Wei Xiong Ng
相关产品推荐
相关产品推荐

