web-dev-qa-db-ja.com

NaNを0に変更するSSRS式または式

次の式を使用してパーセンテージを計算しています。

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

Days.Valueは0として表示されますが、いくつかの結果では、パーセンテージ列で0%を読み取る代わりに、実際にはNaN(数値ではありません)を読み取っています。

誰かが私が必要とする正確な式forumlaを知っていて、「NaNが表示されている場所では、代わりに「0」を入力してください」と言うために現在の式のどこに貼り付ける必要がありますか?

(画像参照)enter image description here

11
JsonStatham

どうですか

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

私は上記の答えに運がなかった。これが私のために働いたものです:

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

私はこれを同様のケースに使用しました、

=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"))
3
Ratsnake

これは最もシンプルで最高だと思います、

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

試してみてください

=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"))
2
Cody Konior

私はこれと同様の問題を抱えていて、次のことが最も簡単であることがわかりました。

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

おそらく最善の解決策ではありませんが、機能します。

0
Arix