=IIf(Sum(Fields!CUSTOMER_PROFIT.Value) <= 0 Or Sum(Fields!REVENUE.Value) <= 0,
"N/A",Round(Sum(Fields!CUSTOMER_PROFIT.Value)/Sum(Fields!REVENUE.Value)*100,2))
示例输出如下:
customer profit revenue customerprofitability
105003.73 227912.88 46.07
-8560.57 0.00 #Error
610.53 -1306.0 N/A
为什么当除以零时给出#error但是当除以负值时给出N / A?我不希望#error出现在customerprofitability列中。感谢任何帮助!
答案 0 :(得分:3)
SSRS将完全评估您的表达式,即使您希望它在iff语句的“true”部分之后停止。
因此,你需要使iff语句的'fail'部分在数学上对所有行都是合理的(当前如果在第二行失败并且除以零)。
这可以为您提供所需的结果
=IIf(
Sum(Fields!CUSTOMER_PROFIT.Value) <= 0
Or Sum(Fields!REVENUE.Value) <= 0,
"N/A",
Round(Sum(Fields!CUSTOMER_PROFIT.Value)/IIF(Sum(Fields!REVENUE.Value)= 0, 1,Sum(Fields!REVENUE.Value))*100,2
)
)