2017-07-27 96 views
1

我有以下的計算是每每個行組中SSRS運行:計算,不包括空值

=(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是一個字段,對該行組中的每個分數添加1。

我該如何考慮這個計算來排除Fields!Score中的空值!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時,它並不需要完成向上將這些空白條目考慮在內。以下是其他一些例子。

這是在使用上述表達式在SSRS中重新創建的Excel中使用SLOPE功能(= SLOPE(F5:F10,E5:E10))。 Excel看起來非常聰明,可以忽略系列中的空白條目,並且我需要SSRS表達式中的相同功能。

enter image description here

+0

一個這將是很好對第3-6行提供的Y的一個或兩個樣本有不同的數字和預期的結果 – niktrs

+0

當然, done @niktrs – Philip

回答

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)) 
) 
+0

非常感謝,但是RowNumber值也有SUM字段條目,我也相信這是Slope計算所需的,不是嗎?你能否確認,你是否想編輯表達方式? – Philip

+0

您的計算有點複雜。請使用當前計算結果和經過計算的結果來改進您的樣本數據。 – niktrs

+0

剛剛這樣做,謝謝。 – Philip