我目前正在使用公式计算变量,如下所示:
=(Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value
它的效果很好,除了分子和分母都等于零的情况。
我做了一些研究,并尝试使用下面的公式解决它,但这不起作用。
=IIF(Fields!MontantInitialRegime.Value = 0, Fields!SoldeFacture.Value, Fields!MontantInitialRegime.Value /
IIF(Fields!MontantInitial.Value = 0, Fields!SoldeJour.Value, (Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value))
请注意,如果除法结果有误,我想显示Fields!SoldeFacture.Value
。
以下是当前输出的示例:
答案 0 :(得分:0)
这应该有效:
如果Fields!MontantInitial.Value = 0(ERROR),则按要求显示Fields!SoldeFacture.Value,否则请继续进行计算。
=IIf(Fields!MontantInitial.Value = 0, Fields!SoldeFacture.Value, Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value)
答案 1 :(得分:0)
好的,如果我理解正确的话,我认为当发生分割错误时你需要Fields!SoldeFacture.Value
。
只有当分母为0,0 / 5 = 0但5/0 =错误时才会发生除法错误!
所以,按照你说的现有公式,你几乎就在那里:
=(Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value
我们需要做的是在它周围添加Immediate IF条件以检查分母是否为0:
=IIF(Fields!MontantInitial.Value = 0, Fields!SoldeFacture.Value, (Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value)
作为解释,以下内容:
=IIF(Fields!MontantInitialRegime.Value = 0, Fields!SoldeFacture.Value, Fields!MontantInitialRegime.Value / IIF(Fields!MontantInitial.Value = 0, Fields!SoldeJour.Value, (Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value))
基本上是说Fields!MontantInitialRegime.Value = 0
然后使用Fields!SoldeFacture.Value
中的值并除Fields!SoldeJour.Value
Fields!MontantInitial.Value = 0
或者使用0&#39进行初始计算((Fields!MontantInitialRegime.Value/Fields!MontantInitial.Value)*Fields!SoldeFacture.Value))
;在表中,你总会在这里得到除以零的结果。
希望这有帮助。
利。
答案 2 :(得分:0)
我终于找到了问题的答案: = IIF((Fields!MontantInitial.Value< = 0 OR IsNothing(Fields!MontantInitial.Value)),Fields!SoldeJour.Value, (Fields!MontantInitialRegime.Value / IIF(Fields!MontantInitial.Value< = 0 OR IsNothing(Fields!MontantInitial.Value), 1,Fields!MontantInitial.Value))* Fields!SoldeJour.Value)
我按照建议添加了另一个IIF,并替换了1对1本身的变量,如下面的答案所示,它运作良好!
SSRS 2008 - Dealing with division by zero scenarios
感谢您的合作! :)