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

如何在Google Sheets Query中按多列分组并获取对应最新日期的数值列?

解决Google Sheets分组后关联对应列的问题

问题说明

现有数据:

Date(A)Color(B)Type(C)Number(D)
1/1/25WhiteHorse12
2/1/25WhiteHorse55
1/1/25BlueHorse76
1/2/25BlueDog31

需要按Color(B)和Type(C)分组,保留每组中最新日期对应的完整行(包含Number(D)列),期望输出:

Date(A)Color(B)Type(C)Number(D)
2/1/25WhiteHorse55
1/1/25BlueHorse76
1/2/25BlueDog31

原Query语句仅能获取分组后的最大日期和B、C列,无法关联对应D列,以下是两种可行解决方案:


方案1:使用FILTER+MAXIFS

直接筛选出每个分组中日期等于该组最大日期的行:

=FILTER(A:D, A:A=MAXIFS(A:A, B:B, B:B, C:C, C:C))

原理

  • MAXIFS(A:A, B:B, B:B, C:C, C:C):为每行计算其所在Color(B)-Type(C)分组的最大日期
  • FILTER(A:D, ...):筛选出Date(A)等于对应分组最大日期的完整行

方案2:使用QUERY+虚拟列

先为原数据添加「分组最大日期」虚拟列,再筛选匹配的行:

=QUERY(
  {A:D, ARRAYFORMULA(MAXIFS(A:A, B:B, B:B, C:C, C:C))},
  "select Col1, Col2, Col3, Col4 where Col1=Col5 and Col3 is not null",
  1
)

原理

  1. {A:D, ARRAYFORMULA(...)}:将原数据与每个分组的最大日期合并为新数组(第5列为虚拟列)
  2. Query语句筛选Date(A)(Col1)等于分组最大日期(Col5)的行,同时排除Type(C)为空的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:23:23