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

如何用Python提取Excel中字母无重叠的唯一行?

提取Excel中满足字母完全唯一条件的行

需求:筛选出letters列中所有字母均未出现在其他行letters列的行,示例数据如下:

idletters
1A,B,G
2B,G
30E
40E,F
21C,D
35K,M

预期输出(C、D、K、M未在其他单元格出现):

idletters
21C,D
35K,M

方法一:公式法(适合中小数据量)

新增辅助列(如C列),在C2单元格输入以下公式,下拉填充:

=SUMPRODUCT(--ISNUMBER(SEARCH(TEXTSPLIT(B2,","),TEXTJOIN(",",TRUE,$B$1:$B$6))))=LEN(TEXTSPLIT(B2,","))
  • 逻辑说明:
    1. TEXTSPLIT(B2,","):将当前行的letters拆分为单个字母
    2. TEXTJOIN(",",TRUE,$B$1:$B$6):合并所有行的letters为一个字符串
    3. SEARCH(...):检查每个拆分出的字母是否在合并字符串中出现
    4. SUMPRODUCT(--ISNUMBER(...)):统计当前行字母的总出现次数,若等于当前行字母数量,说明所有字母仅在本行出现
  • 筛选辅助列为TRUE的行,即为目标结果

方法二:Power Query法(适合数千行大数据量)

  1. 选中数据区域,点击「数据」选项卡 → 「从表格/区域」,导入Power Query编辑器(勾选「我的表格有标题」)
  2. 拆分字母为行:选中letters列 → 「转换」选项卡 → 「拆分列」→ 「按分隔符」,选择逗号,拆分方式选「拆分为行」
  3. 统计字母出现次数:点击「开始」→ 「分组依据」,分组列选letters,新列名设为「出现次数」,操作选择「计数行」,得到字母出现次数表
  4. 筛选目标行:
    • 回到原始数据查询(可通过左侧查询列表切换),再次拆分letters列为行
    • 点击「合并查询」→ 「合并查询作为新查询」,将当前表与字母出现次数表按letters列合并,添加「出现次数」列
    • 筛选「出现次数」列等于1的行,然后点击「分组依据」,分组列选id和原始letters列,操作选「所有行」(或直接合并行)
  5. 点击「关闭并上载」,即可将结果加载回Excel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:13:22