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