根据Excel表格中另一列的值执行滚动求和

Kar*_*ran 4 excel excel-formula sumifs excel-tables

我希望根据列的值对 Excel 表执行滚动总和。

我只想要当前行的总和(而不是具有相同值的所有行的总和)

我举了一个简单的例子来解释:

我想在公式中使用表引用来获取下表中前 2 列的逐项滚动总和。“物品”和“价值”已知;将计算“Item_Wise_Rolling_Sum”

物品 价值 Item_Wise_Rolling_Sum 项目_Wise_Rolling_Sum
A 1 1
A 2 3
10 10
5 15
2 17 号
C 6 6

我尝试使用以下公式但无济于事:

=SUMIFS(MyTable[[#Headers],[Value]]:[@Value], [Item], [@Item])
Run Code Online (Sandbox Code Playgroud)

这个想法是只计算当前行的总和,而不是下面的所有行。

先感谢您。

May*_*rya 5

对于旧版本尝试使用SUMIFS()

在此输入图像描述


=SUMIFS(B$2:B2,A$2:A2,A2)
Run Code Online (Sandbox Code Playgroud)

或者,MS365尝试使用MAP()

在此输入图像描述


=MAP(A2:A7,B2:B7,LAMBDA(x,y,SUM((A2:x=x)*B2:y)))
Run Code Online (Sandbox Code Playgroud)

或者,使用SUMIF()Structured References

在此输入图像描述


=SUMIF(MyTable[[#Headers],[Item]]:[@Item],[@Item],MyTable[[#Headers],[Value]]:[@Value])
Run Code Online (Sandbox Code Playgroud)

需要SUMIFS()根据参数正确更改范围,

=SUMIFS(MyTable[[#Headers],[Value]]:[@Value],MyTable[[#Headers],[Item]]:[@Item],[@Item])
Run Code Online (Sandbox Code Playgroud)

在 Excel 表格中锚定和使用SUMIFS()总计的另一种替代方法:(相对较短的方法)

在此输入图像描述


=SUMIFS(INDEX([Value],1):[@Value],INDEX([Item],1):[@Item],[@Item])
Run Code Online (Sandbox Code Playgroud)

正如JvdV先生所评论的,MAP()如果将来您考虑不使用,请使用替代方法Structured References,然后尝试以下方法。

=MAP(A2:A7,B2:B7,LAMBDA(x,y,SUMIF(A2:x,x,B2:y)))
Run Code Online (Sandbox Code Playgroud)


Tom*_*rpe 5

我不确定是否需要另一个答案,但您也可以只使用当前行:

=SUM([Value]*(ROW()>=ROW([Value]))*([Item]=[@Item]))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述