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

Google Sheets多列间隔求和 批量汇总107个活动数据方案咨询

多活动同结构数据批量求和方案

方案1:纯函数方案(无代码,自动适配新增活动)

根据你描述的同格式活动块并排存放的结构,默认每个活动固定占3列、同指标列间隔3列的规则,直接用内置函数即可实现全量汇总:

单列指标汇总公式

对应汇总表的第一个指标列,在第二行单元格输入以下公式后下拉即可:
=SUM(FILTER(data!2:2, MOD(COLUMN(data!2:2), 3) = 2))
参数调整说明:

  • 公式中的3为单个活动占用的总列数,可根据实际结构调整
  • =2为当前指标在单个活动块中的列偏移余数,第二个指标对应=0、第三个指标对应=1,根据你要统计的指标修改即可

整表自动生成公式

无需逐列写公式,直接在汇总表A2单元格输入以下公式,可一次性生成所有日期、所有指标的全量汇总结果:
=MAKEARRAY(COUNTA(data!A2:A), 3, LAMBDA(r, c, IF(c=1, INDEX(data!A:A, r+1), SUM(FILTER(OFFSET(data!A1, r, 1, 1, 321), MOD(SEQUENCE(1, 321, 1, 1), 3)=c-1)))))
说明:公式中的321为107个活动*3列的总宽度,后续活动数量增加只要修改这个数值即可,所有数据自动计算。

方案2:Apps Script脚本方案(适合大数据量场景)

如果数据量超过函数计算上限,或需要定时自动更新,可使用以下脚本:

function autoConsolidateCampaign() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const dataSheet = ss.getSheetByName('data');
  const targetSheet = ss.getSheetByName('consolidated');
  const rawData = dataSheet.getDataRange().getValues();
  const perCampaignCols = 3; // 单个活动占用列数
  const metricNum = 2; // 除去日期外的指标数量
  const output = [];
  // 逐行统计汇总
  for (let rowIdx = 1; rowIdx < rawData.length; rowIdx++) {
    const currentRow = rawData[rowIdx];
    const date = currentRow[0];
    const sumMetrics = new Array(metricNum + 1).fill(0);
    sumMetrics[0] = date;
    // 遍历所有活动的指标列
    for (let colIdx = 1; colIdx < currentRow.length; colIdx += perCampaignCols) {
      for (let m = 0; m <= metricNum; m++) {
        sumMetrics[m + 1] += Number(currentRow[colIdx + m] || 0);
      }
    }
    output.push(sumMetrics);
  }
  // 写入结果到汇总表
  targetSheet.getRange(2, 1, output.length, output[0].length).setValues(output);
}

使用说明:

  • 打开Google Sheet后点击「扩展程序」-「Apps Script」,将代码粘贴到编辑器中保存
  • 可设置定时触发器,每天自动更新汇总数据
  • 新增活动无需修改代码,只要保持每个活动的列宽与原有活动一致即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:45:04