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

Google Sheets按B组提取A列最大日期时间的Query函数失效问题

问题

我需要在Google Sheets中按B列分组,提取A列对应的最大日期时间(日期+时间),期望输出每组的最新日期时间。但使用公式=Query(Dati!A1:M,"Select B, Max(A) where B <> '' group by B label max(A) ''",0)后,没有得到正确的MAX结果。

示例数据:

A                       B
09/02/2023, 11:37:44    MARIO
09/02/2023, 11:42:41    MARIO
09/02/2023, 11:48:03    LUCA
09/02/2023, 13:03:06    LUCA
09/02/2023, 13:08:24    MARIO
09/02/2023, 13:15:57    LUCA
09/02/2023, 13:20:25    MARIO
09/02/2023, 13:23:38    MARIO
09/02/2023, 13:30:01    MARIO
09/02/2023, 13:33:36    LUCA
09/02/2023, 13:38:41    LUCA
09/02/2023, 13:41:38    LUCA
09/02/2023, 13:58:50    LUCA
09/02/2023, 14:04:57    LUCA

期望输出:

09/02/2023, 13:30:01    MARIO
09/02/2023, 14:04:57    LUCA
解决方案

方法1:修正Query公式(适配文本格式日期)

如果A列的日期时间是文本格式,Query的Max(A)会按字符串规则排序,而非日期逻辑,导致结果错误。可以先将A列转成日期数值计算最大值,再转回日期格式显示:

=ArrayFormula(QUERY({Dati!B:B, VALUE(Dati!A:A)}, "Select Col1, Max(Col2) where Col1 <> '' group by Col1 label Max(Col2) ''", 0))

设置结果列的格式为日期时间(比如DD/MM/YYYY, HH:MM:SS)即可正常显示。

方法2:用MAXIFS批量输出

先提取B列的唯一分组,再搭配MAXIFS批量计算每组的最大日期时间:

=ArrayFormula(IFERROR({UNIQUE(FILTER(Dati!B:B, Dati!B:B<>"")), MAXIFS(Dati!A:A, Dati!B:B, UNIQUE(FILTER(Dati!B:B, Dati!B:B<>"")))}))

方法3:统一A列为标准日期时间格式

选中A列,点击顶部菜单栏「格式」→「数字」→「日期时间」,将文本格式转成标准日期时间格式,之后直接使用你原来的Query公式就能得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:53