0

我正在尝试使用表达式进行计算。

实际上我有公式来验证用于计算的报表项是否为 0,这是因为如果两个报表项都是0,则它们不允许划分。因此,如果两个报表项都为 0,则 0.00 将分配给列而不是处理计算。

这是我的表达式,即使我做了 IIf,它仍然在报告列中显示#Error :

=IIf((ReportItems!TotalQty.Value = "0.000" And ReportItems!Textbox40.Value = "0.000"),  ReportItems!Textbox6.Value="0.00", FormatNumber((ReportItems!TotalQty.Value / ReportItems!Textbox40.Value * 100), 2))

在此处输入图像描述

*ReportItems!Textbox40.value 是 TotalQty 的总计

有谁知道纠正这个错误的任何方法。

请帮助和指导。提前致谢。

4

1 回答 1

1
  1. 如果 TextBox40.Value = 0,则 IIf() 函数的“else”值将始终 #Error(因为除以零)。我使用 Val() 函数将您的值与零进行比较,而不是与文本进行比较。如果 TextBox40.Value 等于“abc”或“”(空格)或“”(空字符串),则 Val(TextBox40.Value) 也为零。
  2. IIf() 函数的第二个和第三个参数是取决于第一个参数的结果,你的第二个参数看起来是错误的。
  3. IIf() 函数在返回结果之前计算所有参数,因此第三个参数(其中可能被零除)可以在结果中为您提供#Error。更好的是使用 If() 函数。
  4. 比使用 FormatNumber() 函数更好的是 Tablix 中的字段格式 - 代码更清晰。

表达式应该是(恕我直言)

=If(Val(ReportItems!Textbox40.Value) = 0,  
    0.00, 
    ReportItems!TotalQty.Value / ReportItems!Textbox40.Value * 100
   )
于 2020-06-15T12:05:01.307 回答