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

Google Sheets按第二列最早日期去重 支持新增行校验的公式方法

Google Sheets 按姓名保留最早日期动态去重方案

前置说明

假设你存放原始数据的工作表名称为原始数据,表内第1行为表头(A1=姓名,B1=日期),实际数据从第2行开始,A列存姓名、B列存可识别格式的日期值。

操作步骤

打开用于存放去重结果的目标工作表,在A1、B1单元格分别输入表头「姓名」「最早对应日期」,选中A2单元格,粘贴以下公式即可自动生成全量去重结果:

=LET(
  valid_data, FILTER('原始数据'!A2:B, '原始数据'!A2:A<>""),
  name_list, INDEX(valid_data,,1),
  date_list, INDEX(valid_data,,2),
  uniq_name, UNIQUE(name_list),
  first_date, MAP(uniq_name, LAMBDA(x, MIN(FILTER(date_list, name_list=x)))),
  HSTACK(uniq_name, first_date)
)

公式逻辑说明

  • 自动过滤原始表中A列姓名为空的无效行,后续原始表新增行只要A列填入姓名,就会自动纳入计算范围,无需手动调整公式引用范围
  • 提取原始表中所有不重复的姓名作为结果基础
  • 逐一对每个不重复姓名匹配其对应的所有日期,通过MIN函数取最早的日期值
  • 最终将姓名和对应最早日期横向拼接为两列结果,自动溢出填充所有行,原始表数据更新时结果会同步自动刷新

注意事项

  • 请确保原始表B列的日期为Google Sheets可识别的日期格式:若为文本格式请先选中B列,通过顶部菜单「格式-数字-日期」转换为标准日期格式,否则日期最小值计算会出错
  • 如果你的原始工作表名称不是原始数据,将公式中所有'原始数据'替换为实际的工作表名称即可,例如原表名为Sheet1则替换为'Sheet1'
  • 公式所在的目标工作表A、B列从第2行开始不要手动输入任何内容,否则会阻断公式的自动溢出填充,导致结果显示不全

如果你后续在原始表新增了C列及以后的关联字段,需要把对应字段同步带到去重结果中,可以将A2的公式替换为以下版本,记得把引用范围A2:B改成你实际的列范围即可:

=LET(
  valid_data, FILTER('原始数据'!A2:C, '原始数据'!A2:A<>""),
  name_list, INDEX(valid_data,,1),
  date_list, INDEX(valid_data,,2),
  uniq_name, UNIQUE(name_list),
  FILTER(valid_data, COUNTIFS(uniq_name, name_list, date_list, "<"&date_list)=0)
)

这个版本会自动保留每个姓名对应最早日期的整行数据,支持任意多列关联字段同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:03:21