Google Sheets 如何使用QUERY函数创建带累计值的自动表格

解决方案
以下两种方案均适配Google Sheets环境,可根据使用习惯选择:
方案1:基于现有QUERY透视表直接生成累计值
你已经用QUERY生成了右上角的单日金额透视表的前提下,直接用以下溢出公式即可一键生成累计表,不需要调整原有QUERY逻辑:
- 假设现有QUERY透视表的结构为:行是支出分类,列是日期,数值区域(排除表头行和分类列)范围为
G3:J6 - 在累计表第一个数值单元格输入公式,会自动填充所有累计值:
=BYROW(G3:J6, LAMBDA(row, SCAN(0, row, LAMBDA(a,c, IF(c="",,a+c)))))
- 公式逻辑:逐行遍历所有单日数值,对每个分类的金额按日期从左到右滚动累加,空值会自动跳过不参与计算。
方案2:从原始数据直接生成累计透视表
不需要依赖中间QUERY结果,一步到位输出累计值表格:
- 假设原始数据结构:A列为支出分类、B列为日期、C列为金额
- 先单独提取不重复的分类作为累计表行表头,提取不重复的日期升序排列作为列表头
- 在第一个数值单元格输入以下自动溢出公式即可:
=MAKEARRAY(COUNTA(F3:F6), COUNTA(G2:J2), LAMBDA(r,c, SUMIFS(C:C, A:A, INDEX(F3:F6,r), B:B, "<="&INDEX(G2:J2,c))))
- 其中
F3:F6是提取的不重复分类范围,G2:J2是提取的升序日期范围,可根据实际表格位置调整。
内容的提问来源于stack exchange,提问作者Bryan
相关产品推荐
相关产品推荐

