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

Google Sheets中ARRAYFORMULA+SUMIFS计算异常问题求助

问题解决:多Sheet混合类型数据的SKU库存汇总

原公式问题分析

  1. 类型不匹配漏算:SUMIFS仅统计数值类型单元格,C列中以字符串形式存储的数字会被直接忽略,导致求和结果偏小。
  2. 数组逻辑冲突:ARRAYFORMULA与SUMIFS组合时,用整列$B:$B作为条件数组会触发SUMIFS聚合逻辑异常,无法正确遍历所有SKU的匹配项。

修正后的公式方案

方案1:BYROW+SUMPRODUCT(推荐,处理混合类型更稳定)

=BYROW(B:B, LAMBDA(sku, IF(sku="", "", 
  SUMPRODUCT(--('Inventory Entry'!H:H=sku), IFERROR(VALUE('Inventory Entry'!C:C), 0)) + 
  SUMPRODUCT(--('Inventory Entry - DONE'!H:H=sku), IFERROR(VALUE('Inventory Entry - DONE'!C:C), 0))
)))
  • BYROW:逐行遍历当前表B列的每个SKU,空SKU返回空值,避免无效计算。
  • --('表'!H:H=sku):将SKU匹配的行转换为1(匹配)/0(不匹配),作为求和权重。
  • IFERROR(VALUE(...), 0):强制将C列的字符串/数值统一转为数值,非数字内容(如文本备注)自动转为0,避免求和错误。

方案2:合并表数据后过滤求和

=BYROW(B:B, LAMBDA(sku, IF(sku="", "", 
  SUM(FILTER(IFERROR(VALUE({'Inventory Entry'!C:C; 'Inventory Entry - DONE'!C:C}), 0), 
    {'Inventory Entry'!H:H; 'Inventory Entry - DONE'!H:H}=sku))
)))
  • 先将两个表的C列、H列分别合并,统一转换数值后,用FILTER筛选出匹配当前SKU的行再求和。

验证建议

  1. 取单个异常SKU,用=SUMPRODUCT(--('Inventory Entry'!H:H="异常SKU"), IFERROR(VALUE('Inventory Entry'!C:C),0))单独计算单表结果,确认是否包含所有记录。
  2. 检查C列是否存在隐藏字符(如空格),可先用=TRIM(C2)清理后再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:55:59