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

Excel:基于三列识别重复项并保留最早日期记录求助

保留最早日期的唯一记录解决方案

需求说明

需筛选出CustomerName、ZipCode和DOB完全一致的重复记录,仅保留其中Date最早的条目。比如示例表格里,第二条John Smith的记录日期更晚,需要移除。此前尝试用MAXIFS()函数效果不理想。

示例数据

TransIDDateCustomerNameZipCodeDOBEmail
5X4204/13/18John Smith9021011/23/87johnsmith@gmail.com
7YC501/27/21John Smith9021011/23/87johnsmith@gmail.com
28N211/17/20Mary Jones5645105/16/91maryjones@gmail.com

可行解决方法

方法1:Power Query(高效推荐)

  1. 选中数据区域,点击「数据」选项卡→「从表格/区域」,将数据导入Power Query编辑器。
  2. 选中CustomerName、ZipCode、DOB三列,右键点击→「分组依据」。
  3. 分组设置:
    • 新列名:自定义为「最早日期记录」
    • 操作:选择「所有行」
    • 分组依据:保持选中的三列不变
  4. 添加自定义列,输入公式:
    Table.SelectRows([最早日期记录], each [Date] = List.Min([最早日期记录][Date]))
    
  5. 展开自定义列的所有字段,删除多余分组列,最后点击「关闭并上载」,即可得到仅保留最早日期的唯一记录。

方法2:辅助列+筛选

  1. 在数据右侧插入辅助列,输入公式:
    =MINIFS(B:B,C:C,C2,D:D,D2,E:E,E2)
    
    该公式会返回当前行对应的CustomerName、ZipCode、DOB组合下的最小日期。
  2. 筛选辅助列值等于对应Date列值的行,这些就是需要保留的最早日期记录,复制到新区域即可。

方法3:排序+高级筛选

  1. 先按CustomerName、ZipCode、DOB排序,再按Date升序排序。
  2. 点击「数据」选项卡→「高级」筛选,选择「将筛选结果复制到其他位置」。
  3. 设置列表区域为数据范围,条件区域留空,勾选「选择不重复的记录」,指定复制位置后确认即可(排序后高级筛选会保留每组的第一条,即日期最早的记录)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:05:17