4

我有一份我在 SSRS 2008 中设计的报告。我有一排有几个值。这基本上是一个调查表,其中有从 1 到 5 的值。一些值是空白或 N/A(如果他们不回答)。但是,当我计算值的平均值时,它包括该特定值。我认为它是0。所以


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

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

谢谢

4

3 回答 3

5

您可以将计算字段添加到数据集以过滤掉不需要的值。然后您可以使用正则表达式使其更具可读性。以下是计算字段表达式的示例:

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

现在您可以简单地引用=Avg(Fields!FilteredScore.Value)它,它将按需要工作。

于 2013-08-02T15:08:28.540 回答
4

我找到了以下解决我的问题的解决方案:


       =SUM(Fields!Score.Value)/Sum(iif(Fields!Score<>0,1,0))
于 2013-08-05T21:17:20.933 回答
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。

于 2013-08-02T11:56:45.887 回答