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

Google Sheets QUERY函数:多WHERE条件实现列求和

Google Sheets QUERY函数实现同一列双条件求和(单月+12个月)

问题解决思路

由于需要对同一列(F列)应用不同的WHERE筛选条件分别计算求和,单个QUERY无法实现双条件独立筛选,因此采用拆分两个独立QUERY计算后合并结果的方案,完全保留QUERY函数的使用逻辑。

具体实现公式

假设数据集范围为A:F,单元格K2是日期选择器的控制参数,可使用以下数组公式生成报表:

纵向排列结果(单月/12个月各占一行)

={
  "单月求和", QUERY(A:F, "SELECT SUM(F) WHERE F = date '"&TEXT(K2,"yyyy-MM-dd")&"' LABEL SUM(F) ''", 1);
  "12个月求和", QUERY(A:F, "SELECT SUM(F) WHERE F >= date '"&TEXT(EOMONTH(K2,-11),"yyyy-MM-dd")&"' AND F <= date '"&TEXT(K2,"yyyy-MM-dd")&"' LABEL SUM(F) ''", 1)
}

横向排列结果(单月/12个月在同一行)

={
  QUERY(A:F, "SELECT SUM(F) WHERE F = date '"&TEXT(K2,"yyyy-MM-dd")&"' LABEL SUM(F) ''", 1),
  QUERY(A:F, "SELECT SUM(F) WHERE F >= date '"&TEXT(EOMONTH(K2,-11),"yyyy-MM-dd")&"' AND F <= date '"&TEXT(K2,"yyyy-MM-dd")&"' LABEL SUM(F) ''", 1)
}

公式细节说明

  1. 单月求和逻辑:

    • 利用F = date '"&TEXT(K2,"yyyy-MM-dd")&"'精准匹配K2指定日期(因数据集每月仅10日有记录,直接等于即可)
    • LABEL SUM(F) ''移除QUERY默认生成的sum F列标题,让结果更贴合报表需求
  2. 12个月求和逻辑:

    • EOMONTH(K2,-11)计算K2日期向前推11个月的月末日期,确保筛选范围为完整12个月周期
    • 通过F >= ... AND F <= ...锁定过去12个月的所有记录后求和
  3. 数组合并:使用{}将两个QUERY结果按指定方向(纵向用;,横向用,)组合,生成符合要求的报表结构

注意事项

  • 确认F列的日期是Google Sheets可识别的日期格式,而非纯文本,否则QUERY无法正确筛选
  • 如果数据集表头不是第一行,需调整每个QUERY函数的最后一个参数(当前为1,代表表头行数)

内容的提问来源于stack exchange,提问作者D.W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:25:27