2017-07-06 9 views
0

私は答えを読んで私の表現を更新しましたが、私は予算の0を持つ行に#Errorを引き続き取得します。SSRS 2012ゼロ除算エラー

すべてのパーセンテージが正しく計算されています。

= IIF(Fields!CM_Budget.Value、 "Name")= 0,0、SUM(Fields!MTD_Actual.Value、 "Name")/ SUM(Fields!CM_Budget.Value、 "Name"))

答えて

2

これは、SSRSは常に両方の式を評価するためです。 式を2つに分割する必要があります。

=IIF(SUM(Fields!CM_Budget.Value,"Name")=0,0,SUM(Fields!MTD_Actual.Value,"Name")) 
/
IIF(SUM(Fields!CM_Budget.Value,"Name")=0,1,SUM(Fields!CM_Budget.Value,"Name")) 

、代替はあなたのようなあなたの式を書くことができるよう

Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double) 
If IsNothing(Divisor) Or Divisor = 0 
    Return Nothing 
Else 
    Return Dividend/Divisor 
End If 
End Function 

の下にカスタムコードを使用することができます

=Code.Divider(SUM(Fields!MTD_Actual.Value,"Name"),SUM(Fields!CM_Budget.Value,"Name")) 

私は通常作るために、それを行うための第二の方法を好みます私の表現はもっと読みやすい