うまくいきますように。レポートの作成中に #error が表示されるようです。ゼロ除算エラーのようですが、解決できません。表現:
=( Sum(Fields!Line_Sell.Value) - Sum(Fields!Line_Cost.Value) ) / Sum(Fields!Line_Sell.Value)
私はRSに比較的慣れていませんが、試しました
ISNULL( )
しかし、成功しませんでした。
どんな助けでも、私は素晴らしいでしょう。
ありがとう
うまくいきますように。レポートの作成中に #error が表示されるようです。ゼロ除算エラーのようですが、解決できません。表現:
=( Sum(Fields!Line_Sell.Value) - Sum(Fields!Line_Cost.Value) ) / Sum(Fields!Line_Sell.Value)
私はRSに比較的慣れていませんが、試しました
ISNULL( )
しかし、成功しませんでした。
どんな助けでも、私は素晴らしいでしょう。
ありがとう
x / y に設定された式があり、y がゼロになる可能性があるとします。経験したように、SSRS はこの値を #ERR (場合によっては NaN) に変更します。あなたの最初の本能は、ゼロをテストすることです
=Iif(y = 0, 0, x/y)
残念ながら、これにより、ゼロで除算しようとしているというデバッガーの警告が表示される可能性があります。これは、SSRS がコンパイル中にステートメント全体を評価しようとするためです。結果として、SSRS に評価可能な値を提供する必要があります。
=x * y ^ -1
これは y 値で割ることと同じですが、SSRS はこれを無限大で割ると見なすため、評価を行うことができます。最後のステップとして、コードが Excel に正しくエクスポートできることを確認する必要があります。2012 SSRS (およびおそらくそれ以降はテストしていません) では、SSRS にはゼロ値が 0.000000000000000 として Excel にエクスポートされる可能性があり、データ損失エラーが発生するという問題があります。これを修正するために、ゼロの値を明示的に出力します
=Iif(x = 0 OR y = 0, 0, x * y ^ -1)
あなたのコメントの式は完全ではないように見えるので、次に何を試してうまくいかなかったのかわかりません。除算を実行する前に、必ずゼロをテストする必要があります。
これを試すことができます:
=iif( Sum(Fields!Line_Sell.Value) = 0, 0, (Sum(Fields!Line_Sell.Value) - Sum(Fields!Line_Cost.Value)) / Sum(Fields!Line_Sell.Value))
または、空の値も確認するには、これを試すことができます。
=iif( (Sum(Fields!Line_Sell.Value) = 0 or IsNothing(Sum(Fields!Line_Sell.Value)), 0,Sum(Fields!Line_Sell.Value) - Sum(Fields!Line_Cost.Value)) / Sum(Fields!Line_Sell.Value))
それでも結果が得られない場合は、式を分解してレポートを実行します。Sum(Fields!Line_Sell.Value) を単独で試し、レポートを実行して結果を確認してください。より効率的にするには、Fields!Line_Sell.Value 用の列と Fields!Line_Cost.Value 用の別の列を含むテーブルを作成します。テーブルに詳細行を含め、合計行を追加して、これらの各フィールドを個別に使用して Sum 関数を取得します。詳細レコードを調べて、集計関数が機能しない理由を推測する必要があります。結論 - 式を分解し、1 つずつテストします。答えはどこかにあります。