You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按单元格内性别字段排序单列分隔数据(非首字符排序)

问题描述

现有单列数据,每个单元格包含姓名和性别,以句点分隔,原始数据如下:

Juma. Male
    Ashura. Female
    Asha. Female
    Zachariah. Male
    John. Male
    Zainabu. Female

需要按性别排序,要求所有女性先按姓名字母顺序排列,之后是按姓名字母顺序排列的男性,预期结果如下:

Asha    Female
Ashura  Female
Zainabu Female
John    Male
Juma    Male
Zachariah   Male
实现方法

方法一:Excel可视化操作

  1. 拆分数据列:选中目标数据列,点击「数据」选项卡的「分列」功能,选择「分隔符号」模式,勾选「其他」并输入.,完成后姓名和性别会被拆分为两列(记得手动清理性别列开头的空格)。
  2. 设置多条件排序:选中所有数据,点击「数据」选项卡的「排序」按钮:
    • 第一排序规则:选择性别列,排序依据为「单元格值」,次序选择「自定义序列」,输入Female,Male并保存,以此作为排序优先级。
    • 第二排序规则:选择姓名列,排序依据为「单元格值」,次序设为「升序」。
  3. 合并列(可选):如果需要恢复单列格式,用公式=A2&" "&B2(根据实际列号调整)合并姓名和性别列即可。

方法二:Python脚本批量处理

如果需要代码自动化处理,可使用以下脚本:

# 原始数据
raw_data = [
    "    Juma. Male",
    "    Ashura. Female",
    "    Asha. Female",
    "    Zachariah. Male",
    "    John. Male",
    "    Zainabu. Female"
]

# 拆分并清理数据
processed_list = []
for item in raw_data:
    clean_item = item.strip()
    name, gender = clean_item.split('. ')
    processed_list.append((name, gender))

# 按规则排序:Female优先,再按姓名升序
sorted_result = sorted(processed_list, key=lambda x: (x[1] != 'Female', x[0]))

# 输出结果
for name, gender in sorted_result:
    print(f"{name}\t{gender}")

运行脚本后会直接输出符合要求的排序结果。

内容的提问来源于stack exchange,提问作者secondson chanel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:02:09