这个问题很难表述,但基本上我有一些类似于以下的数据,显示了角色列表、其基本费率成本和百分比。
我已经添加了“实际成本”列以用于测试和示例目的,但是该数据表不可编辑,因此我无法添加辅助列:
Role Cost Allocation *Actual Cost*
Role 1 1000 100.00% 1000
Role 1 1000 50.00% 500
Role 2 1000 25.00% 250
Role 1 1000 75.00% 750
Role 2 1000 100.00% 1000
我需要找到一种方法来获取每个角色的实际总成本,而无需使用辅助列。
因此,从这个例子中,我可以简单地使用=sumif(A2:A5, "Role 1", D2:D5)
,给我
Role 1 2250
Role 2 1250
但是我需要使用的是,=sum(if(A:A = "Role 1", B:B*C:C))
我知道这个求和函数没有意义,它旨在描述结果。
如果不清楚,请发表评论,我会尽力修改。
答案1
实际上,你描述的 sum 函数非常有意义。你只需要将其输入为数组公式。只需像上面一样输入,=sum(if(A:A = "Role 1", B:B*C:C))
然后按将Ctrl-Shift-Enter其标记为数组公式。
请注意,如果您有很多这样的数据,并且全部引用完整的列(B:B
等等),计算可能会很慢。您可以使用语法来解决这个问题B2:B5
(但当然,您需要记住在添加更多行时更新它)。
答案2
正如 bensheperd 已经回答的那样,您的公式很有意义。只需将其作为数组公式输入即可(按 CTRL+SHIFT+ENTER 完成)。
或者您可以使用SUMPRODUCT
:
SUMPRODUCT((A:A = "Role 1")*B:B*C:C)
特别是对于较大的数据集,与数组公式相比它更快。