所有值的平均值除0外

时间:2013-08-01 22:31:23

标签: reporting-services ssrs-2008

我有一份我在SSRS 2008中设计的报告。我有一行有几个值。这基本上是一个Survey表单,其中有1到5的值。有些值是空白或N / A(如果它们没有回答)。但是,当我计算值的平均值时,它包含该特定值。我认为它需要它为0.所以


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

请告诉我如何在不考虑空白值的情况下计算值的平均值。

谢谢

3 个答案:

答案 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。