如何从ssrs中的平均值获得正确的平均值结果?

时间:2019-07-18 10:10:58

标签: reporting-services report

我有总数的报告。

最后,我得到了路线点的平均值。 我想获得每个路径点的平均值。

enter image description here

结果 例如2041的平均值是00:00:12

2042的平均值为00:00:04

我想从2041年和2042年获得平均值

我收到的不是00:00:12。

对于平均值和平均值,我使用相同的表达式:

=Format(
    TimeSerial(0,0,
        Round(
            IIf(sum(Fields!N_ANSWERED.Value)=0,
            0,
            sum(Fields!T_ANSWERED.Value) / iif(sum(Fields!N_ANSWERED.Value)=0,1,sum(Fields!N_ANSWERED.Value))
            )
        )
    ), 
"HH:mm:ss")

我希望结果是〜00:00:08。

2 个答案:

答案 0 :(得分:1)

平均值的平均值很少是正确的。

例如,在2041组中,午餐时间(12:00至13:00)的呼叫量似乎较高,因为呼叫需要更长的时间来应答,而早晨的第一件事则是较低的呼叫量(8:00) )。假设13:00的平均回答时间是00:00:24,因为有50个电话打进来,但是在8:00,只有一个电话花了00:00:02来回答。现在,这两个小时的平均值不是(00:00:24 + 00:00:02) / 2 = 00:00:13,因为在构成平均值的两个样本中,呼叫量差异很大。

实际平均值是该组的平均值乘以该组中的通话次数除以总通话次数(00:00:24 x (50/51)) + (00:00:02 x (1/51)) = 00:00:23.57

如果四舍五入到小数点后零位的精度,则仍然是00:00:24。

这称为加权平均值,因为每个组的平均值都会影响结果,具体取决于该组平均值的原始计算中有多少个结果。

这就是为什么您的00:00:12和00:00:04的平均值可能不会是00:00:08的原因,这取决于每个组中有多少个呼叫。现在,如果每个组中的呼叫数完全相同,则平均值的平均值将与加权平均值相同(这是唯一会得到00:00:08的情况)。

每个组中呼叫总数越近,平均值的平均值越接近正确的结果,但这是不可靠的计算。相反,每个组中结果的数量变化越大,加权平均值将越趋向结果中所占比例更高的组平均值。

现在,如果2041组的结果很多,而2042组的结果很少,那么2042的00:00:04平均结果几乎不会影响总体平均,这可能导致结果对于2041,压倒了2042的结果,按照上述示例,在您的精确度和舍入水平内,总体平均值与2041的平均值相同。

2042结果集中缺少几个小时的事实使我认为情况确实如此。

因此,您的计算看起来是正确的-通话时间总和除以通话次数将得出各组的平均值和总体平均值。只是平均值的平均值不会是相同的结果,因为在用于计算总体平均值的数据中,各组的分布不同。

根据您的表情,您的总体平均水平看起来很准确,直到00:00:12。

答案 1 :(得分:1)

通过引用渲染的单元格而不是归档的数据集,您可以非常简单地做到这一点。 1.获取包含已经计算出的详细平均数的单元格的名称,假设它被称为textbox1

那么您的表情就是

=AVG(ReportItems!textbox1.Value)