我正在研究SSRS 2008R2中的英国损益报告,并且正在为百分比计算而苦苦挣扎
这是一个解释我的问题的例子
Detail
Group1 Group2 Invoice Number Value %
Sales Total 810
Uk Sales 150
UK964423 50
UK452872 100
European Sales 450
dkkmalk 200
dkf682 250
Rest of World Sales 210
USA12353 100
CHIN25410 100
AFGAN14422 10
Variable Costs 455 56%
Material 200 25%
Sand 150
Steel 50
Wages 225 28%
Basic Pay 175
Overtime 50
Other Production Costs 30 4%
Packaging 20
Consumables 10
可变成本的56%百分比计算为可变成本除以销售总额(455/810)。物料百分比是相似的物料总数除以总销售额(200/810),以此类推,包括工资和其他生产成本
请问如何实现这些计算。在大多数情况下,我可以通过组头中的公式来获得提名者:
=sum(iif (GroupFieldName.Value="Variable Costs",FieldValue.Value,nothing)
但是我似乎无法计算总销售额的分母!
欢迎提出任何建议,请记住我要“证明未来” SSRS2015和SSRS 2017的公式/代码解决方案
预先感谢
答案 0 :(得分:0)
由于分组原因,您的表达式无法正常工作。分组将您的FieldValues分开,因此您的SUM仅获得组的总数。
表达式应使用该字段的总和除以数据集中的所有值。
=SUM(Fields!FieldValue.Value) / SUM(Fields!FieldValue.Value, "Dataset1")
由于SSRS检查除零错误,因此您可能需要检查这种可能性。
=IIF(SUM(Fields!FieldValue.Value, "Dataset1") = 0, 0, SUM(Fields!FieldValue.Value) )
/
IIF(SUM(Fields!FieldValue.Value, "Dataset1") = 0, 1, SUM(Fields!FieldValue.Value, "Dataset1")
对于IIF,如果SUM为0,则计算为0/1(即0),并且避免了除以零的错误。