首页 > 解决方案 > 计算 SSRS 2016 中的平均值

问题描述

我正在使用 SSRS 2016 应用程序从 SharePoint 列表中提取数据。
我的任务是计算列的平均使用天数和平均百分比。

这是一个矩阵报告,有两列:

任务是显示平均天数和平均百分比。
我试过了=Avg(Fields!Days.Value),但这显示错误的结果。

在此处输入图像描述

更新

是的,矩阵按月份分组以显示每个相关月份。
请参阅下面我迄今为止测试过的屏幕截图。

在此处输入图像描述

DaysUsed 是通过汇总总天数减去周末在 [FromDate] 和 [UntilDate] 两个字段之间计算得出的。见下文:

=(DateDiff(DateInterval.day,CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")), CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")))+1)
- (DateDiff(DateInterval.WeekOfYear,CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")), CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")))*2) 
- IIF(Weekday( CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")),1) = 1,1,0)
- IIF(Weekday( CDate(format(Fields!FromDate.Value,"MM-dd-yyyy")),1) = 7,1,0)
- IIF(Weekday( CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")),1) = 1,1,0)
- IIF(Weekday( CDate(format(Fields!UntilDate.Value,"MM-dd-yyyy")),1) = 7,1,0)

此外,[DaysUsed] 行由 IIF 组成(值为 null 然后显示 0 否则显示使用天数的总值)。

=IIF(IsNothing(Sum(Fields!Days.Value)), "0", Sum(Fields!Days.Value) )

标签: reporting-servicesssrs-2016

解决方案


如果您有一个名为 的字段Fields!Days.Value,我猜您在屏幕截图中的数据已经按月分组。这意味着表达式

=Avg(Fields!Days.Value)

为您提供所有天的平均值(所有天的总和/所有天的计数)。

如果您想使用分组值(按 mounth),您可以在范围内使用以下表达式(每月的 socpe;由 tablix 最左侧的括号表示)

=Sum(Fields!Days.Value) / Count(Fields!Days.Value)

如果您不在范围内,则必须告诉 tablix 应该使用您的每月分组。为此,您可以使用以下内容:

=Sum(Fields!Days.Value, "YourMonthGroupName") / Count(Fields!Days.Value, "YourMonthGroupName")

推荐阅读