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 

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

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

4

1 回答 1

2

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

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

我创建了两个新的隐藏度量,一个名为 [Fact Count] 的事实计数(使用 AggregateFunction “Count”的度量)和一个名为 [Days In Period Count] 的计算度量,使用表达式

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

[Calendar] 是我的 Date 维度中的层次结构的名称。

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

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

并将其命名为[调整后的平均分配]。我现在可以在报告中使用它,它似乎在某种程度上接近了较长时期内的平均成本中心分配。

当涉及过滤器时,[Days In Period Count] btw 的公式不适用于行总计。我为此提出了另一个问题

于 2013-07-18T18:56:41.990 回答