我有一份報告,我在SSRS 2008中設計過。我有一行有幾個值。這基本上是一個調查表,其中有值從1到5。其中一些值爲空白或不適用(如果他們不回答)。但是,當我計算值的平均值時,它會包含該特定值。我覺得把它作爲0,所以所有值的平均值除了0
Average of (4, 5,4,4,5,2,3, ,5) = 3.56 instead of 4.00.
可以請你告訴我,我怎麼能不考慮空白值計算的值的平均值。
謝謝
我有一份報告,我在SSRS 2008中設計過。我有一行有幾個值。這基本上是一個調查表,其中有值從1到5。其中一些值爲空白或不適用(如果他們不回答)。但是,當我計算值的平均值時,它會包含該特定值。我覺得把它作爲0,所以所有值的平均值除了0
Average of (4, 5,4,4,5,2,3, ,5) = 3.56 instead of 4.00.
可以請你告訴我,我怎麼能不考慮空白值計算的值的平均值。
謝謝
我發現下面的解決方案來解決我的問題:
=SUM(Fields!Score.Value)/Sum(iif(Fields!Score<>0,1,0))
而不是使用內置的平均函數,你需要創建自己的函數來完成你的任務。
數學平均=(所有答案的總和)/(所有答案的次數)
對於你的情況,你需要修改面額排除所有空白和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。
您可以將計算的字段添加到數據集中以過濾不需要的值。然後,您可以使用正則表達式使其更具可讀性。這裏的計算字段表達式的例子:
=iif(Fields!Score.Value > 0, Fields!Score.Value, Nothing)
現在,您可以直接引用=Avg(Fields!FilteredScore.Value)
並根據需要將工作。