2013-07-18 57 views
1

我有当前完全填充的成本中心分配数据,每天一笔记录,每个记录都有一个成本中心维度关键字。该立方体具有人头测量(数据设置为“1”),聚合函数设置为“LastChild”。这意味着在任何给定的时间段内,人数统计报告只会在成本中心对一个人进行一次统计。人口稀少百分比值的“平均”汇总

引入部分分配 - 新的度量将具有分配的百分比值,从而允许多个并发成本中心,其中分配的合计应该高达100%(以“日”为粒度级)。我想弄清楚如何配置其他时间段的聚合。我认为“平均水平”应该可以正常工作,即在一段时间内分配给成本中心为50%的人将在该时间段内报告25%。 我看到的问题是我的事实没有在成本中心分配为0%的日子里填充。为了说明:

Employee1 CostCenterA 1/1/2013 50% 
Employee1 CostCenterB 1/1/2013 50% 
Employee1 CostCenterA 1/2/2013 100% 
Employee1 CostCenterA 1/3/2013 100% 
... etc with 100% in CostCenterA for all days 

由每月报告上述数据显示,50%分配给CostCenterB,即使这个人是只分配了一天,并按月平均百分比应为1.6% 。

我想我可以在数据中生成0%分配,但是我的事实表会因此而爆炸,所以我宁愿改变“平均”聚合在稀疏填充的事实中如何处理百分比值即平均值应根据报告期内的粒度单位数(本月的天数,本例中为0.5/31),而不是事实表中的行数(0.5/1)计算。这可以在SSAS中完成吗?

回答

2

如果具有平均分配的度量与一个与我的事实“稀疏”成比例的因素(即一段时间内的天数与实际行数的比率)成比例,则可以按如下方式进行纠正:

adjusted average allocation = 
    (calculated average allocation) * (fact count)/(number of days in period) 

我创建了两个新的隐藏的措施,一个名为[事实计数]的事实计数(使用聚合函数“计数”的度量),并命名为计算度量[天期计数]的天数,使用表达式

COUNT(Descendants([Date].[Calendar].CurrentMember,5),INCLUDEEMPTY) 

与[日历]是t他是我日期维度中层次结构的名称。

最后,我添加了实现校正公式计算出的量度:

[Measures].[Allocative Head Count]/ 
(
    [Measures].[Days In Period Count]/[Measures].[Fact Count] 
) 

并将其命名为[调整的平均分配。我现在可以在报告中使用它,并且它看起来略微接近较长时期的平均成本中心分配。

[Days In Period Count] btw的公式在涉及过滤器时不适用于行总数。我为此打开了another question