SharePoint列表列条件求和公式:按公司分组计算累计总和
你当前的公式无法实现累计效果,原因是SUM([Payment])仅会计算当前行的付款值,且[Column Totals]并非计算列的合法引用。要实现按公司分组的累计付款,需结合条件求和+行顺序筛选,具体步骤如下:
前提准备
先给列表添加一个可用于排序的唯一列(确保累计顺序正确),比如:
- 自增序号列(命名为
OrderID,设置为自动编号) - 或者直接使用默认的
Created(创建时间)列
针对特定公司(如Company A)的累计公式
方法1:使用SUMIFS(支持SharePoint Online/2013及以上版本)
=IF([Company]="Company A", SUMIFS([Payment], [Company], "Company A", [OrderID], "<="&[OrderID]), "")
公式说明:
SUMIFS会筛选所有公司为Company A且OrderID小于等于当前行OrderID的记录,将这些记录的Payment求和,得到截至当前行的累计总额- 非Company A的行会返回空值,可根据需求修改为其他内容(比如
[Payment]或0)
方法2:使用SUMPRODUCT(兼容旧版SharePoint)
如果你的SharePoint版本不支持SUMIFS,可以用SUMPRODUCT替代:
=IF([Company]="Company A", SUMPRODUCT(([Company]="Company A")*([OrderID]<=[OrderID])*[Payment]), "")
扩展:对所有公司自动分组累计
如果需要给每个公司都计算自身的累计付款,只需把公式中的固定公司名换成引用当前行的[Company]即可:
=SUMIFS([Payment], [Company], [Company], [OrderID], "<="&[OrderID])
注意事项
- 排序列必须唯一且顺序固定,否则累计结果会出现混乱(比如用创建时间的话,不要手动修改创建时间)
- 新增或编辑行时,计算列会自动重新计算,确保累计值实时更新
内容的提问来源于stack exchange,提问作者Bra Tabs
相关产品推荐
相关产品推荐

