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

如何在Google Sheets单个Query函数中使用avg与datediff?

Google Sheets 计算最近20条有效记录的日期差平均值

报错原因

你直接使用 avg(datediff(F, E)) 触发解析错误,核心原因是Google Sheets的QUERY函数语法规则限制:聚合函数(如AVG)内部不能直接嵌套DATEDIFF这类计算型函数,因此无法通过添加符号修改单条QUERY语句实现需求。

可行方案

你的嵌套QUERY方案是完全正确的,它通过内层QUERY先筛选出最近20条有效记录的日期差,再用外层QUERY计算平均值,代码如下:

=QUERY(QUERY(mytablewithdates[#ALL]; "Select datediff(F, E) where E is not null and F is not null order by F desc limit 20"; 1); "Select avg(Col1)")

如果你的数据区域没有表头,可以把内层QUERY的第三个参数改为0,避免把第一条数据误当作表头处理:

=QUERY(QUERY(mytablewithdates[#ALL]; "Select datediff(F, E) where E is not null and F is not null order by F desc limit 20"; 0); "Select avg(Col1)")

另外,也可以用FILTER+INDEX+DATEDIFF+AVERAGE的组合实现,无需嵌套QUERY:

=AVERAGE(DATEDIFF(INDEX(SORT(FILTER({E:F}; NOT(ISBLANK(E))*NOT(ISBLANK(F))); 1; FALSE); SEQUENCE(20); 2); INDEX(SORT(FILTER({E:F}; NOT(ISBLANK(E))*NOT(ISBLANK(F))); 1; FALSE); SEQUENCE(20); 1)))

这个公式逻辑是:先筛选出E、F列均不为空的记录,按F列降序排序后取前20条,计算每条的日期差,最后求平均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:16:07