我对SSRS中的每个Row Group运行以下计算:
=(count(Fields!RowNumber.Value)*sum(Fields!RowNumber.Value*Fields!Score.Value) - sum(Fields!RowNumber.Value)* sum(Fields!Score.Value))/(count(Fields!RowNumber.Value)*sum(Fields!RowNumber.Value*Fields!RowNumber.Value) - sum(Fields!RowNumber.Value)* sum(Fields!RowNumber.Value))
计算用于显示坡度结果。
问题是某些Fields!Score.Values在行组中是空白的,因此它不应该包括在计算中。 RowNumber是一个字段,对该行组中的每个Scores数加1。
如何通过此计算考虑这一点,以便从计算中排除Fields!Score.Value中的空值?
举个例子:
How it seems to be working How it should work:
1 0 (converting it to 0) 1 (not take into account this row)
2 0 (converting it to 0) 2 (not take into account this row)
3 4 3 4
4 4 4 4
5 4 5 4
6 4 6 4
您可以在下面看到上面的表达式将空白转换为0并以不正确的结果0.914286结束 - 其中正确的结果为0时没有考虑这些空白条目。以下是其他一些例子。
这是使用Excel中的SLOPE功能(= SLOPE(F5:F10,E5:E10)),在SSRS中使用上述表达式重新创建。 Excel看起来很聪明,可以忽略系列中的空白条目,我需要在SSRS表达式中使用相同的功能。
答案 0 :(得分:1)
您的表达式应如下所示
=(
SUM(Iif(Fields!num1.Value=0,0,1) )
* SUM(Fields!rownum.Value*Fields!num1.Value)
-
SUM(Iif(Fields!num1.Value=0,0,Fields!rownum.Value))
* SUM(Fields!num1.Value)
)
/
(
SUM(Iif(Fields!Score.Value=0,0,1) )
*
SUM(Iif(Fields!Score.Value=0,0,Fields!RowNumber.Value*Fields!RowNumber.Value))
-
SUM(Iif(Fields!Score.Value=0,0,Fields!RowNumber.Value))
*
SUM(Iif(Fields!Score.Value=0,0,Fields!RowNumber.Value))
)