19

製品の売上に基づいてキロあたりの価格 ($/Kg) を評価しようとしています。指定された期間中に製品が実際に販売された場合、これは正常に機能します。ただし、商品が売れなかった場合、Kg(分母)が0(ゼロ)になってしまいエラーになります。- ゼロ除算エラー。

私はこれを試しました

=iif(KgSold=0,0,Revenue/KgSold)

iif関数が true と false の両方の結果を計算しているようです。どうすればこれを回避できますか。

switch代わりに関数を使用する必要がありますか?

=switch(KgSold=0,0
        KgSold<>0,Revenue/KgSold)
4

3 に答える 3

16

そうです、短絡しません。それはひどい。

次のようにする必要があります。

= Iif(KgSold = 0, 0, Revenue) / Iif(KgSold = 0, 1, KgSold )

スイッチ機能も動作するはずです。

于 2009-07-30T02:49:59.890 に答える
5

これは、VBScript では、機能が発生する前に IIF 内のすべての条件が最初に評価されるためです。

于 2009-08-17T20:42:06.973 に答える