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

Excel中SUMPRODUCT与OFFSET动态公式求和范围异常问题求助

解决Excel分段递增组的SUMPRODUCT计算问题

问题根源

你当前公式里的MATCH(1,P:P,0)会返回整个P列中第一个值为1的行号(比如表头在第1行时,第一个1在第2行,就始终返回2),无法定位当前行所在分组的起始位置,导致SUMPRODUCT只能计算固定范围,而非当前组从起始到当前行的区间。

解决方案

需要先定位当前行所在分组的起始行(即当前行上方最后一个P值为1的行,若当前行P值为1则起始行就是自身),再基于这个起始行计算区间内的SUMPRODUCT。

通用公式(兼容多数Excel版本)

=SUMPRODUCT(OFFSET(W$1,LOOKUP(2,1/(P$1:P1=1),ROW(P$1:P1))-1,0,ROW()-LOOKUP(2,1/(P$1:P1=1),ROW(P$1:P1))+1),OFFSET(AK$1,LOOKUP(2,1/(P$1:P1=1),ROW(P$1:P1))-1,0,ROW()-LOOKUP(2,1/(P$1:P1=1),ROW(P$1:P1))+1))/AK2

简化版(Excel 365/2021及以后,用LET减少重复计算)

=LET(
    start_row, LOOKUP(2,1/(P$1:P1=1),ROW(P$1:P1)),
    SUMPRODUCT(INDEX(W:W,start_row):W2,INDEX(AK:AK,start_row):AK2)/AK2
)

公式说明

  1. LOOKUP(2,1/(P$1:P1=1),ROW(P$1:P1)):找到当前行上方最后一个P值为1的行号,作为分组起始行。原理是1/(P$1:P1=1)会在P值为1的位置生成1,其他位置生成错误值,LOOKUP会忽略错误值并找到最后一个1对应的行号。
  2. INDEX(W:W,start_row):W2:取分组起始行到当前行的W列数据范围(替代易失的OFFSET,计算更稳定)。
  3. SUMPRODUCT:计算该区间内W列与AK列对应值的乘积之和,再除以当前行的AK值,符合你“每组从起始到当前行计算,组末时计算完整区间”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:20:13