我有一份我在SSRS 2008中设计的报告。我有一行有几个值。这基本上是一个Survey表单,其中有1到5的值。有些值是空白或N / A(如果它们没有回答)。但是,当我计算值的平均值时,它包含该特定值。我认为它需要它为0.所以
Average of (4, 5,4,4,5,2,3, ,5) = 3.56 instead of 4.00.
请告诉我如何在不考虑空白值的情况下计算值的平均值。
谢谢
答案 0 :(得分:5)
您可以向数据集中添加计算字段,以过滤掉不需要的值。然后,您可以使用正则表达式使其更具可读性。以下是计算字段表达式的示例:
=iif(Fields!Score.Value > 0, Fields!Score.Value, Nothing)
现在您可以简单地引用=Avg(Fields!FilteredScore.Value)
,它可以根据需要运行。
答案 1 :(得分:4)
我找到了解决问题的以下解决方案:
=SUM(Fields!Score.Value)/Sum(iif(Fields!Score<>0,1,0))
答案 2 :(得分:1)
您需要创建自己的功能来完成任务,而不是使用内置的平均功能。
数学上的平均值=(所有答案的总和)/(所有答案的数量)
对于您的情况,您需要修改面额以排除所有空白和N / A值。
New Avg 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。