按字母顺序对字符串列排序
按字母顺序对字符串列排序
嘿,我来帮你搞定这个多列名字排序的问题!看你附的图,核心就是把三列里的所有名字先汇总到一起,按字母顺序排好,再重新分成三列对吧?给你几个不同场景的解决方案,按需选就行:
如果你用Excel/Google Sheets(最常用的办公场景)
- 合并所有名字到一列:
- Excel里:手动把A、B、C三列的所有内容复制粘贴到新的一列(比如D列),记得跳过空行;
- Google Sheets更省心,直接在空白单元格输入
=FLATTEN(A:C),一键把三列数据平铺成一列,自动跳过空值~
- 按字母排序:选中这列合并好的数据,点击「数据」选项卡,选择「排序」(Excel)或者「排序范围」(Google Sheets),选升序(A-Z)就搞定排序了;
- 拆分回三列:排序完成后,选中整列,按总数量拆分到新的三列里。比如总共有3000个名字,就每1000行分一列,Excel可以用「数据」>「分列」(选固定宽度),Google Sheets也有类似的拆分功能。
如果你用Python处理(数据量超大,办公软件卡顿的情况)
如果几千行数据用办公软件有点卡,或者你想以后自动化处理这类任务,可以用Pandas写个简单脚本:
import pandas as pd # 替换成你的表格文件路径,支持.xlsx或.csv格式 df = pd.read_excel("你的名字表格.xlsx") # 合并三列数据,同时去掉空值 all_names = pd.concat([df.iloc[:, 0], df.iloc[:, 1], df.iloc[:, 2]]).dropna() # 按字母顺序升序排序 sorted_names = all_names.sort_values(ascending=True) # 把排序后的名字重新分成三列,自动适配剩余行数 total_count = len(sorted_names) cols = 3 rows = total_count // cols + (1 if total_count % cols != 0 else 0) result_df = pd.DataFrame(sorted_names.values.reshape(rows, cols)) # 保存成新的Excel文件 result_df.to_excel("排序后的名字表格.xlsx", index=False)
这样操作完,就能得到你右边图里那种整齐的按字母排序的三列啦!
备注:内容来源于stack exchange,提问作者Peter Thome




