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

Google Sheets如何合并6列数字日期为带最新日期的两列并动态更新

Google Sheets三对编号-日期列动态合并的实现方案

需求描述

原始数据为连续6列,列顺序按「编号、日期」重复3组排布,需要生成2列动态结果:

  • 自动提取全表所有出现过的唯一编号,随源数据增删改自动同步
  • 匹配每个编号关联的所有日期中数值最大(最新)的记录值,源数据变动时自动重算

原始示例数据:

编号日期编号日期编号日期
11/12/2122/20/2133/5/21
22/12/2132/27/2144/1/21
31/15/2041/20/2113/30/21
41/4/2112/25/2124/2/21

预期输出效果:

编号日期
13/30/21
24/2/21
33/5/21
44/1/21

原有尝试的偏差点

  • 公式=query('scba fill practise'!A:G,"select A, max(G) group by A") 仅覆盖了第一组的编号列、第三组后方的空列,完全遗漏了中间两组配对数据,无法计算所有记录对应的最新日期
  • 公式=UNIQUE({A3:A;C3:C;E3:E}) 仅完成了唯一编号的提取,没有关联每个编号对应的日期匹配逻辑,无法生成完整的两列结果

可直接落地的实现公式

在结果区域的首个单元格输入以下单公式,即可一次性生成全部动态结果,无需拆分多列计算:
=QUERY({A:B;C:D;E:F}, "select Col1, max(Col2) where Col1 is not null group by Col1 order by Col1 label Col1 '编号', Col2 '日期'", 0)

公式运行逻辑

  • 通过数组纵向拼接语法{A:B;C:D;E:F},将横向排布的3组「编号-日期」列合并为统一的两列数据集,全程不需要使用CONCATENATE函数
  • 嵌套QUERY函数对拼接后的统一数据集做聚合计算:按编号分组提取每个分组下的最大日期值,同时过滤空单元格、按编号升序排列、自动匹配表头名称
  • 公式引用全列范围,源数据的新增、修改、删除操作会自动触发结果重算,完全满足动态更新要求

调整提示

  • 如果原表存在固定表头行,需要将公式内的全列范围替换为实际数据起始行(例如数据从第2行开始则写为A2:B;C2:D;E2:F),避免表头内容被纳入聚合计算
  • 若日期列计算结果异常,需要提前将对应列的单元格格式设置为「日期」类型,确保所有日期值可被识别为可计算的数值格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 14:36:09