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

如何用ARRAYFORMULA结合SUMIFS实现谷歌表格动态数据汇总?

Google Sheets 动态汇总表:ARRAYFORMULA + SUMIFS 日期匹配问题解决

问题场景

基于StockSoldDetails原始数据表生成动态汇总表:

  • 行日期标题从AgentWorkDays标签页动态获取
  • 列产品ID标题从Products标签页动态获取

手动使用SUMIFS可实现单格数据计算(如C2单元格计算对应日期B2+产品ID C1的销量总和),但嵌套ARRAYFORMULA后,仅能复用B2日期的计算结果,无法匹配各行日期生成对应值,核心问题是混合引用(如C$1)无法被ARRAYFORMULA自动迭代列方向数组。

解决方案

方法1:用BYROW + BYCOL 实现二维矩阵计算

在汇总表起始单元格(如B2)输入以下公式:

=BYROW(AgentWorkDays!A:A, LAMBDA(row_date, 
  BYCOL(Products!A:A, LAMBDA(col_product, 
    SUMIFS(StockSoldDetails!C:C, StockSoldDetails!A:A, row_date, StockSoldDetails!B:B, col_product)
  ))
))
  • BYROW遍历AgentWorkDays的每一行日期
  • BYCOL遍历Products的每一列产品ID
  • 嵌套的SUMIFS自动匹配当前行日期与当前列产品ID,生成完整汇总矩阵

方法2:用ARRAYFORMULA + 转置数组实现匹配

若坚持使用ARRAYFORMULA,需将列标题转换为数组以避免混合引用限制:

=ARRAYFORMULA(
  IFERROR(
    SUMIFS(
      StockSoldDetails!C:C,
      StockSoldDetails!A:A, AgentWorkDays!A:A,
      StockSoldDetails!B:B, TRANSPOSE(Products!A:A)
    )
  )
)
  • TRANSPOSE(Products!A:A)将产品ID列转成行数组,与日期列形成二维匹配关系
  • ARRAYFORMULA自动迭代每一组「日期+产品ID」组合,计算对应销量总和
  • IFERROR用于处理空白行/列的错误显示

优化提示

  • 建议使用具体数据范围(如AgentWorkDays!A2:A100)替代整列引用,提升公式计算性能
  • 若销量列存储为文本格式,需用VALUE(StockSoldDetails!C:C)转换后再求和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:45:57