2

我的报告中有问题。我有一个这样的矩阵


                     |ID   |         
 |Question(TEXT)|    |Point(Value)|   |Calculated(Average)|   |Calculated(Satisfaction)%|
                  Summary:            |Average(Average)   |   |Average(Satisfaction)%|

该矩阵位于另一个组内,该组是一个页面组。

所以,我的问题是在某个页面组中,

Question_Text 为空白,并且所有点(值)均为 0。

每行的平均值显示正确的值,但汇总平均值显示不正确,因为它还考虑了额外的行并计算平均值。

因此,如果所有平均值的总和为 40,并且有 4 个问题(包括空白问题),则平均值将是 10 而不是 13.33,因为它除以 4 而不是 3。

该行是由于查询而显示的,所以我需要更改查询还是有办法在 SSRS 本身中做到这一点。

4

1 回答 1

2

您可以使用这样的表达式来排除空白问题:

=Avg(IIf(Fields!Question_Text.Value = "" or IsNothing(Fields!Question_Text.Value)
  , Nothing
  , Fields!Point_Value.Value))

或替代方案:

=Sum(Fields!Point_Value.Value)
  / Sum(IIf(Fields!Question_Text.Value = "" or IsNothing(Fields!Question_Text.Value), 0.0, 1.0))'Updated

评论后编辑:

我将表达式添加到报告中 - 第一个工作正常,第二个在小更新后也工作正常(请参阅编辑详细信息)。

我使用以下查询创建了一个测试数据集:

select Question_Group = 'Group1', Question_Text = 'Q1', Point_Value = 10
union all select Question_Group = 'Group1', Question_Text = 'Q2', Point_Value = 15
union all select Question_Group = 'Group1', Question_Text = 'Q3', Point_Value = 15
union all select Question_Group = 'Group1', Question_Text = '', Point_Value = 0
union all select Question_Group = 'Group2', Question_Text = 'Q4', Point_Value = 10
union all select Question_Group = 'Group2', Question_Text = 'Q5', Point_Value = 15
union all select Question_Group = 'Group2', Question_Text = 'Q6', Point_Value = 15
union all select Question_Group = 'Group2', Question_Text = null, Point_Value = 0

我刚刚创建了一个基于Question_Group这两个表达式的组,并将两个表达式添加到组页脚。

设计模式下的报告:

在此处输入图像描述

基于上述数据集的报告结果:

在此处输入图像描述

于 2013-04-04T17:15:07.880 回答