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)
这个想法是只计算当前行的总和,而不是下面的所有行。
先感谢您。
对于旧版本尝试使用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)
我不确定是否需要另一个答案,但您也可以只使用当前行:
=SUM([Value]*(ROW()>=ROW([Value]))*([Item]=[@Item]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |