vb.net - how to avoid #Error and NaN in SSRS -
i have expression in report in order calculate ratios:
= sum(fields!paidlosses.value) / lookup(fields!yearnum.value & fields!monthnum.value, fields!yearstartrisk.value & fields!monthnum.value, fields!earnedpremium.value, "earnedallcoverages") when choosing parameter not enough data got #error , nan. result of nan division of "-" on "-" values. , result of #error division of "-" on 0 values. 
try:
=sum(fields!paidlosses.value) / iif( isnothing( lookup(fields!yearnum.value & fields!monthnum.value, fields!yearstartrisk.value & fields!monthnum.value, fields!earnedpremium.value, "earnedallcoverages") ) or lookup(fields!yearnum.value & fields!monthnum.value, fields!yearstartrisk.value & fields!monthnum.value, fields!earnedpremium.value, "earnedallcoverages") = 0,1, lookup(fields!yearnum.value & fields!monthnum.value, fields!yearstartrisk.value & fields!monthnum.value, fields!earnedpremium.value, "earnedallcoverages") ) this caused because cannot divide number 0 or nothing (ssrs nulls)
also can use custom code provided in this great answer safely perform divisions.
add below code in custom code textarea in report menu / report properties... / code tab
public function safedivide(byval numerator decimal, byval denominator decimal) decimal if denominator = 0 return 0 end if return (numerator / denominator) end function then in tablix call function numerator , denominator arguments:
=code.safedivide( sum(fields!paidlosses.value), lookup( fields!yearnum.value & fields!monthnum.value, fields!yearstartrisk.value & fields!monthnum.value, fields!earnedpremium.value, "earnedallcoverages" ) ) let me know if helps.
Comments
Post a Comment