7

我使用下面的表达式来制定出一个百分比:SSRS公式或表达式更改为NaN 0

=Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name") 

Days.Value被显示为0,但在我的一些结果,而不是读0%在我的百分比列中,它实际上是阅读NaN(不是数字)。

有没有人知道我需要的确切表达式forumla,以及我应该将它粘贴到当前表达式中以说“哪里有NaN显示,请将'0'代替?”

(见图片)enter image description here

回答

8

如何

=IIF(Fields!Days.Value > 0,Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),0) 
+1

我尝试了类似于此的= IIF(Sum(Fields!TotalPrice.Value)/ Sum(Fields!Orders.Value)= 0,0,Sum(Fields!TotalPrice.Value)/ Sum(Fields!Orders。价值)在一个我认为是货币的文本框中给我带来了一些奇怪的结果 上面的答案非常完美谢谢! – 2014-06-13 13:06:30

+0

这个解决方案仍然给了我同样的错误,我已经回答了这个问题。 – hurleystylee 2016-07-06 14:12:08

2

尝试

=IIf(Fields!Days.Value Is Nothing Or Sum(Fields!Days.Value, "Date_month_name") Is Nothing, 0, Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")) 
12

我没有运气上述答案。下面是我工作:

=IIF(Single.IsNAN(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")), 0, Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")) 
2

这是最简单的&,我认为,

=Switch(
Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name") = "NaN",Nothing, 
Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name") = "Infinity",Nothing, 
Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name") = "-Infinity",Nothing 
) 

你也可以把一个0,而不是什么都没有。

4

我用这种类似的情况下,

=REPLACE(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),"NaN","0")

0

这里的另一种选择。它应该解决的问题,同时也摆脱Infinite回应:

=val(replace(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),"NaN","0")) 
0

我也有类似的问题,这和发现以下是最容易做的。

=Iif(
Fields!Days.Value.Value <> 0 AND Sum(Fields!Days.Value, "Date_month_name") <> 0 
, Fields!Days.Value.Value/Sum(Fields!Days.Value, "Date_month_name") 
, 0 
) 

可能不是最好的解决方案,但工程。