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

如何将多个Google Sheet QUERY公式合并为单条查询语句

Google Sheets 两个QUERY公式合并方案

错误原因

你之前的写法无法运行有两个核心问题:

  • 语法顺序不符合QUERY的类SQL规则:WHERE子句必须放在所有SELECT后面的字段/计算表达式之后,不能插在SELECT的字段列表中间
  • 返回维度不匹配:Max(C)/Min(D)/Sum(E)是聚合计算,默认返回1行统计结果;SELECT B WHERE DAY(A)<=3返回若干行符合条件的B列值,二者直接并列在SELECT中会因行数不匹配报错。

可用合并公式

根据你实际需要的结果逻辑选择对应公式即可:

方案1:对A列日期天数≤3的筛选子集,按B列分组统计

如果你需要的是筛出DAY(A)<=3的行后,按B列维度分别计算对应的C最大值、D最小值、E总和,用这个公式:

=QUERY(A:E,"SELECT B, Max(C), Min(D), Sum(E) WHERE DAY(A)<=3 GROUP BY B")

方案2:纵向拼接结果(先返回符合条件的B列,末尾追加聚合统计值)

如果你需要先列出所有DAY(A)<=3的B列值,再在结果最后一行显示这批数据的C最大值、D最小值、E总和,用这个公式:

={
  QUERY(A:E,"SELECT B WHERE DAY(A)<=3");
  QUERY(A:E,"SELECT Max(C),Min(D),Sum(E) WHERE DAY(A)<=3 LABEL Max(C)'',Min(D)'',Sum(E)''")
}

说明:公式里的LABEL子句作用是去掉聚合列默认生成的长表头,不需要可以删除。

方案3:横向拼接结果(全表聚合值+符合条件的B列同屏显示)

如果你需要在第一行显示全表范围的C最大值、D最小值、E总和,旁边列同步显示所有DAY(A)<=3的B列值,用这个公式:

={
  QUERY(A:E,"SELECT Max(C),Min(D),Sum(E)"),
  QUERY(A:E,"SELECT B WHERE DAY(A)<=3")
}

说明:该公式中聚合值仅在结果第一行显示,其余行的聚合列留空。如果需要聚合值对所有B列行重复显示,把第一个QUERY替换为IFERROR(SEQUENCE(COUNTA(QUERY(A:E,"SELECT B WHERE DAY(A)<=3"))/1)^0*QUERY(A:E,"SELECT Max(C),Min(D),Sum(E)"))即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:24:33