如何用Google Sheets的Query()生成按列分组的动态小计?
在Google Sheets中用Query函数生成带动态小计的分组表格
可以通过数组公式+Query函数组合实现,完全不需要App Script或数据透视表,能自动适应DATA中行数和货币种类的动态变化。假设你的DATA表中:
- A列为货币类型(如USD、EUR)
- B列为对应金额(数值型)
直接在目标单元格输入以下公式即可生成带小计的Report B:
={ QUERY(DATA!A:B, "SELECT A, SUM(B) WHERE A IS NOT NULL GROUP BY A LABEL SUM(B) '金额小计'", 1); {"总计", IFERROR(QUERY(DATA!B:B, "SELECT SUM(B) WHERE B IS NOT NULL LABEL SUM(B) ''", 1), 0)} }
公式拆解:
- 分组统计部分:第一个
QUERY函数筛选非空的货币类型,按A列分组并计算B列的总和,同时给求和列设置标签金额小计,最后参数1表示包含表头。 - 总计行拼接:用数组符号
{}将分组结果和总计行纵向拼接。总计行的QUERY单独计算B列所有非空值的总和,LABEL SUM(B) ''去掉默认的求和标签,IFERROR处理无数据时返回0避免错误。 - 动态适配:Query会自动识别DATA中新添加的货币种类和行数,无需手动调整公式范围。
如果你的DATA列位置不同(比如货币在C列、金额在E列),只需修改公式中的列引用(把A:B改成C:E,B:B改成E:E)即可。
内容的提问来源于stack exchange,提问作者S Suen
相关产品推荐
相关产品推荐

