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

如何在Excel中删除重复行并保留指定第N次出现的记录

自定义保留Excel重复组内的指定行(而非首次出现)

针对你需要按分组(如A列的a/b/c)保留组内第N条记录,或查找特定值的需求,提供两种实用方法:

方法一:用Excel公式实现 适合中小数据量

假设原始数据在A:B列(A列是分组键,B列是内容),步骤如下:

  • 为每组生成行序号
    在C2单元格输入公式(假设表头在A1/B1):

    =COUNTIF($A$2:A2, A2)
    

    下拉填充到所有数据行,这样同组的行会被标记为1、2、3...(比如a组的三行对应1、2、3)。

  • 提取唯一分组名
    复制A列数据到D列,选中D列→点击「数据」选项卡→「删除重复值」,只保留唯一的a、b、c。

  • 提取每组指定行的内容
    要保留每组第2条记录,在E2输入公式:

    =IFERROR(INDEX($B:$B, MATCH(1, ($A:$A=D2)*($C:$C=2), 0)), "?")
    
    • 如果你用的是Excel 365/2021,直接回车即可;旧版本需要按Ctrl+Shift+Enter作为数组公式。
    • 要保留第3条,把公式里的2改成3就行;如果要查找特定值(比如Banana),把($C:$C=2)换成($B:$B="Banana")。
      下拉填充后,就能得到你要的结果:a对应Banana,b对应Banana,c对应?。

方法二:用Power Query实现 适合大量数据,更灵活

Power Query能批量处理数据,步骤如下:

  • 选中原始数据区域→点击「数据」选项卡→「从表格/区域」(Excel 2016及以后可用),进入Power Query编辑器。

  • 按分组键分组
    点击「转换」选项卡→「分组依据」,设置:

    • 分组依据:选择A列
    • 新列名:自定义
    • 操作:选择「所有行」
      点击确定后,每个分组会对应一个包含组内所有行的列表。
  • 添加自定义列提取指定行
    点击「添加列」选项卡→「自定义列」,输入公式:

    = try List.Range([自定义], 1, 1){0}[B] otherwise "?"
    
    • 解释:List.Range([自定义],1,1)取组内第2条记录(Power Query是0索引,1对应第2个元素);{0}[B]提取该记录的B列值;try...otherwise处理组内不足N条的情况,返回?。
    • 要取第3条,把1改成2;要查找特定值(比如Banana),可以把公式换成= try List.Select([自定义], each [B] = "Banana"){0}[B] otherwise "?"。
  • 加载回Excel
    删除多余的「自定义」列,点击「主页」选项卡→「关闭并上载」,结果就会导入到新工作表中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:45:37