创建在特定条件下重置的运行总计

问题描述 投票:0回答:2

如何结合 LAMBDA 和 SCAN 创建一个在 Excel 中特定条件下重置的运行总计?

我正在尝试 Excel 365 中的 LAMBDA 和 SCAN 函数,并希望创建一个公式来计算一列数字的运行总计,但只要满足特定条件(例如,当另一列中的值等于零)。

到目前为止,我已经成功地使用 SCAN 创建了基本的运行总计,但我正在努力弄清楚如何根据条件动态重置运行总计。我想避免使用辅助列,而是使用单个公式。这是我正在尝试的简化版本:

A 列有随机数。 B 列具有标记(0 或 1),其中总数应重置(例如,当 B = 0 时重置)。 有没有办法将运行总逻辑和条件重置集成到单个 LAMBDA + SCAN 公式中?关于如何解决这个问题有什么建议吗?

=SCAN(0, A2:A6, LAMBDA(acc, x, IF(B2:B6=0, 0, acc + x)))
excel excel-formula
2个回答
3
投票

传递ROW号并使用INDEX:

=SCAN(0,ROW(A1:A30),LAMBDA(acc,x,IF(INDEX(B:B,x)=0,0,acc+INDEX(A:A,x))))

enter image description here


0
投票

在 SO 中,您可以找到很多利用所需功能的解决方案:

=LET(arr,Am:Bn,cntr,SEQUENCE(ROWS(arr)),
  SCAN(0,cntr,LAMBDA(acc,x,
    IF(INDEX(arr,x,2)=0,0,acc+INDEX(arr,x,1)))
  )
) 

这种方法允许寻址任何数组,而不仅仅是范围。

© www.soinside.com 2019 - 2024. All rights reserved.