How can I eliminate #error on SSRS expression when dividing by zero?
reporting-services, ssrs-2008
Solution
You can add a safe divide function if you go to Report Properties and then click Code, then reference this in your expression as `CODE.SafeDivide(Value1, Value2)`, adding the parameters as necessary.
This function will return 0 instead of displaying the #error message.
Public Function SafeDivide(ByVal Numerator As Decimal, ByVal Denominator As Decimal) As Decimal
If Denominator = 0 Then
Return 0
End If
Return (Numerator / Denominator)
End Function
Problem
I am trying to eliminate #error when dividing by zero on my SSRS report. I have the following expression which still gives #error ``` =IIf(IsNothing(Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")), 88 , Fields!QTY_AVL.Value * 100 / Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")) ``` However if switch the / to * , as below, I correctly get the value 88 ``` =IIf(IsNothing(Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")), 88 , Fields!QTY_AVL.Value * 100 * Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")) ``` In both instances I get the correct value is the lookup value > 0 ``` (Fields!QTY_AVL and Fields!Stock come from different sources) ``` Am I missing something obvious? Any insight into this much appreciated.