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

Google Sheets多工作表按月汇总收支的SUMPRODUCT公式问题求助

解决Google Sheets按月汇总收支并自动更新的问题

修正SUMPRODUCT公式(适合手动维护Month列的场景)

你的原公式报错主要有三个原因:全列引用导致计算冗余、未匹配年份会混淆跨年月度数据、可能存在日期格式不兼容问题。修正后的公式如下:

1. 计算月度总收入(Summary!B2)

=SUMPRODUCT((TEXT(Income!$A$2:$A,"mmmm yyyy")=$A2)*(Income!$C$2:$C))
  • 用$A$2:$A替代全列引用,跳过表头减少计算量;
  • 新增yyyy匹配年份,避免不同年份的同一月份数据被错误汇总;
  • 绝对锁定Income的列引用,下拉公式时不会偏移。

2. 计算月度总支出(Summary!C2)

=SUMPRODUCT((TEXT(Expenditure!$A$2:$A,"mmmm yyyy")=$A2)*(Expenditure!$C$2:$C))

逻辑和总收入公式一致,仅切换数据源工作表。

3. 计算净利润/亏损(Summary!D2)

=B2-C2

直接用当月总收入减总支出即可,下拉后自动适配各行。

注意:需确保Summary的A列(Month)格式为mmmm yyyy(如January 2024),且Income/Expenditure的Date列是真实日期格式(选中列后通过「格式>数字>日期」确认,避免文本型日期导致TEXT函数失效)。

更优动态方案(自动生成所有月份,无需手动维护)

如果希望新增收支数据后,Summary自动生成对应月份的统计结果,推荐使用QUERY函数实现全自动化,无需手动添加Month行:

在Summary的A1单元格输入以下公式(覆盖原有表头,自动生成完整统计表格):

=QUERY(
  {
    QUERY(Income!A2:C, "SELECT TEXT(A,'mmmm yyyy'), SUM(C) WHERE A IS NOT NULL GROUP BY TEXT(A,'mmmm yyyy') LABEL TEXT(A,'mmmm yyyy') 'Month', SUM(C) 'Total Income'"),
    QUERY(Expenditure!A2:C, "SELECT SUM(C) WHERE A IS NOT NULL GROUP BY TEXT(A,'mmmm yyyy') LABEL SUM(C) 'Total Expenses'")
  },
  "SELECT Col1, Col2, Col4, Col2-Col4 WHERE Col1 IS NOT NULL LABEL Col1 'Month', Col2 'Total Income', Col4 'Total Expenses', Col2-Col4 'Net Profit/Loss'",
  1
)
  • 内层两个QUERY分别从Income和Expenditure表按月年分组汇总收支;
  • 外层QUERY合并数据并计算净利润,自动过滤空值,新增数据后实时更新;
  • 自动生成表头和所有有数据的月度行,无需手动维护Month列。

内容的提问来源于stack exchange,提问作者Emmanuel Morrison Affel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:05:00