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

如何在ARRAYFORMULA中结合SUBTOTAL与IF实现可见行求和?

解决SUBTOTAL结合每行最大值求和的问题
  • 问题原因:SUBTOTAL的第二个参数仅接受实际单元格范围,无法识别IF或ARRAYFORMULA生成的数组结果,因此直接嵌套会触发报错。

  • 方案1:使用辅助列

    1. 在空白列(比如O列)的O3单元格输入公式:=IF(B3>N3,B3,N3),下拉填充到所有行(或用=ARRAYFORMULA(IF(B3:B>N3:N,B3:B,N3:N))批量生成)
    2. 再用=SUBTOTAL(109,O3:O)求和,该公式会自动忽略隐藏行的辅助列值。
  • 方案2:无需辅助列(SUMPRODUCT+SUBTOTAL组合)
    使用以下公式直接计算:

    =SUMPRODUCT(SUBTOTAL(103,OFFSET(B3,ROW(B3:B)-ROW(B3),0,1))*IF(B3:B>N3:N,B3:B,N3:N))
    

    原理说明:

    • SUBTOTAL(103,OFFSET(B3,ROW(B3:B)-ROW(B3),0,1)):逐行判断该行是否可见(可见行返回1,隐藏行返回0)
    • IF(B3:B>N3:N,B3:B,N3:N):生成每行两列的最大值数组
    • SUMPRODUCT将两个数组对应元素相乘后求和,实现仅对可见行的每行最大值累加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:32:34