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

Google Sheets按PIN、Reason分组求和及时间范围筛选需求

Google Sheets 按PIN+Reason汇总并支持时间筛选的实现方案

核心方案:使用QUERY函数(适配6万行大数据量)

假设你的数据列对应关系为:

  • A列:PIN
  • B列:Reason
  • C列:Net Adj
  • D列:Cost Net
  • E列:日期(用于时间筛选)

先设置两个单元格作为时间筛选入口(比如G1填开始日期,H1填结束日期),然后用以下公式生成带筛选的汇总表:

=QUERY(A2:E, "SELECT A, B, SUM(C), SUM(D) WHERE E >= date '"&TEXT(G1,"yyyy-mm-dd")&"' AND E <= date '"&TEXT(H1,"yyyy-mm-dd")&"' GROUP BY A, B LABEL SUM(C)'Net Adj 汇总', SUM(D)'Cost Net 汇总'", 1)

公式拆解:

  • SELECT A, B, SUM(C), SUM(D):指定要提取的维度(PIN、Reason)和需要汇总的数值列(Net Adj、Cost Net)
  • WHERE E >= date ... AND E <= date ...:通过日期列筛选指定时间范围,TEXT(G1,"yyyy-mm-dd")是为了把单元格日期转换成QUERY函数识别的标准格式
  • GROUP BY A, B:按PIN和Reason的组合进行分组汇总
  • LABEL ...:给汇总后的数值列设置易读的表头名称
  • 最后参数1表示原始数据的第一行是表头,QUERY会自动识别

补充场景:确保包含所有唯一PIN(即使无对应数据)

如果你已经通过=UNIQUE(A2:A)在F列生成了唯一PIN列表,想要确保所有PIN都出现在汇总表中(哪怕该PIN在筛选时间内没有数据),可以用以下数组公式实现左连接:

=ARRAYFORMULA(
  LET(
    unique_pins, F2:F,
    unique_reasons, UNIQUE(B2:B),
    query_result, QUERY(A2:E, "SELECT A&B, B, SUM(C), SUM(D) WHERE E >= date '"&TEXT(G1,"yyyy-mm-dd")&"' AND E <= date '"&TEXT(H1,"yyyy-mm-dd")&"' GROUP BY A, B", 0),
    combined_keys, unique_pins&"|"&TRANSPOSE(unique_reasons),
    lookup_result, IFNA(VLOOKUP(combined_keys, {INDEX(query_result,,1), query_result}, {2,3,4}, FALSE)),
    HSTACK(unique_pins, TRANSPOSE(unique_reasons), IFNA(lookup_result, 0))
  )
)

这个公式会生成所有PIN+Reason的组合,无数据的汇总列显示0。

为什么不用SUMPRODUCT/INDEX+MATCH?

6万行数据量下,SUMPRODUCT会因重复计算导致性能卡顿,INDEX+MATCH很难实现多维度分组汇总,而QUERY是Google Sheets专门为大数据量聚合设计的函数,效率和易用性都更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:24:52