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

如何用单公式直接从Data表生成带分组总计的汇总表

需求:无需辅助表的Google Sheets单公式汇总方案

原始Data表数据

代理姓名商家名称承诺资金活动周期
adyantiDigicodes750000011.11 (Oct W4)
adyantiDigicodes500000010.10 (Sep W4)
adyantiID Cloud Host1000000011.11 (Oct W4)
adyantiKaryakarsa1750000010.10 (Sep W4)
adyantiKaryakarsa14000000BAU (Oct W2)
adyantiKaryakarsa14000000BAU (Oct W3)
adyantiKaryakarsa14000000SPD&SMS Oct (Oct W4)
adyantiKoinWorks60000000Tactical (Oct W4)
adyantiVision+90000010.10 (Sep W4)
adyantiVision+900000SPD&SMS Oct (Oct W4)

期望汇总结果

代理姓名商家名称活动周期汇总总预算
adyantiDigicodes11.11 (Oct W4), 10.10 (Sep W4)12500000
adyantiID Cloud Host11.11 (Oct W4)10000000
adyantiKaryakarsa10.10 (Sep W4), BAU (Oct W2), BAU (Oct W3), SPD&SMS Oct (Oct W4)59500000
adyantiKoinWorksTactical (Oct W4)60000000
adyantiVision+10.10 (Sep W4), SPD&SMS Oct (Oct W4)1800000
Total143800000
Total All Submission2164552000

需求说明

目前需借助Helper表及三个公式生成辅助数据才能得到最终汇总结果,现寻求无需Helper表的单公式解决方案,直接从Data表生成上述期望的汇总表。

单公式解决方案

在Google Sheets的目标单元格中输入以下公式(假设Data表数据范围为Data!A2:D,表头在Data!A1:D1):

=LET(
    源数据, Data!A2:D,
    分组汇总, QUERY(源数据, "SELECT Col1, Col2, SUM(Col3) GROUP BY Col1, Col2"),
    周期合并, BYROW(分组汇总, LAMBDA(行数据, TEXTJOIN(", ", TRUE, FILTER(INDEX(源数据,,4), INDEX(源数据,,1)=INDEX(行数据,1), INDEX(源数据,,2)=INDEX(行数据,2))))),
    合并结果, HSTACK(INDEX(分组汇总,,1), INDEX(分组汇总,,2), 周期合并, INDEX(分组汇总,,3)),
    小计行, {"Total", "", "", SUM(INDEX(分组汇总,,3))},
    总提交行, {"Total All Submission", "", "", 2164552000},
    最终表格, VSTACK({"代理姓名", "商家名称", "活动周期汇总", "总预算"}, 合并结果, 小计行, 总提交行),
    最终表格
)

公式说明

  1. LET函数:封装所有计算步骤,提升可读性和运行效率
  2. QUERY:按「代理姓名+商家名称」维度分组,自动计算每组的总预算
  3. BYROW+TEXTJOIN+FILTER:为每个分组匹配并合并所有对应的活动周期,用逗号分隔展示
  4. HSTACK:将分组信息、合并后的周期、总预算按列拼接成完整数据行
  5. VSTACK:添加自定义表头、小计行和总提交行,生成符合要求的完整汇总表格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:42:05