SSRS Формула или выражение, чтобы изменить NaN на 0 - PullRequest
10 голосов
/ 12 января 2012

Я использую следующее выражение для расчета процента:

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

Days.Value отображается как 0, но в некоторых моих результатах вместо чтения 0% в моем процентном столбце это на самом делечитая NaN (не число).

Кто-нибудь знает точное выражение forumla, в котором я нуждаюсь, и где я должен вставить его в мое текущее выражение, чтобы сказать: «Где NaN показывает, вместо этого поставьте« 0 »?»

(см. Изображение) enter image description here

Ответы [ 7 ]

14 голосов
/ 11 декабря 2012

Мне не повезло с ответами выше. Вот что сработало для меня:

=IIF(Single.IsNAN(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name")), 0, Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"))
10 голосов
/ 13 января 2012

Как насчет

=IIF(Fields!Days.Value > 0,Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),0)
6 голосов
/ 12 ноября 2014

Я использовал это для аналогичного случая,

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

3 голосов
/ 12 июля 2017

Вот еще один вариант.Это должно решить проблему, а также избавиться от Infinite ответов:

=val(replace(Fields!Days.Value/Sum(Fields!Days.Value, "Date_month_name"),"NaN","0"))
2 голосов
/ 27 мая 2014

Это самый простой и лучший, я думаю,

=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 вместо ничего.

2 голосов
/ 13 января 2012

Попробуйте

=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"))
0 голосов
/ 04 сентября 2017

У меня была похожая проблема с этим, и я обнаружил, что следующее было проще всего сделать.

=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
)

Возможно, не лучшее решение, но работает.

...