2013-08-01 143 views
3

我有一份報告,我在SSRS 2008中設計過。我有一行有幾個值。這基本上是一個調查表,其中有值從1到5。其中一些值爲空白或不適用(如果他們不回答)。但是,當我計算值的平均值時,它會包含該特定值。我覺得把它作爲0,所以所有值的平均值除了0


Average of (4, 5,4,4,5,2,3, ,5) = 3.56 instead of 4.00. 

可以請你告訴我,我怎麼能不考慮空白值計算的值的平均值。

謝謝

回答

3

我發現下面的解決方案來解決我的問題:


 =SUM(Fields!Score.Value)/Sum(iif(Fields!Score<>0,1,0)) 
1

而不是使用內置的平均函數,你需要創建自己的函數來完成你的任務。

數學平均=(所有答案的總和)/(所有答案的次數)

對於你的情況,你需要修改面額排除所有空白和N/A值。

新平均FUNC =(所有答案的總和)/((所有回答的計數) - (計數所有答案,其中它是空白或N的/ A))

SSRS equivalent: 
=SUM(Fields!SurveyAnswer.Value)/ 
(Count(Fields!SurveyAnswer.Value)- 
Count(IIF(Fields!SurveyAnswer="" OR UCASE(Fields!SurveyAnswer)="N/A", 1, **NOTHING**))) 

OR 

=SUM(Fields!SurveyAnswer.Value)/(Count(Fields!SurveyAnswer.Value)- 
SUM(IIF(Fields!SurveyAnswer="" OR UCASE(Fields!SurveyAnswer)="N/A", 1, 0))) 

HTH。

4

您可以將計算的字段添加到數據集中以過濾不需要的值。然後,您可以使用正則表達式使其更具可讀性。這裏的計算字段表達式的例子:

=iif(Fields!Score.Value > 0, Fields!Score.Value, Nothing) 

現在,您可以直接引用=Avg(Fields!FilteredScore.Value)並根據需要將工作。