4

現在、Web サービスからデータが挿入されたレポートに取り組んでいます。この Web サービスは、"double?" を送信します。null 値を許可します。レポートには、後で数値の合計と平均に使用される返された値が表示されます。私の問題は、値を表示する式にあります (そして、計算に取り組んでいるときに同様の問題が発生するのを見ることができますが、一度に 1 ステップずつ...) IIf ステートメントを使用して、値が数値であるかどうかを確認しています。空の文字列を表示しない場合は、値を表示します (double に変換します)。数値の場合、値は正しく表示されますが、null の場合は #ERROR という値が返されます。IIf ステートメントは IIf ステートメントの両端を評価しているようです!!!

とにかく、私はいくつかの調査を行いましたが、送信コードを変更してnullかどうかを確認し、代わりに0を送信することを提案しているようですが私の場合、これは役に立ちません(負の数も送信するため、負の数もありません)。私の場合、これが機能しない理由は、null 値ではなくすべて 0 を使用して平均を計算する必要があるためです。例えば...

"100, 0, null" => これは平均 50 になるはずです... null が 0 に変換される場合、平均は 25 になります...

とにかく私のコードはここにあります...

=IIf(IsNumeric(Fields!Ventas.Value), CDbl(Fields!Ventas.Value), "")

また、switchステートメントを試してみましたが、同じ問題が発生しました...

=Switch(IsNumeric(Fields!Ventas.Value) = False, "", IsNumeric(Fields!Ventas.Value) = True, CDbl(Fields!Ventas.Value))

また、これをテストすることで、IIf 条件が適切に機能していることをテストしました。

=IIf(IsNumeric(Fields!Ventas.Value), 1, 0)

そして、それは適切に機能します...とにかく、他に何を試すべきかわからないので、どんな助けも大歓迎です...以下は私の問題に関して見つけたいくつかのリンクですが、私の場合は役に立たないnullの代わりに0を送信することをお勧めします...そして、1つのリンクはスイッチを使用することを提案していますが、これもうまくいきませんでした...

リンク#1

リンク#2

4

2 に答える 2

5

私はこの問題をここで解決しました。これが同じ問題を抱えている他の人に役立つことを願っています。

=IIf(IsNumeric(Fields!Ventas.Value), CDbl(IIf(IsNumeric(Fields!Ventas.Value), Fields!Ventas.Value, 0)),  "")
于 2012-07-26T15:02:01.547 に答える
0

次のように、ゼロ除算の可能性がある式を使用すると、同じ問題が発生します。IIF([B]=0, Nothing, [A]/[B])

私は簡単な回避策を使用しました:IIF([B]=0, Nothing, [A]/IIF([B]=0, 1, [B]))

このエラーはMicrosoft Connectにも登録されていますが、これまでのところ MS からの回答はありません。

于 2014-10-16T15:11:39.583 に答える