如何在Google Sheets中按event_type分组获取最新日期的整行数据
解决Google Sheets按分组获取最新整行数据的问题
你遇到的问题是因为Google Sheets的QUERY函数遵循SQL分组规则:SELECT子句中的列要么出现在GROUP BY里,要么被聚合函数(比如MAX、MIN)包裹。直接添加event_id或event_name会违反这个规则,导致报错。
下面提供两种可行的解决方案,都能获取每个event_type组中日期最新的完整行数据:
方法1:使用QUERY子查询关联
通过将event_type和对应组的最大日期拼接成唯一标识,筛选原表中匹配该标识的行:
=QUERY(data!A:D, "select A,B,C,D where B&D in (select B&max(D) from data!A:D group by B)", 1)
- 子查询
select B&max(D) from data!A:D group by B会生成每个event_type与对应最大日期的拼接字符串(比如critical_event2021/12/25) - 外层查询筛选原表中
event_type+date_col等于这些拼接值的行,从而得到每组最新日期的完整数据
方法2:使用FILTER+MAXIFS函数
这种方式更直观,利用MAXIFS计算每个event_type对应的最大日期,再用FILTER筛选出匹配的行:
=FILTER(data!A:D, data!D:D=MAXIFS(data!D:D, data!B:B, data!B:B))
MAXIFS(data!D:D, data!B:B, data!B:B)会对每行的event_type,计算该组的最大日期FILTER会保留所有日期等于对应组最大日期的行
最终结果(针对你的示例数据)
| event_id | event_type | event_name | date_col |
|---|---|---|---|
| 456 | critical_event | 事件B | 2021/12/25 |
| 888 | medium_event | 事件D | 2021/12/16 |
内容的提问来源于stack exchange,提问作者impy
相关产品推荐
相关产品推荐

