2016-05-11 20 views
1

SSRSレポートが投げられ、フィールドに#ERROR#があります。SSRSのIIFでエラーが返される

ダウンタイムと合計時間...ダウンタイム/トータルタイムを比較して、すべての時間でダウンタイムの割合を取得します。

元のコードは次の通りであった:

=Sum(Fields!PrevYear_Total_Down_Time.Value) 
/
Sum(Fields!PrevYear_Total_Time.Value) 

これはIがゼロまたはヌルである「合計(!フィールドPrevYear_Total_Time.Value)」によるものであったと仮定#エラー#を投げたので、私はにコードを調整しましたIIFの声明:

=IIF(Sum (Fields!PrevYear_Total_Time.Value)=0,0, 
    IIF(Sum(Fields!PrevYear_Total_Down_Time.Value)=0,0, 
     Sum(Fields!PrevYear_Total_Down_Time.Value)/Sum(Fields!PrevYear_Total_Time.Value) 
     ) 
    ) 

私は数を有する第2ネストされたIIF文を交換した場合、それはそれは私が欲しかったものではありません、動作し、プット私が指定どんな番号、しかし。 0またはゼロをテストしたい場合は、合計ダウンタイムが0または0の場合は0を返します。

+0

の可能性のある重複した([IIFを扱うか、#ERRORを与えるゼロによる除算を切り替える方法?] http://stackoverflow.com/questions/15750896/how-to-handle-iif-or-switch-divide-by-zero-giving-error) –

答えて

0

2つの値を渡すコードスニペットを記述して解決し、フォーマットされた値を返します。

0

他の方法は、ゼロを考慮するために分母に別のIIFを置くことです:

=IIF(Sum(Fields!PrevYear_Total_Time.Value) = 0, 0, Sum(Fields!PrevYear_Total_Down_Time.Value)) 
/
IIF(Sum(Fields!PrevYear_Total_Time.Value) = 0, 1, Sum(Fields!PrevYear_Total_Time.Value)) 
関連する問題