我目前正在处理一份报告,该报告从Web服务中注入了数据。这个web服务发送一个“双?”允许空值。在报告中,它显示返回的值,这些值稍后用于对数字求和和求平均值。我的问题是在表达式中显示值(我可以看到一个类似的问题,当我处理计算时,但一次一步...)我正在使用IIf语句检查值是否为数字,如果因此,如果不显示空字符串,则显示该值(将其转换为double)。当它是一个数值时,该值显示正确但是当它为null时,我得到值#ERROR。似乎IIf语句评估了IIf语句的两端!!!
无论如何我做了一些研究,似乎人们建议修改发送代码以检查它是否为空并发送0代替但在我的情况下这不会有帮助(负数也不会如此它也发送负数)。在我的情况下这不起作用的原因是我必须使用全0而不是空值来计算平均值。例如......
“100,0,null”=>这应该是50的平均值......如果是null 在哪里被转换为0,它平均为25 ...
无论如何是我的代码......
=IIf(IsNumeric(Fields!Ventas.Value), CDbl(Fields!Ventas.Value), "")
我也尝试过使用switch语句并得到同样的问题......
=Switch(IsNumeric(Fields!Ventas.Value) = False, "", IsNumeric(Fields!Ventas.Value) = True, CDbl(Fields!Ventas.Value))
此外,我通过测试来测试IIf条件是否正常工作:
=IIf(IsNumeric(Fields!Ventas.Value), 1, 0)
这是正常的...无论如何任何帮助将不胜感激,因为我不知道还有什么可以尝试...下面是我找到的关于我的问题的一些链接,但他们再次建议发送一个0而不是null在我的案件是无用的......一个链接建议使用开关,但再次没有用......
答案 0 :(得分:4)
我刚刚解决了这个问题,这是怎么做的希望这可以帮助其他人解决同样的问题!!
=IIf(IsNumeric(Fields!Ventas.Value), CDbl(IIf(IsNumeric(Fields!Ventas.Value), Fields!Ventas.Value, 0)), "")
答案 1 :(得分:0)
使用可能除以零的表达式,例如IIF([B]=0, Nothing, [A]/[B])
我使用了一个简单的解决方法:IIF([B]=0, Nothing, [A]/IIF([B]=0, 1, [B]))
此错误也在Microsoft Connect上注册,但到目前为止,MS没有回答。