我正在使用以下表达式来计算百分比:
=Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")
Days.Value的值显示为0,但在我的一些结果中,百分比列中不是读取0%,而是实际上读取NaN(非数字)。
有人知道我需要什么确切的表达式公式以及我应该将其粘贴到当前表达式的哪个位置,以便说“在显示NaN的地方,改为放置'0'?”
(见图像)
我正在使用以下表达式来计算百分比:
=Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")
Days.Value的值显示为0,但在我的一些结果中,百分比列中不是读取0%,而是实际上读取NaN(非数字)。
有人知道我需要什么确切的表达式公式以及我应该将其粘贴到当前表达式的哪个位置,以便说“在显示NaN的地方,改为放置'0'?”
(见图像)
我之前尝试了上面的答案,但没有成功。这是对我有用的方法:
=IIF(Single.IsNAN(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")), 0, Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"))
How about
=IIF(Fields!Days.Value > 0,Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),0)
我在类似情况下使用了这个函数:
=REPLACE(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),"NaN","0")
这里有另一个选项。它应该解决问题,并且还能去掉 Infinite
的响应:
=val(replace(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),"NaN","0"))
尝试
=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"))
我认为这是最简单且最好的方式:
=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代替空值。
我曾经遇到过类似的问题,发现以下方法最简单。
=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
)
可能不是最好的解决方案,但是可以工作。